CNScript is language (actually don't) that transpiles to JavaScript. This code is created with the help of your-script module.
The source files in CNScript have .cns
extension.
This module is created just for enormous incredible fun, nothing more. I can't even imagine someone really writing programms on this subset.
This module is distributed via npm, it requires global installation, run npm i -g cnscript
just where you want this code.
CNScript provides minimal console tool to translate source files to JavaScript and vice versa.
After installed globally it availble in your wd as cnscript
Run cnscript yourFile.js
or cnscript yourFile.cns
to translate it to opposite subset.
Lets imagine, your JS file, programm.js
contains following code:
let x = 10;
function createFunction1() {
const x = 20;
return new Function("return x;");
}
function createFunction2() {
const x = 20;
function f() {
return x;
}
return f;
}
const f1 = createFunction1();
console.log(f1());
const f2 = createFunction2();
console.log(f2());
After launching cnscript programm.js
in directory with this file, parser will create transpiled source file, programm.cns
, translated in CNScript and look as following:
变量 x = 10;
函数 createFunction1() {
常量 x = 20;
返回 实例化 Function("return x;");
}
函数 createFunction2() {
常量 x = 20;
函数 f() {
返回 x;
}
返回 f;
}
常量 f1 = createFunction1();
console.log(f1());
常量 f2 = createFunction2();
console.log(f2());
Since CNScript is based on your-scipt, this subset is limited by modifying the language keywords. So, any global object properties, like document.body
or HTMLElement.prototype.nextElementSibling
are untouched, though it's definetely possible :)
your-script esprima-custom-keywords keywords-provider
Cheers!