FakeScript-Java 介绍
轻量级嵌入式脚本语言。
java/blob/master/README_CN.md#%E7%AE%80%E4%BB%8B)简介
FakeScript-
Java是一款轻量级的嵌入式脚本语言,使用Java语言编写,语法吸取自lua、golang、erlang,基于jflex、cup生成语法树,编译成字节码解释执行。
C/C++版本fakescript
java/blob/master/README_CN.md#%E8%84%9A%E6%9C%AC%E7%89%B9%E6%80%A7)脚本特性
java/blob/master/README_CN.md#%E7%A4%BA%E4%BE%8B)示例
#!lua -- 当前包名 package mypackage.test -- 引入的文件 include "common.fk" -- 结构体定义 struct teststruct sample_a sample_b sample_c end -- 常量值 const hellostring = "hello" const helloint = 1234 const hellomap = {1 : "a" 2 : "b" 3 : [1 2 3]} -- func1 comment func myfunc1(arg1, arg2) -- Java静态函数和类成员函数的调用 arg3 := cfunc1(helloint) + arg2:memfunc1(arg1) -- 分支 if arg1 < arg2 then -- 创建一个协程 fake myfunc2(arg1, arg2) elseif arg1 == arg2 then print("elseif") else print("else") end -- for循环 for var i = 0, i < arg2, i++ then print("i = ", i) end -- 数组 var a = array() a[1] = 3 -- 集合 var b = map() b[a] = 1 b[1] = a -- Int64 var uid = 1241515236123614u log("uid = ", uid) -- 子函数调用 var ret1, var ret2 = myfunc2() -- 其他包的函数调用 ret1 = otherpackage.test.myfunc1(arg1, arg2) -- 结构体 var tt = teststruct() tt->sample_a = 1 tt->sample_b = teststruct() tt->sample_b->sample_a = 10 -- 分支 switch arg1 case 1 then print("1") case "a" then print("a") default print("default") end -- 多返回值 return arg1, arg3 end
java/blob/master/README_CN.md#java%E7%A4%BA%E4%BE%8B)Java示例
#!java // 创建一个实例 fake f = fk.newfake(null); // 注册包里全部标记@fakescript的函数 fk.reg(f, "com.test"); // 解析fake脚本文件 fk.parse(f, "test.fk"); // 执行myfunc1函数,传入两个参数分别为1和2 double ret = (double)fk.run(f, "myfunc1", 1, 2);
FakeScript-Java 官网
https://github.com/esrrhs/fakescript-java
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。