簡體   English   中英

ANTLR4-返回特定的規則對象

[英]ANTLR4 - Returning specific rule objects

我想返回一個ExprData。 ExprData是我的項目中的類。 當我嘗試編譯語法時,我得到:

SASGrammarParser.java:684:錯誤:找不到符號

這是一個導入問題。 以及如何實例化ExprData?

expr returns [ExprData exprData]
    : expr AND expr                     #AndExpr
    | expr OR expr                          #OrExpr
    | expr IN '(' constant_list ')'     #InExpr
    | expr (EQ | ASSIGN) expr           #EqualExpr
    | expr op=(MULT | DIV) expr     #DivMultExpr
    | expr op=(PLUS | MINUS) expr       #PlusMinusExpr
    | expr LTEQ expr                 #LessEqualExpr     
    | expr LT expr                      #LessExpr
    | expr GT expr                      #GreaterExpr
    | expr GTEQ expr                        #GreaterEqualExpr
    | '-' expr                              #MinusExpr
    | '(' expr ')'                          #SimpleExpr                 
    | variable                              #VariableExp
    | constant                              #ConstantExp
    | function                              #FunctionExp
    ;

如果要在語法中使用某個類(因此要在生成的解析器中使用),則需要使用

@parser::header {
import packageName.ExprData;
}

我不確定如何實例化什么意思? exprData是此處的返回變量,因此您可以通過使用$ exprData從操作中引用它來分配它。 只是形成我的頭頂(也許不能這樣使用標簽:

expr OR expr          #OrExpr {$exprData=someFuncitonThatReturnsExprDataObject();}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM