问题标签 [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.
error-handling - 规则失败时强制 antlr3 立即退出
我有这样的规则:
RuntimeObject
不幸的是,它在构造函数中抛出异常,因为$label.text
它是 null。检查调试输出和其他一些事情表明与“标签”的匹配实际上失败了,但 Antlr 运行时“有用地”继续匹配以提供更有用的错误消息(http://www.antlr.org /blog/antlr3/error.handling.tml)。
好的,我可以看到这在某些情况下是如何有用的,但是我怎样才能告诉 Antlr 停止这样做呢?v2的defaultErrorHandler=false
选项似乎消失了。
c - 如何使用 ANTLR3C 生成介绍性识别器?
Definitive ANTLR Guide 从一个简单的识别器开始。使用语法逐字针对 C 运行时失败,因为 '%s' 对 ANTLR 意味着什么:
在这种情况下如何告诉 ANTLR 忽略 '%'?
c - 用 C 编译 ANTLR 3 语法
我一直在尝试学习 ANTLR 并使用本教程(也在这个问题中引用)让它与 C 输出代码一起工作。我成功地让 ANTLR 将词法分析器和解析器生成为 C 源代码,但我无法让它们在 Mac OS X Snow Leopard (i686-apple-darwin10-gcc-4.2.1) 上使用 gcc 进行编译。下面是我尝试编译“SimpleCalcLexer.c”时的结果。
SimpleCalcLexer.c 文件在任何地方都没有引用“main”(也没有定义),但解析器确实定义了它,所以我尝试编译它:
所以有几个问题:
1)我做错了什么?我很确定正在找到这些库,因为在代码中还发现了其他 antlr 函数和定义。我是否错误地调用 gcc?(我以前从来没有在命令行上编译过这么复杂的东西。)
2)什么是ccn8ZVhk.o
?我可以说它是一个目标代码文件,但我在我的系统上找不到它(locate
和mdfind
)。
java - 如何序列化 antlr3 AST
我刚刚开始使用 antlr3 并试图序列化 .g 语法的 AST 输出。
谢谢,
乐赞
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 - 寻找 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() 我可以适应(也许建议如何适应它?)我知道很多要问的问题,对不起。
c++ - ANTLR 3.2 中的 C++ 代码生成准备好了吗?
我正在努力让 ANTLR 3.2 在 C++ 中生成解析器/词法分析器。这是徒劳的。不过,Java 和 C 进展顺利。
我正在使用本教程开始:http ://www.ibm.com/developerworks/aix/library/au-c_plusplus_antlr/index.html
当我检查 *.stg 文件时,我发现:
CPP只有
C有很多文件:
其他语言也是如此。
我的CG文件:
错误:
... 等等。
请多多指教。谢谢!我正在使用 Leopard 10.5.8
antlr - 字符串匹配问题(我可以优先考虑吗?)
我有一个(错误地指定)要求我识别某些关键字,但也有“任何字符串”的规定......
例如,在输入“让我们有一个”中,我必须处理 == "beer"、== "curry" 和 == 其他任何东西(理论上,关键字 beer & curry 优先于所有其他字符串)。
当我尝试定义这一点时,当然,我得到
我想这是一个 st00pid n00b 常见问题解答,但没有看到明显的答案。感激地收到任何帮助...
antlr - 在运行时动态更新规则
发送 AT 命令时,它通常由 \r\n 终止,但实际上,它们实际上是两个“寄存器变量”S3 和 S4。
默认情况下 S3=='\r' 和 S4=='\n',但用户可以在运行时使用命令 ATSx= 更改它们
如何在我的 Antlr 词法分析器/解析器中处理这个问题?
每个命令的格式为 AT[parameters]S3S4,如果用户更改 S3 或 S4 的值,我该如何处理?
在此先感谢您的帮助...