es java script_GitHub - esrrhs/fakejava: 嵌入式脚本语言 Lightweight embedded scripting language...

fakejava

68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6573727268732f66616b656a617661

68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c616e6775616765732f746f702f6573727268732f66616b656a617661

68747470733a2f2f696d672e736869656c64732e696f2f6d6176656e2d63656e7472616c2f762f636f6d2e6769746875622e6573727268732f66616b657363726970742d6a617661

68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f776f726b666c6f772f7374617475732f6573727268732f66616b656a6176612f4a6176612532304349

68747470733a2f2f6170692e636f646163792e636f6d2f70726f6a6563742f62616467652f47726164652f6561656432366666323138313431376638386434333833343366343265623735

轻量级嵌入式脚本语言

fakejava是一款轻量级的嵌入式脚本语言,使用Java语言编写,语法吸取自lua、golang、erlang,基于jflex、bison生成语法树,编译成字节码解释执行。

C/C++版本fake

脚本特性

语法类似lua

全部为函数

支持array,map,可以无限嵌套

支持fake testfunc(param1)产生routine,实现假多线程效果

支持Java静态函数和Java类成员函数的绑定

自带解释器

支持多返回值

自带profile,可获取脚本各个函数运行时间

支持热更新

支持Int64

支持const定义

支持包

支持struct

支持字节码优化

支持全局map

示例

-- 当前包名

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示例

// 创建一个实例

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);

使用

Maven

com.github.esrrhs

fakescript-java

1.0.12

调试环境

IDE

ide.png

命令行

debug.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用\[1\]和引用\[2\]的信息,您在从GitHub上克隆资源时遇到了无法访问主机的错误。这可能是由于网络连接问题导致的。您可以尝试以下解决方法: 1. 检查您的网络连接是否正常。确保您可以访问其他网站,并且没有任何网络问题。 2. 如果您使用了代理,请按照引用\[3\]中提供的步骤设置Git Bash中的代理。确保代理地址和端口正确,并且代理设置生效。 3. 如果您没有使用代理,或者代理设置没有解决问题,您可以尝试使用Git的SSH协议进行克隆。首先,您需要在GitHub上设置SSH密钥。然后,使用SSH URL进行克隆,例如:git clone git@github.com:ros-planning/geometric_shapes.git。 4. 如果上述方法都没有解决问题,可能是由于GitHub服务器出现问题或其他临时问题导致的。您可以稍后再次尝试克隆,或者尝试使用其他网络环境进行克隆。 希望以上解决方法能够帮助您解决问题。如果问题仍然存在,请提供更多详细信息,以便我们能够更好地帮助您。 #### 引用[.reference_title] - *1* [解决Github:fatal:unable to access ‘https://github.com/.../.git‘:Could not resolve host:github.com](https://blog.csdn.net/weixin_44296929/article/details/111242452)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [fatal: 无法访问 https://github.com/ :Failed to connect to github.com port 443: 拒绝连接的解决办法](https://blog.csdn.net/weixin_59168010/article/details/124768747)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [关于git:fatal:无法访问’https://github.com/xxx’:OpenSSL SSL_connect:SSL_ERROR_SYSCALL连接到...](https://blog.csdn.net/qq_37124515/article/details/114190310)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值