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、支持从多个基类继承,多继承机制是双刃剑,用好了很强大,用不好同样也很强大