问题标签 [antlr3]

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

antlr - ANTLR 重写查询文本以重复具有较早节点的文本

我是 ANTLR 的新手,正在尝试使用以下方法解析查询

这似乎适用于一般查询。但是,a near (b or c)实际需要处理的情况为:

替代文字

并且a near (b or c and (d or e))需要处理为:

替代文字

我无法确定如何执行此操作。非常感激任何的帮助。

谢谢

0 投票
1 回答
382 浏览

antlr - Antlr 3.2 重写规则

我最近开始学习 Antlr 并下载 AntlrWorks 1.4,据说它包括 Antlr 3.2。现在,3.2 应该支持重写规则语法,如 '->' 但我什至无法获得我可以基于 Lexer 或 Parser 规则构建的最简单的情况:

当我尝试编译它时,我得到了错误:

为什么是这样。构造看起来很简单:ab 应该生成一棵树,其中只捕获 a 节点。你不就是这样吗?我不能让它与生根('^')或忽略('!')一起工作。我很困惑。

0 投票
1 回答
124 浏览

java - 在 ANTLR3 中获取复合规则的词素

假设我有类似的东西:

我想获得 rule2 或 rule3 文本,但我得到的只是 a type_return,它只给了我 astart和 a stop

有任何想法吗?

0 投票
1 回答
650 浏览

antlr - ANTLR 表达式解释器

我创建了以下语法:我想知道如何构建一个解释器,它在 java 中返回一棵树,我以后可以用它在屏幕上打印,我有点堆栈关于如何开始它。

0 投票
1 回答
1308 浏览

antlr - ANTLR 树语法和 StringTemplate 代码翻译

我正在使用示例 ANTLR 树语法进行代码翻译项目:

它的组模板文件如下所示:

基于此,我有以下问题:

  • 一切都很好,除了我应该表达的意思WHAT?是程序只是一个类声明列表以获得最终生成的输出?
  • 这种方法是否平均适用于不那么高级的语言?
  • 我还研究了ANTLR Code Translation with String Templates,但似乎这种方法充分利用了树语法中的交错代码。是否也可以在字符串模板中尽可能多地做到这一点?

SOLUTION,我根据 Terence 的建议添加了解决方案:

模板将是:

0 投票
1 回答
2272 浏览

antlr - 如何解决 ANTLR 不匹配输入的问题

给定语法

和一个测试字符串

导致

这里出了什么问题?

0 投票
1 回答
1230 浏览

antlr - ANTLR:如何用实际空格替换所有定义为空格的字符

我的 ANTLR 代码如下:

我想做的是将所有标记为空格的字符替换为 PHRASE 中的实际空格字符。另外,如果可能的话,我希望所有连续的空间都用一个空间来表示。

非常感激任何的帮助。出于某种原因,我发现很难理解 ANTLR。有什么好的教程吗?

0 投票
1 回答
148 浏览

antlr - 带有 Antlr 的 Java3d 形状

那么如何评估一个非常简单的 antlr 语法,它只做这个。

并构建 java3d 形状,(假设我已经为 java3d 构建了一个画布并拥有在 java 中创建每个元素的代码,

谢谢

0 投票
1 回答
424 浏览

antlr - 在 Antlr 中定义语法

我定义了以下语法。

如何检查此语法,以便在我有示例时

结果是成功的,但如果我写

它给出了 E 未定义的错误,谢谢

结果:我得到了它的工作非常感谢:

0 投票
1 回答
164 浏览

c# - 如何创建给定形状的 antlr 树?

我有一个 antlr 语法,它的规则如下:

其中 ID 是用于匹配典型变量名称的词法分析器规则,逗号是匹配逗号的词法分析器规则。所以规则匹配一个或多个逗号分隔的变量

我想创建一棵看起来像这样的树:

其中 ITEM 是我在找到的每个 ID 前面插入的虚构节点。

我将如何用树重写语法做这样的事情?

通常,如果我想收集我会使用的所有 id

但这会产生树:

如果它作为实现语言和 ANTLR 3.1.3 很重要,我正在使用 C#