项目地址:
https://github.com/tankaishuai/NewScript
https://blog.csdn.net/tan_kaishuai/article/details/114174819
本文主要简要介绍一下基本用法及原理。
一、命令行 command_shell NewScript.exe 的使用:
直接不带参数运行,进入交互式 shell。 如下:
命令:
可以直接用来执行 JavaScript 脚本,或者执行编译后生成的二进制文件(或者汇编脚本)。
用于编译目标 JavaScript 脚本, 然后会在同级目录下生成一个 .asm(汇编) 文件与 .bin (二进制,与汇编文件对应)文件。
例如,编译如下脚本:
后,生成:
发布时仅仅只需要发布已经编译好的 .bin (二进制)文件即可。
以非交互式命令行直接运行,如下:
运行指定的 js 脚本,或者运行已经编译好的汇编文件或者二进制流。
编译指定的 js 脚本,生成编译好的 .asm 汇编文件 与 .bin 二进制流。
二、SDK的使用
目前 NewScript SDK (eval64_sdk.h) 开放了如下接口:
(1)执行文本,或者执行文件:
(2)编译文本,或者编译文件:
(3)注册函数,或者运算符重载:
例如,我们重新实现 != 运算符,可以如下做:
__int64 my_not_equals (const __int64 *start_args, size_t num_args) {
if( num_args != 2 )
throw "bad func args";
return (start_args[0] != start_args[1]);
}
eval64_register_v2( eval_struct, "!=",? my_not_equals);
(未完待续……)