如何获取 ANTLR3 TreeParser 中的行号
我正在尝试获取 ANTLR3 树语法中的行号(ANTLR3 生成的代码属于 TreeParser 类)。 谷歌只找到了 ANTLR2 的解决方案,遗憾的是在 ANTLR3 中不起作用。…
Antlr3 中的所有语法选项在哪里?
Antlr2 中有许多可以设置的语法选项(参考)。现在在 Antlr3 中,我们有大约 1/3 的选项数量(参考)。 所以我对此有两个问题: 有谁知道为什么这么多…
ANTLR:词法分析器规则严格接受一个字母和多个字符的标记,而不是仅接受一个(Java)
我已经为 ANTLR 解析器和词法分析器编写了以下语法,用于为逻辑公式构建树,并且有几个问题(如果有人可以帮助的话): class AntlrFormulaParser ext…
在 Antlr 中定义语法
我定义了以下语法。 grammar Sample_1 @header { package a } @lexer::header { package a } program : define* implement* define : IDENT '=(' INT…
Java3d 形状与 Antlr
那么如何评估一个非常简单的 antlr 语法,它只能做到这一点。 Box(1,2,4) Cylinder(1,2) 并构建 java3d 形状,(假设我已经为 java3d 构建了画布,并…
ANTLR:如何将所有定义为空格的字符替换为实际空格
我的 ANTLR 代码如下: LPARENTHESIS : ('(') RPARENTHESIS : (')') fragment CHARACTER : ('a'..'z'|'0'..'9'|) fragment QUOTE : ('"') fragment WI…
ANTLR树语法和StringTemplate代码翻译
我正在开发一个代码翻译项目,其示例 ANTLR 树语法如下: start: ^(PROGRAM declaration+) -> program_decl_tmpl() declaration: class_decl | inte…
如何解决 ANTLR 输入不匹配的问题
给出语法 test : 'test' ID '\n' 'begin' '\n' 'end' '\n' -> ^(TEST ID) ID : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')* 和测…
带有手动词法分析器的 ANTLR 解析器
我正在将基于 C# 的编程语言编译器从手动词法分析器/解析器迁移到 Antlr。 Antlr 一直让我头疼,因为它通常大部分都能工作,但也有一些小部分不能工作…
ANTLR:匹配未转义的字符?
我有一个类似的规则, charGroup : '[' .+ ']' 但我猜它会匹配 [abc\] 之类的东西。假设我希望它仅匹配未转义的 ],我该怎么做?在正则表达式中,我会…
获取 ANTLR3 中复合规则的词位
假设我有这样的事情: rule: (rule2 | rule3) {} //How can i get at this point rule2 or rule3 text? rule2: HELLO+ rule3: WORLD* 我想获取规则2或…
ANTLR:获取代币名称?
我有一个语法规则, OR : '|' 但是当我使用打印 AST 时, public static void Preorder(ITree tree, int depth) { if (tree == null) { return } for …
ANTLR:如何生成一棵有 2 个以上子节点的树?
给定语法 parse : expr EOF -> ^(ROOT expr) expr : atom ('|'^ atom)* atom : LITERAL | ('('! expr ')'!) LITERAL : 'a'..'z' WS : (' '|'\t'|'\r…