问题标签 [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.
java - 为什么 Antlr 不生成词法分析器 java 文件?
Antlr3 不生成 Mylexer.java。我用 AntlrWorks...
当我有语法开始时
语法 mylexer;
它确实生成 myParser.java
它看起来很简单..我想知道可能是什么原因..以及解决方案...我没有收到错误消息。
antlr - ANTLR:ANTLRWorks 向导中的简单示例不起作用
语法:
它是用向导生成的语法;我添加了规则“开始”。
在解释器中输入:
结果在控制台:
截图: http ://habreffect.ru/files/200/4cac2487f/antlr.png
ANTLRWorks v1.4 也在 ANTLR v3.2 的控制台上尝试过,结果相同。
如果我输入“\nabc”而不是“abc”,它工作正常。如果我在 STRING 规则中将 ESC_SEQ 放在右侧,则 "abc" 有效,但 "\nabc" 失败。
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 项新技术可能不是一个好主意。
parsing - 如何检查 ANTLR 令牌在解析器中仅使用一次或更少
在 Antlr 中,如果我有一个规则,例如:
它会接受:“tokena tokenb”
如果我希望 TOKENA 是可选的,我可以说,
那么我可以拥有:“tokena tokenb”或“tokenb”或“tokena tokena tokenb”
但这也意味着它可以重复多次。无论如何我可以说这个令牌可以出现1次或更少但不超过一次?所以它会接受:
“tokena tokenb”或“tokenb”但不是“tokena tokena tokenb”?
非常感谢
antlr - ANTLR 中的“语义谓词”是什么?
ANTLR中的语义谓词是什么?
antlr - 使用 Antlr 解析模棱两可的输入
几天来,我一直在尝试解析一些由文本和数字组成的文本(我在语法中将其称为句子)。
我有一个规则需要解析一个以 INT 结尾的句子
因此,如果我有一些输入是“购买的 14 号鞋的数量是 3”,那么 sentence_with_int 将不仅仅是句子匹配。我确信有更好的方法可以做到这一点,但我只是在学习这个工具。
谢谢,理查德
unicode - 在antlr3中扫描二进制文件
我想解析一个二进制文件并以十六进制格式而不是 unicode 指定字符,这可能吗?
例如: rule: '\x7F' ;
而不是: rule: '\u007F' ;
因为我不明白 unicode 如何映射到一个字节。
lexer - 为什么 ANTLR 中的 'a'..'z' 匹配 $ 或 £ 等通配符
当我运行以下语法时:
我给输入“?test”为什么antlr接受这个作为有效输入?我认为 ('a'..'z') 只会匹配小写字母中的字符?
antlr - 如何使用 ANTLR 语法排除字符/符号?
我正在尝试使用 ANTLR 为各种时间格式(12:30、0945、1:30-2:45,...)编写语法。到目前为止,只要我不输入语法文件中未定义的字符,它就像一个魅力。
例如,我正在使用以下 JUnit 测试:
抛出异常(如预期),因为“15:123”无效。但是,如果我尝试 ("15:23a"),则不会引发异常,并且 ANTLR 将其视为有效输入。
现在,如果我在语法中定义字符,ANTLR 似乎会注意到它们,并且我再次得到我想要的异常:
但是如何排除变音符号、符号和其他用户可以输入的内容(äöü{%&<>!)。所以基本上我正在寻找某种语法说:匹配所有内容但“0..9,:-”
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 合作过