一种简单语言的 ANTLR 解析器和树语法
编辑: 这是更新的树和解析器语法: 解析器语法: options { language = CSharp2 output=AST } tokens { UNARY_MINUS CALL } program : (function)* m…
在 ANTLR 3 中,如何在运行时而不是提前生成词法分析器(和解析器)?
我想在运行时生成 antlr 词法分析器——也就是说,生成语法并从语法生成词法分析器类及其在运行时的支持位。我很高兴将它输入到 java 编译器中,它可…
如何获取 Antlr 解析器规则以从默认通道和隐藏通道读取
我在隐藏通道中使用正常的空白分隔,但我有一个规则,我想包含任何空白以供以后处理,但我发现的任何示例都需要一些非常奇怪的手动编码。 是否没有简…
Antlr :相互左递归规则
我在antlr中有这条规则: anREs : anRE | ('(' anREs ')') => '(' anREs ')' | (anREs '|' anREs) => anREs '|' anREs 其中anRE是正则表达式,当…
具有 ANTLR 文本属性的 NullPointerException
我有一个问题已经困扰了一段时间,如果可能的话,我希望得到一些帮助。 我在 ANTLR tree 语法中有一些规则: block : compoundstatement | ^(VAR decl…
Antlr 3.0 中的错误处理
当用户输入与我们定义的规则不匹配时,我需要报告自定义错误。 这是我的代码: grammar second1 @lexer::members { @Override public void reportErro…
如何确定哪个解析器规则调用了方法?
我需要实现以下功能:我的语法可以接受两个值范围:Value1 和 Value2。如果我输入:'set value1 100',它应该打印'Accepted'。 这么多工作正常。但我…
在 ANTLR3 中对空格分隔的单词进行词法分析,其中某些单词是关键字
我正在开展一个项目,该项目涉及将词性标记文本转换为 ANTLR3 AST,并以短语作为 AST 的节点。 ANTLR 的输入看起来像: DT-THE The NN dog VBD sat IN…
ANTLR 可以根据以下字符区分词法分析器规则吗?
为了解析测试文件,我想允许标识符以数字开头。 我的规则是: ID : ('a'..'z' | 'A'..'Z' | '0'..'9' | '_') ('a'..'z' | 'A'..'Z' | '0'..'9' | '_' …
ANTLR中自动生成的DFA字符串,例如eotS、eofS、acceptS是什么意思以及它们是如何生成的
当我从语法文件中使用 antlr 生成词法分析器时,我注意到它生成了一系列十六进制格式的字符串。 DFA 使用这些字符串来预测下一个标记是什么。 这些字…