开源项目
1、xuhua-MathExpRelease 脚本解析引擎(UniApp插件)
插件地址:https://ext.dcloud.net.cn/plugin?name=xuhua-MathExpRelease
xuhua-MathExpRelease是一个数学表达式解析、执行插件,内部是一个脚本解析引擎,可以在脚本中定义数学函数,执行向量、矩阵运算,编写 if-else 和 for 循环,执行并获取结果。
微信小程序体验码
![]()
1.1 引入及调用
import { MathExp } from “@/uni_modules/xuhua-MathExpRelease/js_sdk/MathExp.js”
var mathExp = new MathExp();
mathExp.eval(`
f(x) = sin(x);
`);mathExp.eval(`
a = f(45 * PI / 180);
`);var res = mathExp.eval(`
[a, sin(30), f.x]; //末尾的分号一定要加
`);res = mathExp.eval(`
【a, sin(30), f。x】; //支持中文符号,方便移动端输入
`);if (res.succ) {
console.log(res);
}
1.2 运行结果
res = {
result: [0.7071067811865475, -0.9880316240928618, 0.7853981633974483],
succ: true
}
2、有限状态自动机类库 – qfFSM
http://www.yuyuyouer.cn/blog/?p=290
用于软件控制逻辑建模编码,将UML状态图直接对照为源码。
目前发布了以下版本:C++、JAVA、C#、Javascript、Unity3D。
3、脚本解释器 – qfScriptEngine
在线DEMO:http://www.kinectmanual.com/…../qfScriptEngine.html
欢迎大家测试,更欢迎加QQ技术群索要测试脚本:【技术交流 QQ群:322609996】
目前为针对Unity3D C#语言的beta测试版本,已经支持脚本函数定义和类定义,并支持从多个基类继承。
特性如下:
1、支持基本变量类型:byte、short、int、float、bool、string
2、未支持0x开头的16进制数定义
3、支持调用C#接口,继承IqfInvokeInterface的类均可被注册为全局函数
4、支持算数运算符:+、-、*、/、%、++、–
5、支持逻辑运算符:==、!=、>、<、>=、<=、!、&&、||
6、支持位运算符:&、|、~、^、>>、<<
7、支持各种赋值运算符:=、+=、-=、*=、/=、%=、&=、|=、^=、<<=、>>=
8、支持字符串相加、支持转义字符(与C语言一致),未支持\x定义16进制数
9、支持if … else …分支语句,可写else if
10、支持for ( ; ; )循环语句
11、支持{ }定义语句块,局部变量作用域
12、局部变量可与外层作用域变量同名
13、函数参数表为变长,可传递任意个数参数
14、不同数据类型内部做转换,如:int n = ++”2″; 运行后n为3
15、可以动态修改类的定义,修改后声明的实例为新版本,修改前的实例不受影响
16、支持从多个基类继承,多继承机制是双刃剑,用好了很强大,用不好同样也很强大