问题标签 [antlr4]

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 回答
287 浏览

antlr4 - 我在哪里可以找到 G4 结构 ANTLR4 的 g4 文件?

我想用 ANTLR 4 验证 G4 结构文件...可以吗?

0 投票
2 回答
365 浏览

compiler-construction - 使用ANTLR语法识别不同的函数(函数可能有相同的起始项但中间有关键字)

我只是遇到了一件令人头疼的事情..

我尝试将语句拆分为不同的函数,就像我有一个示例语句

两个语句都以 'n' 开头,目前我正在写

但是当词法分析器运行时,它无法确定哪个是哪个,因为两个子状态都以相同的东西'n'开头,编译器可以选择使用规则。如果下一个字符串与编译器使用的第一个规则不匹配,那么它将自动抛出一个不匹配的错误。

如果我遇到“x turnTo y”,我如何识别并告诉 ANTLR,然后使用规则 turnTo_statment,如果我遇到“x terminate”。然后使用规则 terminate_statment..

即在antlr中是否有任何功能可以做到这一点..

谢谢..

0 投票
2 回答
910 浏览

antlr - ANTLR4 访客子树检查

我有一个 Antlr4 问题。鉴于下面的语法摘录。actualParameters测试访问者 中是否存在可选子树的正确方法是什么?

我已经尝试过 procedureCallStatement 上下文的 getChildCount 方法。我还测试了上下文中的 null actualParameters 参数。

如果实际参数子树不存在,我不想访问它。这样做会导致异常。

谢谢!

开尔文·约翰逊

0 投票
1 回答
4271 浏览

antlr4 - ANTLR 4 比 ANTLR 3 快吗?

我应该从 ANTLR 4 中得到什么?

ANTLR 3 更快吗?我的意思是解析速度。
注意代码生成速度也会很有趣。

出于设计原因?

0 投票
1 回答
5406 浏览

antlr - 简单 antlr4 语法中的不匹配输入错误

我正在尝试使用 antlr4 解析一个简单的 SQL 子集。

我的语法如下所示:

我正在使用一个简单的 java 应用程序对此进行测试,如下所示:

我得到的输出如下:

我不明白为什么解析器似乎将“表”作为解析器树中的表名,但我也遇到了错误。我错过了什么?

谢谢

安德鲁

0 投票
1 回答
827 浏览

antlr4 - 在解析器中重新定义令牌类型

需要为 可能的表单设计语言 实现 COS aka MUMPS的语法突出显示

其中:'new' 和 'set' 是命令,也是变量

我有一个问题,当 ID 像名称作为命令(NEW、SET 等)

0 投票
1 回答
725 浏览

antlr - ANTLR4 键/值语法

我有一个非常简单的键/值语法(不是我正在研究的实际语法,但这是我能想到的最简单的语法,它显示了我的问题),它似乎与 ANTLR 4.0b4 中的词法分析器匹配顺序有问题。语法是:

鉴于此语法和输入 'hello:world' 我希望它能够正确解析,但是似乎整个输入被拉入单个 VALUE 令牌并因此失败:

我究竟做错了什么?

0 投票
2 回答
1870 浏览

antlr4 - 检查词法分析器中的前一个/左标记


例如 ,如何在词法分析器中找到前一个/左标记

ETC

0 投票
1 回答
3918 浏览

antlr4 - 标签 x 分配给不是集合的块

尝试升级 antlr4,我在语法中有 2 行产生错误消息:

标签 tok 分配给不是集合的块

专门针对如下所示的语法行:

这究竟意味着什么 - 成为“未设置的块”并且有通用解决方案吗?

0 投票
1 回答
3382 浏览

antlr4 - 该类型生成一个字符串,需要超过 65535 个字节才能在常量池中以 Utf8 格式编码

我正在尝试使用在 antlr3 中工作的有点大的语法的 antlr4。完成了所需的 2 个语法更改,现在我有了生成词法分析器和解析器的工具。

但是,词法分析器有一个编译错误:

1)该类型在常量池中生成一个需要65535个字节以上的Utf8格式编码的字符串

该错误显示在 Eclipse 中的类名上,因此不确定它正在谈论的是哪个字符串,但我怀疑它是这个非常长的字符串:

看起来像解析器生成器中的一个错误,但可能需要一些我不知道的 antlr4 新设置(?)