2010-07-17 57 views
4

我有這樣返回在ANTLR多個值排除

receive returns[Evaluator e,String message] 
    : RECEIVE FILENAME {$e= new ReceiveEvaluator($FILENAME.text);} 
    ; 

我添加了一個新的返回消息的ANTLR規則,我希望把該文件的內容。我可以做的一種方式是在我通過調用evaluate()方法遍歷樹時使評估器返回字符串。

我想知道如果我可以在這裏實現它 - 但我不知道如何設置多個返回值並稍後訪問它們。

感謝 哈日

回答

5

下面是如何SET-並使用多個返回值:

parse 
    : r=receive { 
     Evaluator e = $r.evaluator; 
     String m = $r.message; 
    } 
    ; 

receive returns[Evaluator evaluator, String message] 
    : RECEIVE f=FILENAME { 
     $evaluator = new ReceiveEvaluator($f.text); 
     $message = "Some message here..."; 
    } 
    ;