Questions tagged «antlr4»

5
ANTLR:有一个简单的例子吗?
我想开始使用ANTLR,但是花了几个小时在antlr.org网站上回顾了这些示例之后,我仍然无法清楚地理解Java语法的语法。 是否有一些简单的示例,例如使用ANTLR实现的四运算计算器,经过解析器定义,一直到Java源代码?
230 java  antlr  antlr4  antlr3 


3
处理ANTLR4中的错误
解析器不知道要做什么时的默认行为是将消息打印到终端,例如: 第1:23行在“}”处缺少DECIMAL 这是一个很好的信息,但是在错误的位置。我宁愿将此作为例外。 我尝试使用BailErrorStrategy,但是会抛出一个ParseCancellationException没有消息的消息(由引起InputMismatchException,也没有消息)。 有什么办法可以让我通过异常报告错误,同时保留消息中的有用信息? 这就是我真正想要的—我通常在规则中使用动作来构建对象: dataspec returns [DataExtractor extractor] @init { DataExtractorBuilder builder = new DataExtractorBuilder(layout); } @after { $extractor = builder.create(); } : first=expr { builder.addAll($first.values); } (COMMA next=expr { builder.addAll($next.values); })* EOF ; expr returns [List<ValueExtractor> values] : a=atom { $values = Arrays.asList($a.val); } | fields=fieldrange { …

3
如何使用ANTLR4创建AST?
我一直在搜索很多有关此信息,但找不到任何能真正帮助我构建AST的有用信息。我已经知道ANTLR4不会像以前的ANTLR3那样构建AST。每个人都说:“嘿,请使用访客!”,但是我找不到任何示例或有关如何执行此操作的详细说明... 我的语法必须像C,但是每个命令都用葡萄牙语(葡萄牙语编程语言)编写。我可以使用ANTLR4轻松生成解析树。我的问题是:创建AST现在需要做什么? 顺便说一句,我正在使用Java和IntelliJ ... EDIT1:我能得到的最接近的答案是该主题:是否有一个简单的示例使用antlr4从Java源代码创建AST并提取方法,变量和注释? 但是它只打印访问方法的名称。 由于第一次尝试对我不起作用,所以我尝试使用ANTLR3的本教程,但我不知道如何使用StringTamplate而不是ST ... 阅读《权威ANTLR 4参考》一书,我也找不到与AST相关的任何内容。 EDIT2:现在我有一个类来创建DOT文件,我只需要弄清楚如何正确使用访问者
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.