初学者的问题:如何将解析树的可读版本打印到stdout?
CharStream input = CharStreams.fromFileName("testdata/test.txt");
MyLexer lexer = new MyLexer(input);
CommonTokenStream tokens = new CommonTokenStream(lexer);
MyParser parser = new MyParser(tokens);
parser.setBuildParseTree(true);
RuleContext tree = parser.record();
System.out.println(tree.toStringTree(parser));
Run Code Online (Sandbox Code Playgroud)
这将整棵树打印在由方括号'()'分隔的一行上。
(record (husband <4601> (name KOHAI Nikolaus) \n (birth * um.1872 (place Ploschitz)) \n\n) (wife (marriage oo) \n (name SCHLOTTHAUER Maria) \n (birth * um.1877
...
Run Code Online (Sandbox Code Playgroud)
我想要这样的东西
record
husband
<id>
name
<name>
...
wife
Run Code Online (Sandbox Code Playgroud)