问题标签 [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.

0 投票
1 回答
1981 浏览

java - 如何从antlr中的语法文件创建令牌文件

我正在使用 antlr 创建一个 DSL。Lexer 和 Parser 写在一个语法文件中(比如 layout.g)。树语法写在另一个语法文件中(比如 layoutTree.g)。现在树解析器没有正确解析。我打印了解析器的 AST 输出,它是正确的。我浏览了生成的树解析器代码,发现令牌值声明在树解析器和解析器中分配了不同的值。下面是解析器和树解析器的示例输出。

解析器输出

树解析器输出

如您所见, DECLARATION_TOKEN 在解析器输出和树解析器输出中具有不同的值。由于这个树解析器没有按预期工作。我该如何纠正这个问题?

生成的令牌文件(比如 layout.token)是否有问题?这个文件在我的项目中是空的。如何生成这个文件?

0 投票
1 回答
12853 浏览

antlr - ANTLR - 允许关键字之间的任何字符

我想为一种简单的语言定义一个语法。

该语言允许某种类型的分配。

例子

问题是,在关键字和':'any char 之后应该是可能的(关键字也是)

我已经尝试了很多东西,但我认为我仍然不喜欢词法分析器和解析器的思考......

我的最后一个想法失败了:

编辑

首先:感谢您的回答!

我通读了手册并查看了 scott stanchfield 的教程。

问题是,我没有得到“anychar”的东西!

你是对的,我上面写的语法是错误的,因为我很着急。

这是一个更好的尝试。问题仍然是,Tokenizer 在定义 ala 中识别例如关键字

语法:

编辑二

哦,我的上帝,按照你解释的方式做这件事很明显。不知道为什么我自己没有得到它!非常感谢蒂姆的解释!

我还有一个问题:如果我为词法分析器定义我的标记,为解析器定义我的语法。它是在树解析器还是在解析器本身中检查语义的常用方法?

例如,假设我定义了与您发布的相同的语法。

现在我想检查在每个关键字a 定义之后是否定义了关键字b。稍后我确实想检查该值是否正确的含义。假设我们确实有一个关键字extends:'keyword value',我需要检查'keyword value'是否已经定义。

我可以通过两种方式做到这一点:首先,更改解析器的语法规则并在此处添加用于检查的 java 代码。其次,语法保持原样,我定义了一个树解析器语法来检查这些条件。

我真的不知道哪种方式更好,有什么优点或缺点......

非常感谢你的帮助

0 投票
1 回答
9054 浏览

java - Eclipse 中的 Antlr IDE 不起作用

我正在为一个项目使用 Antlr v3 和 java,并且在 AntlrWorks 中一切顺利,但是当我切换到 Antlr IDE(eclipse 的插件)时,解释器无法匹配我写的句子,告诉我不匹配。在我看来,它无法识别我在词法分析器中指定的要跳过的单词列表。然而,它在 AntlrWorks 中完美运行是一样的。

有什么建议么?

我在eclipse中设置了antlr buider:Antlr Parser Generator v3.4

0 投票
1 回答
2289 浏览

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 版中打开它?

0 投票
1 回答
142 浏览

antlr - 为什么两个 ANLTR 解析器对同一个字符串的解释不同?

我有以下 ANTLR 语法:

我和以下字符串:

(待办事项(待办事项(待办事项)待办事项))

它被ANTRL从语法生成的解析器成功解析,例如,使用以下演示:

但是,Eclipse 插件ANTLR IDE Tools 2.1.1在解释相同的字符串时会返回错误:

MismatchedTokenException:第 1:6 行不匹配输入 '(' 期待 '\u0007'

这两个程序之间不一致的原因可能是什么?

0 投票
3 回答
913 浏览

antlr - ANTLR解释器运行错误

当我按如下方式运行解释器时,

运行方式

在它显示的 ANTLR 3.4(在 eclipse 3.7 中)中创建解析树,

错误信息

在“ANTLR 事件侦听器”期间发生内部错误。对于输入字符串:“假”

当我运行第二个选项Debug(Java)时,它不会给出任何错误或解析树。

我该如何解决这个问题?

谢谢

0 投票
0 回答
115 浏览

compiler-construction - ANTLR 语法错误:永远无法匹配以下备选方案

我正在尝试使用 ANTLR 3.4 构建 C-- 编译器。

对于我写的函数的语法

但是使用两个 Kleene 星操作会给我错误:

0 投票
1 回答
295 浏览

antlr - 构建C目标语法解析器,编译时需要知道如何包含

我想在 Windows 7 平台上用 antlrIDE 构建一个解析器(用 C 语言)。我完成了语法(组合语法的.g),它会自动为我生成词法分析器和解析器。但是,我不知道如何编译 .c 和 .h 文件。我试过了,但因为头文件包含而出错(antlrIDE 自动#include "antlr.h"在解析器点 c 文件中生成头文件)。我已阅读这篇文章Using ANTLR3 C Target

但这对我没有帮助,你们能告诉我怎么做吗?提前谢谢你。

0 投票
1 回答
142 浏览

antlr - Eclipse Antlr 解释器故障

以下语法成功地生成了一个用于处理字符串的解析器'ccdunion'。但是当我尝试使用解释器时,我有NoViableAltException错误,为什么?

0 投票
1 回答
64 浏览

eclipse-plugin - antlr3ide 生成没有包信息的解析器和词法分析器?

antlr3ide 似乎生成没有 java 文件所在的包信息的解析器和词法分析器文件(例如package tour.trees;,这里的相对路径文件夹tour/trees包含相应的文件ExprParser.javaExprLexer.java)。

官方论坛似乎有点不活跃,文档给我的帮助不多:(

下面是一个示例语法文件Expr.g