FakeScript-Java
轻量级嵌入式脚本语言。
简介FakeScript-Java是一款轻量级的嵌入式脚本语言,使用Java语言编写,语法吸取自lua、golag、erlag,基于jflex、cup生成语法树,编译成字节码解释执行。C/C++版本fakescript
脚本特性语法类似lua
全部为函数
支持array,map,可以无限嵌套
支持faketestfuc(param1)产生routie,实现假多线程效果
支持Java静态函数和Java类成员函数的绑定
自带解释器
支持多返回值
自带profile,可获取脚本各个函数运行时间
支持热更新
支持It64
支持cost定义
支持包
支持struct
示例#!lua-- 当前包名package mypackage.test-- 引入的文件iclude "commo.fk"-- 结构体定义struct teststruct sample_a sample_b sample_ced-- 常量值cost hellostrig = "hello"cost helloit = 1234cost hellomap = {1 : "a" 2 : "b" 3 : [1 2 3]}-- fuc1 commetfuc myfuc1(arg1, arg2) -- Java静态函数和类成员函数的调用 arg3 := cfuc1(helloit) + arg2:memfuc1(arg1) -- 分支 if arg1 < arg2 the -- 创建一个协程 fake myfuc2(arg1, arg2) elseif arg1 == arg2 the prit("elseif") else prit("else") ed -- for循环 for var i = 0, i < arg2, i++ the prit("i = ", i) ed -- 数组 var a = array() a[1] = 3 -- 集合 var b = map() b[a] = 1 b[1] = a -- It64 var uid = 1241515236123614u log("uid = ", uid) -- 子函数调用 var ret1, var ret2 = myfuc2() -- 其他包的函数调用 ret1 = otherpackage.test.myfuc1(arg1, arg2) -- 结构体 var tt = teststruct() tt->sample_a = 1 tt->sample_b = teststruct() tt->sample_b->sample_a = 10 -- 分支 switch arg1 case 1 the prit("1") case "a" the prit("a") default prit("default") ed -- 多返回值 retur arg1, arg3edJava示例#!java// 创建一个实例fake f = fk.ewfake(ull);// 注册包里全部标记@fakescript的函数fk.reg(f, "com.test");// 解析fake脚本文件fk.parse(f, "test.fk");// 执行myfuc1函数,传入两个参数分别为1和2double ret = (double)fk.ru(f, "myfuc1", 1, 2);
评论