使用ANTLR从SAS作业创建Spark语法的方法

使用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 )?

我试图使用ANTLR解析SAS作业,并在此基础上创建解析器

我正在使用来自的SAS语法,并使用ANTLR进行语法分析和词法分析器。我也在使用此处提供的链接:

为了澄清,每个SAS gramamr的格式如下:

grammar AbortStmt; 

import CommonLexerRules; 

abort_main
 : (abort_stmt)* EOF 
 ; 

abort_stmt
 : ABORT (ABEND | CANCEL (file_spec)? | RETURN )? INT? NOLIST? ';'
 ; 

file_spec
 : STRINGLITERAL 
 ; 
我对进口声明有意见。使用ANTLR创建自动生成的类后,出现以下错误:

  • 无法将AbortStmtBaseListener.class作为lexer或解析器加载
  • 无法导入规则

  • 我受到语法文件中定义的SAS导入的限制(因为每个语法文件都有一个已定义的导入)。解析语法文件和创建决策树的任何其他方法?

    一旦对语法运行ANTLR,结果就是一组
    .java
    文件。然后您是否运行了
    javac
    将它们编译成
    .class
    文件?那可能是你的问题的原因。我以前忘了做那件事。之后,您可以运行TestRig来查看您的标记或解析的图形表示。

    只是为了澄清,每个SAS gramamr的格式都是:grammar AbortStmt;进口通用规则;中止主:(中止时间)*EOF;中止:中止(中止|取消(文件规格)|返回)?智力?诺利斯特;文件规格:STRINGLITERAL;我对进口声明有意见。谢谢。实际上,我的SAS语法有需要包含的依赖语法。我这样做了,并创建了侦听器etc*.java文件。但在那之后,我无法创建决策树。我需要创建树以将其转换为Spark语法。