【发布时间】:2019-06-07 03:54:13
【问题描述】:
我想为tree-sitter 研究java 语法,这似乎被放弃了几个月。使用基于属性的测试会很好,所以我考虑是否有工具可以以某种方式采用给定语法并用于生成随机 AST 和代码。
所以属性看起来像
data OtherValidJavaAst = undefined
data TreeSitterAst = undefined
transform : TreeSitterAst -> OtherValidJavaAst
genAst : Gen OtherValidAst
genCode : OtherValidAst -> String
parseTreeSitter : String -> TreeSitterAst
parsesEqually : ValidJavaAst -> Boolean
parsesEqually ast = transform (parseTreeSitter (genCode ast)) == ast
【问题讨论】:
-
这样讨论会有点宽泛,因为 ANTLR Java 语法设计者可能会给你一个不同的 AST,github.com/antlr/grammars-v4
-
不确定这如何回答我的问题。
标签: parsing antlr code-generation