-
Notifications
You must be signed in to change notification settings - Fork 35
How to use ReoScript to run JavaScript
Download ReoScript binary library or build source code. The following two DLLs must be added into target project.
Antlr3.Runtime.dll
Unvell.ReoScript.dll
And import this namespace:
using Unvell.ReoScript;
There is a main class named ScriptRunningMachine available in ReoScript, you need use it to load/run script.
ScriptRunningMachine srm = new ScriptRunningMachine();
Now there is a script run-time machine and default context was be created. (Learn more about ScriptRunningMachine)
srm.Run("alert('hello world!');");
A message box with text 'hello world' will be displayed.
There is a brief of difference between JavaScript and ReoScript:
-
GlobalObject named window in JavaScript, named script in ReoScript.
window.hello = function() { }; // JavaScript script.hello = function() { }; // ReoScript
See about GlobalObject.
-
Iteration for...in works on Array and returning element itself.
var arr = [1, 5, 'ok', false]; for(e in arr) console.log(e);
JavaScript returns index, ReoScript returns element itself as below:
JavaScript: ReoScript: 0 1 1 5 2 ok 3 false
See about Enumerator.
-
setTimeout and setInterval is supported to pass arguments.
It is possible to pass arguments when a function call via setTimeout or setInterval, for example:
function run(obj) { console.log('Object is ' + obj.name); } setTimeout(run, 1000, {name: 'obj1'});
See about Enhanced Async-Calling.
-
Argument list of a function is called
arguments
in JavaScript but called__args__
in ReoScript.JavaScript: ReoScript: function hello() { function hello() { console.log(arguments.length); console.log(__args__.length); } }
-
Regular Expressions currently is not supported. However, you can make an extension such as extended native function to support .Net Regular Expressions for script. (See How to extend function for script)
-
with keyword is not supported in ReoScript.
-
ReoScript provides several own features, see Language Feature.
In HTML and JavaScript we could use <script>
tag to import another script file into current page. It is also possible to implement the same effect in ReoScript by using import keyword.
Script File: common.rs
var MAX_PATH = 256; // global variable for all script files
function get_extension(filepath) {
var index = filepath.lastIndexOf('.');
return filePath.substr(index + 1);
}
Script File: main.rs
import "common.rs";
var ext = get_extension('sample.txt');
console.log('extension is ' + ext);
The result is:
extension is txt
You may also run a script from Windows Console by using ReoScript Runner. (See ReoScript Runner)