我正在尝试使用ANTLR解析SAS作业并基于此创建解析器。
我使用来自https://github.com/xueqilsj/sas-grammar的SAS语法并使用ANTLR进行解析和词法分析器。我也在使用此处提供的链接:https://shijinglu.wordpress.com/2015/01/22/write-a-primitive-sas-grammar-in-antlr4/。
为了澄清,每个SAS gramamr的格式都是:
grammar AbortStmt;
import CommonLexerRules;
abort_main
: (abort_stmt)* EOF
;
abort_stmt
: ABORT (ABEND | CANCEL (file_spec)? | RETURN )? INT? NOLIST? ';'
;
file_spec
: STRINGLITERAL
;
我的import语句有问题。在使用ANTLR创建自动生成的类之后,我收到以下错误:
我受到语法文件中定义的SAS导入的限制(因为每个语法文件都有一个已定义的导入)。还有其他解析语法文件和创建决策树的方法吗?
答案 0 :(得分:0)
在语法上运行ANTLR后,结果就是一组.java
个文件。然后你运行javac
将它们编译成.class
个文件吗?这可能会解释您的问题。我以前忘了这么做。之后,您可以运行TestRig来查看您的令牌或解析的图形表示。