doc/builtins.js
// This file describes the builtins (functions or objects) of Euresys GenApi
// Script. It can be executed by running 'gentl script
// coaxlink://doc/builtins.js'.
// The builtin object 'console' contains a single function, log, which can be
// used to output text to the standard output.
console.log('Hello from ' + module.filename);
console.log('If several arguments are passed,', 'they are joined with spaces');
// The builtin object 'memento' contains the following functions: error,
// warning, notice, info, debug, verbose (each corresponding to a different
// verbosity level in Memento). They are similar to console.log, except that
// the text is sent to Memento.
memento.error('error description');
memento.warning('warning description');
memento.notice('important notification');
memento.info('message');
memento.debug('debug information');
memento.verbose('more debug information');
// Explicit type conversion/information functions:
console.log('Boolean(0) = ' + Boolean(0)); // false
console.log('Boolean(3) = ' + Boolean(3)); // true
console.log('Number(false) = ' + Number(false)); // 0
console.log('Number(true) = ' + Number(true)); // 1
console.log('Number("3.14") = ' + Number("3.14")); // 3.14
console.log('Number("0x16") = ' + Number("0x16")); // 22
console.log('Number("1e-9") = ' + Number("1e-9")); // 1e-9
console.log('String(false) = ' + String(false)); // "false"
console.log('String(true) = ' + String(true)); // "true"
console.log('String(3.14) = ' + String(3.14)); // "3.14"
console.log('String([1, 2]) = ' + String([1, 2])); // "1,2"
console.log('isNaN(0/0) = ' + isNaN(0/0)); // true
console.log('isNaN(Infinity) = ' + isNaN(Infinity)); // false
console.log('isRegExp(/re/) = ' + isRegExp(/re/)); // true
console.log('isRegExp("/re/") = ' + isRegExp("/re/")); // false
console.log('Array.isArray({}) = ' + Array.isArray({})); // false
console.log('Array.isArray([]) = ' + Array.isArray([])); // true
// The builtin object 'Math' contains a few functions:
console.log('floor(3.14) = ' + Math.floor(3.14));
console.log('abs(-1.5) = ' + Math.abs(1.5));
console.log('pow(2, 5) = ' + Math.pow(2, 5));
console.log('log2(2048) = ' + Math.log2(2048));
// String manipulation
console.log('"Duo & Duo".replace(/Duo/, "Quad") = "' +
"Duo & Duo".replace(/Duo/, "Quad") + '"'); // "Quad & Duo"
console.log('"Duo & Duo".replace(/Duo/g, "Quad") = "' +
"Duo & Duo".replace(/Duo/g, "Quad") + '"'); // "Quad & Quad"
console.log('"Hello, Coaxlink".toLowerCase() = "' +
"Hello, Coaxlink".toLowerCase() + '"'); // "hello, coaxlink"
console.log('"Coaxlink Quad G3".includes("Quad") = ' +
"Coaxlink Quad G3".includes("Quad")); // true
console.log('"Coaxlink Quad".includes("G3") = ' +
"Coaxlink Quad".includes("G3")); // false
console.log('"Coaxlink Quad G3".split(" ") = [' +
"Coaxlink Quad G3".split(" ") + ']'); // [Coaxlink,Quad,G3]
console.log('"Coaxlink Quad G3".split("Quad") = [' +
"Coaxlink Quad G3".split("Quad") + ']'); // [Coaxlink , G3]
console.log('["Mono", "Duo", "Quad"].join() = "' +
["Mono", "Duo", "Quad"].join() + '"'); // "Mono,Duo,Quad"
console.log('["Mono", "Duo", "Quad"].join(" & ") = "' +
["Mono", "Duo", "Quad"].join(" & ") + '"'); // "Mono & Duo & Quad"
// Utility functions
console.log('random(0,1): ' + random(0,1)); // random number between 0 and 1
sleep(0.5); // pause execution of script for 0.5 second
// The builtin function 'require' loads a script, executes it, and returns
// the value of the special 'module.exports' from that module.
var mod1 = require('./module1.js');
console.log('mod1.description: ' + mod1.description);
console.log('mod1.plus2(3): ' + mod1.plus2(3));
console.log('calling mod1.hello()...');
mod1.hello();
// 'require' can deal with:
// - absolute paths
// var mod = require('C:\\absolute\\path\\some-module.js');
// - relative paths (paths relative to the current script)
// var mod = require('./utils/helper.js');
// - coaxlink:// paths (paths relative to the directory where coaxlink scripts
// are installed)
// var mod = require(coaxlink://doc/builtins.js);