问题标签 [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 投票
3 回答
1422 浏览

error-handling - 规则失败时强制 antlr3 立即退出

我有这样的规则:

RuntimeObject不幸的是,它在构造函数中抛出异常,因为$label.text它是 null。检查调试输出和其他一些事情表明与“标签”的匹配实际上失败了,但 Antlr 运行时“有用地”继续匹配以提供更有用的错误消息(http://www.antlr.org /blog/antlr3/error.handling.tml)。

好的,我可以看到这在某些情况下是如何有用的,但是我怎样才能告诉 Antlr 停止这样做呢?v2的defaultErrorHandler=false选项似乎消失了。

0 投票
2 回答
466 浏览

python - 在 Google App Engine 上从句子中提取语法特征

对于我的 GAE 应用程序,我需要进行一些自然语言处理以从输入句子中提取主语和宾语。

显然NLTK 不能(轻松)安装在 GAE 上,所以我正在寻找另一种解决方案。我注意到 GAE 与Antlr3一起提供,但通过浏览他们的文档,它解决了另一种语法问题。

有任何想法吗?

0 投票
1 回答
380 浏览

c - 如何使用 ANTLR3C 生成介绍性识别器?

Definitive ANTLR Guide 从一个简单的识别器开始。使用语法逐字针对 C 运行时失败,因为 '%s' 对 ANTLR 意味着什么:

在这种情况下如何告诉 ANTLR 忽略 '%'?

0 投票
2 回答
3400 浏览

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?我可以说它是一个目标代码文件,但我在我的系统上找不到它(locatemdfind)。

0 投票
2 回答
719 浏览

java - 如何序列化 antlr3 AST

我刚刚开始使用 antlr3 并试图序列化 .g 语法的 AST 输出。
谢谢,
乐赞

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 投票
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() 我可以适应(也许建议如何适应它?)我知道很多要问的问题,对不起。

0 投票
2 回答
5592 浏览

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

0 投票
1 回答
388 浏览

antlr - 字符串匹配问题(我可以优先考虑吗?)

我有一个(错误地指定)要求我识别某些关键字,但也有“任何字符串”的规定......

例如,在输入“让我们有一个”中,我必须处理 == "beer"、== "curry" 和 == 其他任何东西(理论上,关键字 beer & curry 优先于所有其他字符串)。

当我尝试定义这一点时,当然,我得到

我想这是一个 st00pid n00b 常见问题解答,但没有看到明显的答案。感激地收到任何帮助...

0 投票
1 回答
107 浏览

antlr - 在运行时动态更新规则

发送 AT 命令时,它通常由 \r\n 终止,但实际上,它们实际上是两个“寄存器变量”S3 和 S4。

默认情况下 S3=='\r' 和 S4=='\n',但用户可以在运行时使用命令 ATSx= 更改它们

如何在我的 Antlr 词法分析器/解析器中处理这个问题?

每个命令的格式为 AT[parameters]S3S4,如果用户更改 S3 或 S4 的值,我该如何处理?

在此先感谢您的帮助...