问题标签 [antlrv3ide]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何从antlr中的语法文件创建令牌文件
我正在使用 antlr 创建一个 DSL。Lexer 和 Parser 写在一个语法文件中(比如 layout.g)。树语法写在另一个语法文件中(比如 layoutTree.g)。现在树解析器没有正确解析。我打印了解析器的 AST 输出,它是正确的。我浏览了生成的树解析器代码,发现令牌值声明在树解析器和解析器中分配了不同的值。下面是解析器和树解析器的示例输出。
解析器输出
树解析器输出
如您所见, DECLARATION_TOKEN 在解析器输出和树解析器输出中具有不同的值。由于这个树解析器没有按预期工作。我该如何纠正这个问题?
生成的令牌文件(比如 layout.token)是否有问题?这个文件在我的项目中是空的。如何生成这个文件?
antlr - ANTLR - 允许关键字之间的任何字符
我想为一种简单的语言定义一个语法。
该语言允许某种类型的分配。
例子
问题是,在关键字和':'
any char 之后应该是可能的(关键字也是)
我已经尝试了很多东西,但我认为我仍然不喜欢词法分析器和解析器的思考......
我的最后一个想法失败了:
编辑
首先:感谢您的回答!
我通读了手册并查看了 scott stanchfield 的教程。
问题是,我没有得到“anychar”的东西!
你是对的,我上面写的语法是错误的,因为我很着急。
这是一个更好的尝试。问题仍然是,Tokenizer 在定义 ala 中识别例如关键字
语法:
编辑二
哦,我的上帝,按照你解释的方式做这件事很明显。不知道为什么我自己没有得到它!非常感谢蒂姆的解释!
我还有一个问题:如果我为词法分析器定义我的标记,为解析器定义我的语法。它是在树解析器还是在解析器本身中检查语义的常用方法?
例如,假设我定义了与您发布的相同的语法。
现在我想检查在每个关键字a 定义之后是否定义了关键字b。稍后我确实想检查该值是否正确的含义。假设我们确实有一个关键字extends:'keyword value',我需要检查'keyword value'是否已经定义。
我可以通过两种方式做到这一点:首先,更改解析器的语法规则并在此处添加用于检查的 java 代码。其次,语法保持原样,我定义了一个树解析器语法来检查这些条件。
我真的不知道哪种方式更好,有什么优点或缺点......
非常感谢你的帮助
java - Eclipse 中的 Antlr IDE 不起作用
我正在为一个项目使用 Antlr v3 和 java,并且在 AntlrWorks 中一切顺利,但是当我切换到 Antlr IDE(eclipse 的插件)时,解释器无法匹配我写的句子,告诉我不匹配。在我看来,它无法识别我在词法分析器中指定的要跳过的单词列表。然而,它在 AntlrWorks 中完美运行是一样的。
有什么建议么?
我在eclipse中设置了antlr buider:Antlr Parser Generator v3.4
eclipse - Eclipse 不会自动生成解析器和词法分析器文件
我在 Eclipse Indigo 上使用 antlr-3.4-complete-no-antlrv2.jar 版本的 ANTLR。
我已经安装了 ANTLR IDE 插件以及 ZEST 和 GEF。当我生成组合语法文件并添加标头、词法分析器标头和规则时,Eclipse 不会生成 Parser 和 Lexer 文件。
如果我使用 antlr-3.2.jar 就可以了。我可以使用java -classpath antlr-3.4-complete-no-antlrv2.jar org.antlr.Tool Sample.g在 Eclipse 之外生成 Lexer 和 Parser 文件(使用 antlr-3.4.*)。
有没有办法在 Eclipse 3.4 版中打开它?
antlr - 为什么两个 ANLTR 解析器对同一个字符串的解释不同?
我有以下 ANTLR 语法:
我和以下字符串:
(待办事项(待办事项(待办事项)待办事项))
它被ANTRL从语法生成的解析器成功解析,例如,使用以下演示:
但是,Eclipse 插件ANTLR IDE Tools 2.1.1在解释相同的字符串时会返回错误:
MismatchedTokenException:第 1:6 行不匹配输入 '(' 期待 '\u0007'
这两个程序之间不一致的原因可能是什么?
antlr - ANTLR解释器运行错误
当我按如下方式运行解释器时,
在它显示的 ANTLR 3.4(在 eclipse 3.7 中)中创建解析树,
在“ANTLR 事件侦听器”期间发生内部错误。对于输入字符串:“假”
当我运行第二个选项Debug(Java)
时,它不会给出任何错误或解析树。
我该如何解决这个问题?
谢谢
compiler-construction - ANTLR 语法错误:永远无法匹配以下备选方案
我正在尝试使用 ANTLR 3.4 构建 C-- 编译器。
对于我写的函数的语法
但是使用两个 Kleene 星操作会给我错误:
antlr - 构建C目标语法解析器,编译时需要知道如何包含
我想在 Windows 7 平台上用 antlrIDE 构建一个解析器(用 C 语言)。我完成了语法(组合语法的.g),它会自动为我生成词法分析器和解析器。但是,我不知道如何编译 .c 和 .h 文件。我试过了,但因为头文件包含而出错(antlrIDE 自动#include "antlr.h"
在解析器点 c 文件中生成头文件)。我已阅读这篇文章Using ANTLR3 C Target
但这对我没有帮助,你们能告诉我怎么做吗?提前谢谢你。
antlr - Eclipse Antlr 解释器故障
以下语法成功地生成了一个用于处理字符串的解析器'ccdunion'
。但是当我尝试使用解释器时,我有NoViableAltException
错误,为什么?