Skip to content
This repository was archived by the owner on Mar 6, 2025. It is now read-only.

binx6/luaj

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

luaj

Fork自luaj项目的jse(标准版),并对其做出部分改进,Lua5.2基础上兼容至Lua5.3版本,当然,不足之处还是存在的,届时敬请指教

Ps:初衷是其中的parser在我写项目的时候有用武之地(对,这就是侧重点),但是只能解析Lua5.2的,改着改着后来索性合并着一块改了

更新了什么?

  • Lua5.2(strip后仍是)向Lua5.3兼容
  • parser支持Lua5.3语法
  • 修复历史遗留的一些issue
  • luajc & script & server & jme(通通断舍离)

使用小技巧🌟

  • 这里给出一份parser Chunk(语句组)小技巧,封装了一下
  • 以下代码也可以做一些优化像import static或try-with-resources,我懒
import java.io.StringReader;
import java.lang.String;
import org.luaj.vm2.ast.*;
import org.luaj.vm2.parser.*;

public static String luaChunk(String chunk) {
    try {
        LuaParser parser = new LuaParser(new StringReader(chunk));
            return String.valueOf(parser.Chunk());
        } catch (ParseException | TokenMgrError e) {
            return e.toString() + "\n";
    }
}
  • 除了Chunk这些也是同理,换汤不换药
这些也很重要,尤其是在分析不透明谓词,分析控制流结构的时候等等
Exp() 解析表达式
Block() 解析代码块
NameList() 解析名称列表
ParList() 解析函数参数列表
FieldList() 解析表字段列表
FuncArgs() 解析函数调用参数

回归纯粹,打造一份平凡而不平庸的luaj

Special thanks

Enyby

luaj

About

Unofficial, fork from luaj project, keep its essence and discard its dross. (Lua5.2 to Lua5.3)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages