迭代/处理 ANTLR 中解析的 Token 列表
我有一条规则 ((cns=IDENT '->')* IDENT | (cns=IDENT '->')* 'STOP') -> ^(PREFIX ^(EVENTS $cns*) ^(ENDS $procn? STOP?) ) ,如果将 cns=IDENT 替…
非空闭包和问号:只有第一个元素被放入 AST 中?
我被一个奇怪的现象所困扰: 只有 x 中的第一个 in z: x | '',其中 y: x (','!x)* 出现在生成的 AST 中。但前提是我使用 Maven 存储库中部署的 Antlr…
如何用树语法中的文本重写标记?
这是我的树语法: grammar t; options{ output = AST; } type : 'NVARCHAR' -> "VARCHAR" ; ANTLR3 3.1.3 说: syntax error: antlr: t.g:12:5: unexp…
Antlr中StringTemplate的使用
我会遇到这个问题: 给定这个规则 defField: type VAR ( ',' VAR)* SEP ; VAR : ('a'..'z'|'A'..'Z')+ ; type: 'Number'|'String' ; SEP : '\n'|';' ;…
忽略标记字符中的标记?
我的词法分析器中有以下标记定义,定义了一个字符字符串(例如“abcd”): CharacterString: Apostrophe (Alphanumeric)* Apostrophe ; 是否可以忽略…
有没有办法改进正负整数和小数的 ANTLR 3 语法?
有没有办法用可选的正负号以较少重复的方式表达这一点? 我想要完成的是如何在可选地具有指数和/或小数部分的数字文字上表达可选地提供正 + (默认)…
如何避免使用 ANTLR3 构建中间和无用的 AST 节点?
我编写了一个 ANTLR3 语法,该语法细分为更小的规则以提高可读性。 例如: messageSequenceChart: 'msc' mscHead bmsc 'endmsc' end ; # Where mscHea…
Antlr3 AST 创建:如何测试可选子规则?
我正在寻找一种方法来了解是否使用了可选子规则。例如: my_rule returns [node* n = 0]: (v = (optional_subrule)?) { $n = new node($v ? $v.n : MY…
antlr3 - 生成解析树
我无法弄清楚 antlr3 API,因此我可以在一些 javascript 代码中生成和使用解析树。当我使用antlrWorks(他们的IDE)打开语法文件时,解释器能够向我显…
使用 cmake 中的自动工具构建库
这是我第一次尝试使用 cmake,如果可能的话,我希望得到一些关于我所做的事情的反馈,因为仍然存在一些问题。 在库文件夹的 CMakeLists.txt 中,我创…
ANTLR 语法错误意外标记:加号
您好,我的 ANTLR 树语法有一个小问题。我正在使用 ANTLRWorks 1.4。在解析器语法中,我有这样的规则: declaration : 'variable' IDENTIFIER ( ',' I…
如何获取 Antlr 解析器规则以从默认通道和隐藏通道读取
我在隐藏通道中使用正常的空白分隔,但我有一个规则,我想包含任何空白以供以后处理,但我发现的任何示例都需要一些非常奇怪的手动编码。 是否没有简…