antlr3相关内容

ANTLR词法分析器规则消耗过多

ANTLR Lexer规则设计 我需要以下令牌: 允许的字符包括大写,小写,数字,空格和连字符 不固定长度(必须至少两个字符) 令牌必须至少包含一个空格或连字符 令牌必须以大写,小写,数字,空格或连字符开头和结尾(不能以空格开头或结尾) 以下语法中的ANTLR词法分析器规则"AlphaNumericSpaceHyphen"几乎有效,除了一种情况.使用解析器规则"sic"进行 ..
发布时间:2020-09-02 23:54:41 其他开发

蚂蚁贪婪选择

(我根据@Bart Kiers的第一条评论对问题进行了编辑-谢谢!) 我有以下语法: SPACE : (' '|'\t'|'\n'|'\r')+ {$channel = HIDDEN;}; START : 'START:'; STRING_LITERAL : ('"' .* '"')+; rule : START STRING_LITERAL; 并且我想解析如下语言:'S ..
发布时间:2020-09-02 23:54:39 其他开发

lexer中的ANTLR3动态引号

我需要匹配Perl正则表达式匹配器 m/my regex!*/ ,引号可以是范围内的任何字符.因此,以上与 相同 m%my regex!*% 对词法分析器规则的天真的猜测是 REGEX: 'm' quote=. (~(quote))* quote; 但这不起作用,因为后者quote不是指quote=而是某些规则. 我可以用很多自己的代码来做到这一点,例如 R ..
发布时间:2020-09-02 23:50:05 其他开发

ANTLR:消除混乱

我正在学习ANTLR.假设我有一个VHDL代码,并且想对PROCESS块进行一些处理.其余的应该完全忽略.我不想描述整个VHDL语言,因为我只对流程块感兴趣.因此,我可以编写一个与流程块匹配的规则.但是我如何告诉ANTLR仅匹配流程块规则而忽略其他任何内容? 解决方案 我几乎不知道VHDL,所以假设您要用多行注释替换(Java)源文件中的所有单行注释: //foo 应成为: / ..
发布时间:2020-09-02 23:50:02 其他开发

antlr3删除带有子树的treenode

我尝试使用antlr3.4进行一些树到树的转换 (对于这个问题)关于布尔表达式的是"AND"和"OR"被允许绑定到n个表达式. 解析器阶段会创建类似这样的内容 (OR (AND (expr1) (expr2) (expr3) (OR (AND (expr4)) (AND (expr5)) (AND (expr6)) ) ..
发布时间:2020-09-02 23:43:38 其他开发

获取活动的Antlr规则

是否可以从中调用操作方法的“活动" ANTLR规则? 类似于Antlr-Pseudo-Code中的log函数的东西,该函数应该显示某些规则的开始和结束位置而无需随每个log()移交$ start-和$ end-token呼叫: @members{ private void log() { System.out.println("Start: " + $activeRule. ..
发布时间:2020-09-02 23:36:10 Java开发

ANTLR生成空条件

我正在尝试学习使用ANTLR,但是在这种情况下,我无法弄清楚我的代码出了什么问题.我希望这对任何有经验的人来说真的很容易.这是语法(真的很短). grammar SmallTest; @header { package parseTest; import java.util.ArrayList; } prog returns [ArrayList> a ..
发布时间:2020-09-02 23:32:52 Java开发

ANTLR中的布尔和算术表达式语法

我正在尝试为算术和布尔表达式编写语法.我不明白我在做什么错.对于我的语法,ANTLR说: [致命]规则logic_atom具有非LL(*)决策,这是由于从alt 1,2可以到达的递归规则调用.通过左分解或使用语法谓词或使用backtrack = true选项来解决. 但是我不能做一个左因子分解.而且我不想触摸arith_expr,因为为此,我有一个代码. logic_atom : ..
发布时间:2020-09-02 23:23:04 其他开发

寻找Antlr 3/C示例main()

我看到C的一些示例main()浮动了,例如 http://www.antlr.org/Wiki/display/ANTLR3/五分钟+简介+到+ ANTLR + 3 和取消引用似乎是AST.我不知道那是什么,请-对不起-如果我可以避免的话,不要. 我想只定义词法分析器&语法(用于调制解调器AT命令),并自动生成main()或从某处剪切/粘贴. 稍稍曲折的是,大多数示例似乎都是从文件中读 ..
发布时间:2020-09-02 23:15:02 其他开发

解析模板语言

我正在尝试解析一种模板语言,而我在正确解析可能出现在标签之间的任意html时遇到了麻烦.到目前为止,我在下面有什么建议? 是有效输入的一个示例 {foo}{#bar}blah blah blah{zed}{/bar}{>foo2}{#bar2}This Should Be Parsed as a Buffer.{/bar2} 语法是: grammar g; options { ..
发布时间:2020-09-02 23:14:59 其他开发

Javascript在antlr 3.4或3.5中的状态

ANTLR 3.4或3.5中JavaScript目标的状态是什么?我一直在网上寻找这个问题的答案,但到目前为止我什么都没找到.我知道它在v3.2中被破坏,然后在v3.3中被修复,但是未在我有一个项目,在该项目中,我需要将之前编写的Java目标ANTLR语法转换为JavaScript,在继续之前,我想确保ANTLR 3.4或3.5支持JavaScript目标. 解决方案 ANTLR 3.1和 ..
发布时间:2020-09-02 23:07:51 前端开发

ANTLR:带有参数的规则?

我是ANTLR的新手.我开始探索ANTLR教程.我看到了为垂直规则定义返回类型的示例(请参见下面的示例). 我也可以将参数传递给规则吗?我脑子里只有一点,我想根据提供给它的论据来改变规则状态下的规则行为. 如果它在ANTLR中可以通过,或者这样做是个好主意,请帮助我? atom returns [int value] : INT { $value = ..
发布时间:2020-09-02 23:07:39 Java开发

如何在ANTLR3树解析器@init操作中获取行号

在ANTLR版本3中,如何在高级树解析器规则的@init操作中获取行号? 例如,在下面的@init操作中,我想将行号和句子文本一起推送. sentence @init { myNodeVisitor.pushScriptContext( new MyScriptContext( $sentence.text )); } : assignCommand | ac ..
发布时间:2020-09-02 23:06:21 Java开发

解决ANTLR相互左递归规则

下面的ANTLR语法中的"expr"规则显然是相互左递归的.作为ANTLR的新手,很难解决这个问题.我已经阅读了ANTLR参考书中的“解决非LL(*)冲突",但是仍然看不到解决方案.有指针吗? LPAREN : ( '(' ) ; RPAREN : ( ')' ); AND : ( 'AND' | '&' | 'EN' ) ; OR : ( 'OR' | '|' | 'OF' ); NOT ..
发布时间:2020-09-02 23:06:14 其他开发

ANTLR隐式乘法

我是ANTLR的新手,我正尝试在此处中介绍一个简单计算器的示例.具体来说,我尝试添加一些简单的函数,负数等,以使自己熟悉ANTLR.但是,在尝试实现“隐式"乘法时遇到了一个问题(例如,3cos(2)sin(2)将被解释为3 * cos(2)* sin(2)). 我在Stack Overflow上发现了一个与此类问题相同的问题(此处).解决该问题的一般形式看起来像是我自己发现的,所以我不确定问题出 ..
发布时间:2020-09-02 23:05:28 其他开发