antlr3相关内容
我想用antlr3创建一个简单的条件表达式解析器 更新:单独的AND OR表达式规则支持AND / OR不同的层次结构,但得到另一个问题: 如果表达式类似于:a = 1且b = 2且c = 3 根据当前工具,树应如下: = = (a = 1)(b = 2)(c = 3) 但我想生成如下: = = (a = 1)(b = 2) (c = 3) 首先“和”应优先于另一个,因为我
..
我用PHP和Java开发。 Eclipse PDT似乎需要DLTK 4.0,它没有问题。 ANTLR IDE似乎需要DLTK3。我已经尝试将插件3.0复制到我的Eclipse插件/功能目录中: http://download.eclipse.org/technology/dltk/downloads/drops/R3.0/S-3.0.1 -201108261011 / 这可以在没有PD
..
这些天我一直在使用ANTLRwork 1.5和antlr runtime 3.5。这是我发现的一个奇怪的事情: Antlr为我生成这种java代码: public final BLABLABLAParser .addExpression_return addExpression()抛出{ blablabla ... } 通知这个函数什么都不抛出,这在java中是无效
..
我在Antlr3中有词法规则为: HYPHEN:' - '; TOKEN:HYPHEN CHARS; CHARS:'a'..'z'; 分析器规则如下: exp:CHARS |一些复杂的表达; parser_rule:exp HYPHEN exp; 如果我尝试将'abc-abc'与parser_rule匹配,则失败。因为lex
..
在利用ANTLR 3.3时,我正在改变当前语法以支持没有括号的输入。这是我的语法的第一个版本: 语法PropLogic; NOT:'!'; OR:'+'; AND:'。'; IMPLIES:' - >'; 符号:('a'..'z')| '〜'; OP:'('; CP:')'; prog:公式EOF; 公式:NOT formula | OP公
..
我有一种语言,主要用于将列映射到数组中的新结构。该语言旨在让产品经理定义映射,而无需了解大量编程细节。我相信这里还有很多东西需要改进,但这就是我所拥有的。 这种语言很有用。我遇到的问题是条件语句。 我的解析器有以下规则: conditionalexpr:IF ^ LPAREN! (声明)RPAREN!然后! LCURLY! RCURLY! (ELSE!LCURLY!声明RCUR
..
我正在尝试解析嵌套的布尔表达式并分别获取表达式中的各个条件。例如,如果输入字符串是: (A = a OR B = b OR C = c AND((D = d AND E = e)OR(F = f和G = g))) 我想得到正确顺序的条件。即, D = d AND E = e OR F = f AND G = g AND A = a OR B = b OR C = c
..
这是Antlr中的词法分析器(对不起长文件): 词法分析器语法SqlServerDialectLexer; / * T-SQL字* / AND:'AND'; BIGINT:'BIGINT'; BIT:'BIT'; CASE:'CASE'; CHAR:'CHAR'; COUNT:'COUNT'; 创建:'创建'; CURRENT_TIMESTAMP:'CURR
..
我还在我寻求一种非常简单的语言,我现在知道没有。所以我自己用ANTLR3写一个。 我在这个答案: Exp.g: 语法Exp; eval返回[double value] :exp = additionExp {$ value = $ exp.value;} ; additionExp返回[double value] :m1 = multiplyExp {$ v
..
我想开始使用ANTLR,但是花了几个小时在 antlr.org site,我仍然无法清楚地理解Java进程的语法。 是否有一些简单的例子,类似于四操作计算器实现的使用ANTLR进行解析器定义并一直到Java源代码? 解决方案 首先创建一个语法。下面是一个小语法,您可以使用它来评估使用4个基本数学运算符构建的表达式:+, - ,*和/。你也可以用括号对表达式进行分组。 注意这个语
..
我一直在努力学习ANTLR,并使用这个教程(也在这个问题)。我成功地让ANTLR生成词法分析器和解析器作为C源代码,但是我无法让它们在Mac OS X Snow Leopard(i686-apple-darwin10-gcc-4.2.1)上使用gcc进行编译。下面是我尝试编译“SimpleCalcLexer.c”时的结果。 dyn-72-33-132-199:Desktop bf $ gc
..
我注意到在函数式语言中创建解析器的LL解析器明显缺乏。对于我一直在寻找而没有成功的理想发现是为ANTLR样式的LL(*)语法生成一个Haskell解析器(对语法进行模次重新格式化),并且惊讶于每一个具有函数的解析器生成器我发现的语言目标是某种LR解析器。 我想转换我正在使用的这种语言的解析器,它具有从ANTLR到自主机器的功能特性在语言本身中,如果我能够使用另一种函数式语言(最好是我熟悉的,
..
是否可以使用ANTLR或ANTLR3创建一个LL(1)表驱动(非递归)编译器? 解决方案 然而,由于ANTLR是开源的,你可以修改ANTLR的分支。 ANTLR将词法分析器和解析器构建为递归下降源代码。这就是为什么ANTLR易于使用和流行,因为人们可以看看源代码,了解词法分析器和解析器如何工作而不是查看表条目。因为它是源代码,还可以使用工具来调试源代码。如果ANTLR使用表而不是
..
我想写一个语法的算术和布尔表达式。我不明白我做错了什么。对于我的语法,ANTLR说: [致命]规则logic_atom具有非LL(*)决定,因为递归规则调用可从alts 1,2。通过左因子或使用句法谓词或使用backtrack = true选项来解决。 但是我不能做左因子。我不想触摸 arith_expr ,因为我有一个代码。 中出现错误logic_atom:LBR logic_
..
我试图学习ANTLR,同时将其用于当前的项目。 我已经到了可以运行lexer对一块代码并将其输出到CommonTokenStream。这是工作正常,我已经验证源文本被分解为适当的令牌。 现在,我想能够修改文本 例如我试过: import org.antlr.runtime。*; import java.util。*; public class LexerTes
..
这是我第一次尝试cmake,如果可能,我想有一些反馈关于我做了一些问题仍然存在。 在CMakeLists。 txt的库文件夹,我创建了两个makefile目标: configure-antlr3c 和 antlr3c 。第一个目标运行autotools配置shell脚本,第二个运行make可执行文件来构建库: #CMakeLists.txt in libantlr3c-3.1.3
..
我有其中我已经写了词法令牌作为一项要求: IF_LEXER_TOKEN:()'如果'*' END_IF' ANY:(选项{贪婪= TRUE;})*; 但是,如果输入被给定为: 如果A> b,则A = b END_IF 如果C D 1和D则c = D 在这种情况下,预期的行为是它应该使用标记 IF_LEXER_TOKEN 的第一行和第二行
..
我在建设一个ANTLR解析器编译为Java的工作目标。当我重新定位为C#2它产生的解析器中,所有的解析方法是私有的,但标记为[GrammarRule(“RuleName中”)]属性。 什么是认可的手段,实际调用解析器? 我使用ANTLR 3.3 2010年11月30日12点45分30秒 谢谢, 刘德华 解决方案 请至少有一个解析器规则“公开”是这样的: 语法笔;选项{ 语
..
我有一个内置C固定库(在ANTLR的3 C库)。这是正确的安装和工作(即我可以运行的gcc -o解析器lexer.c parser.c -lantlr3c 就好了)。 在X code,但是,我得到一个错误。我在“其他连接标志”构建设置添加 -lantlr3c 。 没有发现-lantlr3c库: LD 命令/Developer/Platforms/iPhoneSimulator.platfor
..
我已经写了隐约类似Java的DSL语法。虽然还存在一些问题,它(它不承认所有的投入,因为我希望它),什么最关心我的是生成的C code不是编译。 我用AntlrWorks 1.5 ANTLR的3.5(4 ANTLR的显然不支持C的目标)。 问题是,与前pression规则。我有规则prio14Ex pression到prio0Ex pression其处理运营商precedence。以问题为优先
..