前言

AST

%
%%

其中的词法解析和遍历 AST 完全是重复工作,所以我们可否能够简化这两步呢?

Antlr

Antlr
GScript
Antlr tokentokentoken

要实现这些我们只需要编写词法、语法规则文件即可。

刚才的示例所对应的词法、语法规则如下:

运行:

AntlrASTAST

以这里的新增的取模运算为例:

AntlrVisitModExpr
statement

Antlr 还有其他各种优势,比如可以解决:

  • 左递归。
  • 二义性。
  • 优先级。

等问题。

这里也推荐在 IDE 中安装 Antlr 的插件,这样就可以直观的查看 AST 语法树,可以帮我们更好的调试代码。

升级 xjson

GScriptstatementxjson

xjsonAntlrGScriptstatement

Antlr

总结

AntlrGScript

源码地址: