使用ANTLR从SAS作业创建Spark语法的方法
我试图使用ANTLR解析SAS作业,并在此基础上创建解析器 我正在使用来自的SAS语法,并使用ANTLR进行语法分析和词法分析器。我也在使用此处提供的链接: 为了澄清,每个SAS gramamr的格式如下:使用ANTLR从SAS作业创建Spark语法的方法,sas,grammar,antlr4,Sas,Grammar,Antlr4,我试图使用ANTLR解析SAS作业,并在此基础上创建解析器 我正在使用来自的SAS语法,并使用ANTLR进行语法分析和词法分析器。我也在使用此处提供的链接: 为了澄清,每个SAS gramamr的格式如下: grammar AbortStmt; import CommonLexerRules; abort_main : (abort_stmt)* EOF ; abort_stmt : ABORT (ABEND | CANCEL (file_spec)? | RETURN )?
grammar AbortStmt;
import CommonLexerRules;
abort_main
: (abort_stmt)* EOF
;
abort_stmt
: ABORT (ABEND | CANCEL (file_spec)? | RETURN )? INT? NOLIST? ';'
;
file_spec
: STRINGLITERAL
;
我对进口声明有意见。使用ANTLR创建自动生成的类后,出现以下错误:
我受到语法文件中定义的SAS导入的限制(因为每个语法文件都有一个已定义的导入)。解析语法文件和创建决策树的任何其他方法?一旦对语法运行ANTLR,结果就是一组
.java
文件。然后您是否运行了javac
将它们编译成.class
文件?那可能是你的问题的原因。我以前忘了做那件事。之后,您可以运行TestRig来查看您的标记或解析的图形表示。只是为了澄清,每个SAS gramamr的格式都是:grammar AbortStmt;进口通用规则;中止主:(中止时间)*EOF;中止:中止(中止|取消(文件规格)|返回)?智力?诺利斯特;文件规格:STRINGLITERAL;我对进口声明有意见。谢谢。实际上,我的SAS语法有需要包含的依赖语法。我这样做了,并创建了侦听器etc*.java文件。但在那之后,我无法创建决策树。我需要创建树以将其转换为Spark语法。