[英]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.