问题标签 [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 回答
597 浏览

java - 为什么 Antlr 不生成词法分析器 java 文件?

Antlr3 不生成 Mylexer.java。我用 AntlrWorks...

当我有语法开始时

语法 mylexer;

它确实生成 myParser.java

它看起来很简单..我想知道可能是什么原因..以及解决方案...我没有收到错误消息。

0 投票
1 回答
2767 浏览

antlr - ANTLR:ANTLRWorks 向导中的简单示例不起作用

语法:

它是用向导生成的语法;我添加了规则“开始”。

在解释器中输入:

结果在控制台:

截图: http ://habreffect.ru/files/200/4cac2487f/antlr.png

ANTLRWorks v1.4 也在 ANTLR v3.2 的控制台上尝试过,结果相同。

如果我输入“\nabc”而不是“abc”,它工作正常。如果我在 STRING 规则中将 ESC_SEQ 放在右侧,则 "abc" 有效,但 "\nabc" 失败。

0 投票
1 回答
2051 浏览

java - Netbeans 和 EOF

Java、ANTLR 和 Netbeans 新手在这里。

我已经安装了 jdk 和 netbeans。我在 netbeans 6.8 上开始了一个新项目,并将 antlr-3.2.jar 添加为库。我还使用 AntlrWorks 创建了一个词法分析器和解析器类。这些类被命名为 ExprParser.java 和 ExprLexer.java。我将它们复制到名为 path-to-netbeans-project/src/parsers 的目录中。

我有一个主文件:

应用程序构建良好。我正在阅读的书说我应该运行程序并输入一些内容,然后按 Ctrl+Z(我在 Windows 上)将 EOF 发送到控制台。问题是当我在 netbeans 控制台中按 Ctrl+z 时没有任何反应。当我从命令行运行时, ctrl+z 工作正常。

这可能是太多的信息,但我无法弄清楚。对不起。一次学习 3 项新技术可能不是一个好主意。

0 投票
1 回答
457 浏览

parsing - 如何检查 ANTLR 令牌在解析器中仅使用一次或更少

在 Antlr 中,如果我有一个规则,例如:

它会接受:“tokena tokenb”

如果我希望 TOKENA 是可选的,我可以说,

那么我可以拥有:“tokena tokenb”或“tokenb”或“tokena tokena tokenb”

但这也意味着它可以重复多次。无论如何我可以说这个令牌可以出现1次或更少但不超过一次?所以它会接受:

“tokena tokenb”或“tokenb”但不是“tokena tokena tokenb”?

非常感谢

0 投票
2 回答
27007 浏览

antlr - ANTLR 中的“语义谓词”是什么?

ANTLR中的语义谓词是什么?

0 投票
1 回答
287 浏览

antlr - 使用 Antlr 解析模棱两可的输入

几天来,我一直在尝试解析一些由文本和数字组成的文本(我在语法中将其称为句子)。

我有一个规则需要解析一个以 INT 结尾的句子

因此,如果我有一些输入是“购买的 14 号鞋的数量是 3”,那么 sentence_with_int 将不仅仅是句子匹配。我确信有更好的方法可以做到这一点,但我只是在学习这个工具。

谢谢,理查德

0 投票
1 回答
160 浏览

unicode - 在antlr3中扫描二进制文件

我想解析一个二进制文件并以十六进制格式而不是 unicode 指定字符,这可能吗?

例如: rule: '\x7F' ;

而不是: rule: '\u007F' ;

因为我不明白 unicode 如何映射到一个字节。

0 投票
1 回答
830 浏览

lexer - 为什么 ANTLR 中的 'a'..'z' 匹配 $ 或 £ 等通配符

当我运行以下语法时:

我给输入“?test”为什么antlr接受这个作为有效输入?我认为 ('a'..'z') 只会匹配小写字母中的字符?

0 投票
2 回答
5754 浏览

antlr - 如何使用 ANTLR 语法排除字符/符号?

我正在尝试使用 ANTLR 为各种时间格式(12:30、0945、1:30-2:45,...)编写语法。到目前为止,只要我不输入语法文件中未定义的字符,它就像一个魅力。

例如,我正在使用以下 JUnit 测试:

抛出异常(如预期),因为“15:123”无效。但是,如果我尝试 ("15:23a"),则不会引发异常,并且 ANTLR 将其视为有效输入。

现在,如果我在语法中定义字符,ANTLR 似乎会注意到它们,并且我再次得到我想要的异常:

但是如何排除变音符号、符号和其他用户可以输入的内容(äöü{%&<>!)。所以基本上我正在寻找某种语法说:匹配所有内容但“0..9,:-”

0 投票
1 回答
198 浏览

antlr - Antlr - 对象引用未设置为对象的实例

有人知道 Antlr 是如何工作的吗?我在开发服务器上遇到错误:

[NullReferenceException:对象引用未设置为对象的实例。] Antlr.StringTemplate.CommonGroupLoader.LocateFile(String filename) +19 Antlr.StringTemplate.CommonGroupLoader.LoadGroup(String groupName, StringTemplateGroup superGroup, Type lexer) +67

完全相同的代码在本地运行良好,我可以在开发服务器的 bin 文件夹中看到 antlr.runtime.dll。

感谢您的指导,贾斯汀,我以前从未与 Antlr 合作过