问题标签 [antlr]

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 投票
6 回答
237 浏览

parsing - ANTLR 有帮助吗?不同的建议?

在我深入研究 ANTLR 之前(因为它显然不适合胆小的人),我只是想确保我对它的使用做出了正确的决定。

我想创建一个语法,它将解析带有预定义标签的文本文件,以便我可以在我的应用程序中填充值。(文本文件是由另一个应用程序生成的。)所以,本质上,我希望能够解析如下内容:

在我的应用程序中,TheFileName 存储为一个字符串,并且两组值都存储到一个数组中。(这只是一个示例,文件要复杂得多。)无论如何,我是否至少在使用 ANTLR 时走上了正确的道路?还有其他建议吗?

编辑 文件由用户创建,它们通过标签定义区域。所以,它可能看起来像这样。

类似的东西。

0 投票
3 回答
1670 浏览

java - JavaCC 与 ANTLR 的优势是什么

太多人告诉我缺点,但如果有的话,它的优点是什么?

0 投票
1 回答
1320 浏览

java - 在给定 ANTLR java 语法的情况下获取 java 源方法名称列表?

给定一个 ANTLR Java 语法 - 我将编写什么 Java 源代码来获取 Java 源列表中的方法名称列表?

例如对于以下

会回来

0 投票
2 回答
2966 浏览

java - 了解 ANTLR 中的树

我正在尝试将 Antlr 用于一些类似 IDE 的文本功能——特别是解析文件以识别代码折叠点和应用语法突出显示。

第一个问题——Antlr 是否适合这个要求,还是有点矫枉过正?这可以使用正则表达式和/或手动解析器来实现……但似乎 Antlr 可以为我完成这项工作。

我已经浏览了...以及这里的优秀教程资源。

我已经设法构建了一个 Java 语法(使用标准语法),并将所有内容整齐地解析成一棵树。但是,我希望看到嵌套在树中的元素。实际上,一切都是最顶层元素的子元素。

例如。鉴于:

我希望 Foo 的树节点是包声明节点的子节点。同样,myString 将是 Foo 的子代。

相反,我发现Fooand myString(以及其他一切)都是package.

这是进行解析的相关摘录:

检查result.getTree()返回一个CommonTree实例,其子项是解析的结果。

期望值(可能不正确)

(或类似的东西)

实际值(所有值都是 的根节点的子节点result.getTree()

我对这应该如何工作的理解是否正确?

到目前为止,我完全是 Antlr 的菜鸟,而且我发现学习曲线非常陡峭。

0 投票
2 回答
1026 浏览

parsing - ANTLR 解析器挂在 proxy.handshake 调用

我试图让一个基本的 ECMAScript 解析器工作,并为ECMAScript 3找到了一个完整的 ANTLR 语法,它似乎可以编译并生成适当的 Lexer/Parser/Walker Java 文件。
(在Eclipse 3.5 的ANTLR IDE 插件中运行)

但是,当实际尝试将它与一些简单的测试代码一起使用时(遵循ANTLR wiki 上的指南),它只是在尝试创建解析器时挂起:

我已经将问题追踪到ES3Parser构造函数内部,它正在调用函数proxy.handshake()- 在此行之前我可以成功完成,System.out.println("text")但之后我什么也没得到。

那么,我该如何找出它为什么挂起并停止它——或者甚至只是绕过这一部分(我可以/应该禁用调试吗?)——只要它可以工作并让我继续做有用的事情.

0 投票
3 回答
7411 浏览

antlr - 与 Flex/Bison 相比,使用 ANTLR 有什么缺点?

几年前,我在本科学习期间曾在 Flex, Bison 工作过。然而,我现在已经不记得太多了。最近,我听说了 ANTLR。

  • 你会建议我学习 ANTLR 还是更好地复习 Flex/Bison?
  • ANTLR 的功能是否比 Flex/Bison 多/少?
0 投票
1 回答
686 浏览

antlr - ANTLR 语法文件可以模块化吗?

我正在构建 ANTLR3 应用程序,其中一些相同的语法规则可能会在不同的应用程序中使用。会有很多 *.g 文件,但它们可能都希望引用相同版本的 FLOAT。是否有“导入”工具可以从其他 *.g 文件中组装 *.g,如果有,优先规则是什么?

0 投票
2 回答
2280 浏览

antlr - ANTLR 语法中是否有保留字列表?

我最近创建了一个 ANTLR3 解析器规则

它没有编译,我花了一些时间才发现这options是一个保留字(AntlrWorks 指出了一个错误,但没有说明原因)。ANTLR 中是否有保留字列表,命名规则是否有最佳实践(这可能有助于避免这种情况)?

0 投票
1 回答
90 浏览

regex - 自动文档 - 创建快速解析器的最佳方法

我有一个最终用户需要编辑的大型脚本,因此它需要一些多余的注释。我为我的文件使用类似于此的布局

我想创建一个简单的解析器,将函数摘要复制/粘贴到文件头。我知道有几种工具可以帮助实现这一点,比如 ANTLR 甚至 RegEx,但最好的方法是什么?

0 投票
1 回答
1693 浏览

antlr - 寻找 Antlr 3 / C 示例 main()

我看到一些 C 的示例 main() 浮动,例如http://www.antlr.org/wiki/display/ANTLR3/Five+minute+introduction+to+ANTLR+3http://www.antlr。 org/api/C/index.html

取消引用似乎是 AST。我不知道那是什么,而且——请原谅——如果我能避免的话,我不想这样做。

我想只定义词法分析器和语法(用于调制解调器 AT 命令)并让 main() 自动生成,或从某处剪切/粘贴。

稍微有点扭曲的是,大多数示例似乎都是从文件中读取的,而我将获得一系列输入(AT 命令)作为字符串,作为参数传递。

谁能指点我一个简单的 main() 我可以适应(也许建议如何适应它?)我知道很多要问的问题,对不起。