java从ANTLR语法创建树
我已经编写了一个ANTLR语法文件,现在我需要生成一个邻接矩阵,告诉我语法中的哪个规则与哪个规则关联。 例如:- 开始:(‘show’|‘give’|‘get’)‘me’(‘all’)?短语 |“我”“想要”“全部”“?短语 |短语
短语:短语(('and')?(短语)* |构造词短语和('its'|'this')构造词短语 |构词短语功能短语 |功能短语 ;
在这里,我们有我想与对方联系。。所以我需要读取语法文件并生成一个邻接矩阵
你可以在下面搜索框中键入要查询的问题!
我已经编写了一个ANTLR语法文件,现在我需要生成一个邻接矩阵,告诉我语法中的哪个规则与哪个规则关联。 例如:- 开始:(‘show’|‘give’|‘get’)‘me’(‘all’)?短语 |“我”“想要”“全部”“?短语 |短语
短语:短语(('and')?(短语)* |构造词短语和('its'|'this')构造词短语 |构词短语功能短语 |功能短语 ;
在这里,我们有我想与对方联系。。所以我需要读取语法文件并生成一个邻接矩阵
# 1 楼答案
解析ANTLR语法并不困难。我这样做是我工作的一部分
您需要ANTLR元语法并从中生成解析器。然后使用它将您自己的语法加载到一个可以用来生成矩阵的结构中
首先,您可以使用the ANTLR grammar parser I have created,但这是针对C/C++目标,而不是Java。所以,你必须得到ANTLR3。从ANTLR主页创建一个文件,并从中创建您自己的解析器
# 2 楼答案
我在githubhttps://github.com/julianthome/inmemantlr上创建了一个项目,该项目采用g4语法定义和一个包含要解析的实际内容的文本文件。它将自动为您生成一个AST,其中节点包含解析规则和与该规则关联的令牌。这可能对你的目的有用
它是用Java编写的,你可以插入任何你喜欢的g4文件。。。解析器生成和AST生成是自动完成的。代码示例可以在测试用例中找到
致以最良好的祝愿和亲切的问候 朱利安