问题标签 [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.
parsing - ANTLR 有帮助吗?不同的建议?
在我深入研究 ANTLR 之前(因为它显然不适合胆小的人),我只是想确保我对它的使用做出了正确的决定。
我想创建一个语法,它将解析带有预定义标签的文本文件,以便我可以在我的应用程序中填充值。(文本文件是由另一个应用程序生成的。)所以,本质上,我希望能够解析如下内容:
在我的应用程序中,TheFileName 存储为一个字符串,并且两组值都存储到一个数组中。(这只是一个示例,文件要复杂得多。)无论如何,我是否至少在使用 ANTLR 时走上了正确的道路?还有其他建议吗?
编辑 文件由用户创建,它们通过标签定义区域。所以,它可能看起来像这样。
类似的东西。
java - JavaCC 与 ANTLR 的优势是什么
太多人告诉我缺点,但如果有的话,它的优点是什么?
java - 在给定 ANTLR java 语法的情况下获取 java 源方法名称列表?
给定一个 ANTLR Java 语法 - 我将编写什么 Java 源代码来获取 Java 源列表中的方法名称列表?
例如对于以下
会回来
java - 了解 ANTLR 中的树
我正在尝试将 Antlr 用于一些类似 IDE 的文本功能——特别是解析文件以识别代码折叠点和应用语法突出显示。
第一个问题——Antlr 是否适合这个要求,还是有点矫枉过正?这可以使用正则表达式和/或手动解析器来实现……但似乎 Antlr 可以为我完成这项工作。
我已经浏览了...以及这里的优秀教程资源。
我已经设法构建了一个 Java 语法(使用标准语法),并将所有内容整齐地解析成一棵树。但是,我希望看到嵌套在树中的元素。实际上,一切都是最顶层元素的子元素。
例如。鉴于:
我希望 Foo 的树节点是包声明节点的子节点。同样,myString 将是 Foo 的子代。
相反,我发现Foo
and myString
(以及其他一切)都是package
.
这是进行解析的相关摘录:
检查result.getTree()
返回一个CommonTree
实例,其子项是解析的结果。
期望值(可能不正确)
(或类似的东西)
实际值(所有值都是 的根节点的子节点result.getTree()
)
我对这应该如何工作的理解是否正确?
到目前为止,我完全是 Antlr 的菜鸟,而且我发现学习曲线非常陡峭。
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")
但之后我什么也没得到。
那么,我该如何找出它为什么挂起并停止它——或者甚至只是绕过这一部分(我可以/应该禁用调试吗?)——只要它可以工作并让我继续做有用的事情.
antlr - 与 Flex/Bison 相比,使用 ANTLR 有什么缺点?
几年前,我在本科学习期间曾在 Flex, Bison 工作过。然而,我现在已经不记得太多了。最近,我听说了 ANTLR。
- 你会建议我学习 ANTLR 还是更好地复习 Flex/Bison?
- ANTLR 的功能是否比 Flex/Bison 多/少?
antlr - ANTLR 语法文件可以模块化吗?
我正在构建 ANTLR3 应用程序,其中一些相同的语法规则可能会在不同的应用程序中使用。会有很多 *.g 文件,但它们可能都希望引用相同版本的 FLOAT。是否有“导入”工具可以从其他 *.g 文件中组装 *.g,如果有,优先规则是什么?
antlr - ANTLR 语法中是否有保留字列表?
我最近创建了一个 ANTLR3 解析器规则
它没有编译,我花了一些时间才发现这options
是一个保留字(AntlrWorks 指出了一个错误,但没有说明原因)。ANTLR 中是否有保留字列表,命名规则是否有最佳实践(这可能有助于避免这种情况)?
regex - 自动文档 - 创建快速解析器的最佳方法
我有一个最终用户需要编辑的大型脚本,因此它需要一些多余的注释。我为我的文件使用类似于此的布局
我想创建一个简单的解析器,将函数摘要复制/粘贴到文件头。我知道有几种工具可以帮助实现这一点,比如 ANTLR 甚至 RegEx,但最好的方法是什么?
antlr - 寻找 Antlr 3 / C 示例 main()
我看到一些 C 的示例 main() 浮动,例如http://www.antlr.org/wiki/display/ANTLR3/Five+minute+introduction+to+ANTLR+3和http://www.antlr。 org/api/C/index.html
取消引用似乎是 AST。我不知道那是什么,而且——请原谅——如果我能避免的话,我不想这样做。
我想只定义词法分析器和语法(用于调制解调器 AT 命令)并让 main() 自动生成,或从某处剪切/粘贴。
稍微有点扭曲的是,大多数示例似乎都是从文件中读取的,而我将获得一系列输入(AT 命令)作为字符串,作为参数传递。
谁能指点我一个简单的 main() 我可以适应(也许建议如何适应它?)我知道很多要问的问题,对不起。