Java 如何收集';返回';从ANTLR语法

Java 如何收集';返回';从ANTLR语法,java,compiler-construction,antlr,Java,Compiler Construction,Antlr,如果我有一个ANTLR语法,其中我有这样的规则和一个“returns”语句: string_decl returns [Pair s] : STR id EQUAL ex=str_literal ';'{$s = new Pair($id.text, $ex.text);} ; 我的主要代码如下: Lexer lexer = new Lexer(CharStreams.fromFileName(inputFileName)); CommonTokenStream tokens = new

如果我有一个ANTLR语法,其中我有这样的规则和一个“returns”语句:

string_decl returns [Pair s] : STR id EQUAL ex=str_literal ';'{$s = new Pair($id.text, $ex.text);} ;
我的主要代码如下:

 Lexer lexer = new Lexer(CharStreams.fromFileName(inputFileName));
 CommonTokenStream tokens = new CommonTokenStream(lexer);
 Parser parser = new Parser(tokens);

 System.out.println(parser.program()); //prints out empty array ?

如何打印出所有“返回”的列表?

返回值被建模为规则上下文的成员。查看是否有
String\u declContext.s
成员。另请参见ANTLR4文档。

ProgramContext
parser返回。program()
包含所有树结构。使用访客或听众在树上行走,获取您需要的任何信息。