Antlr4 CommonTokenStream 构造函数
Antlr4 CommonTokenStream Constructor
我从 ANTLR4 文档站点获取了源代码。
JavaLexer lexer = new JavaLexer(input);
CommonTokenStream tokens = new CommonTokenStream(lexer);
JavaParser parser = new JavaParser(tokens);
JavaParser.CompilationUnitContext tree = parser.compilationUnit();// parse a compilationUnit
但是
新的 CommonTokenStream(词法分析器)
是有问题的。因为 new CommonTokenStream(lexer) 没有构造函数。有构造函数 new CommonTokenStream() 和 new CommonTokenStream(TokenStream) 但互联网上的许多示例都使用该构造函数,就像代码中给出的那样,这是 Antlr4 文档站点的示例。
也没有 JavaParser(CommonTokenStream) 的构造函数。
谢谢
There are constructors new CommonTokenStream() and new CommonTokenStream(TokenStream)
不,CommonTokenStream
中有2个构造函数:
CommonTokenStream(TokenSource tokenSource)
CommonTokenStream(TokenSource tokenSource, int channel)
不是你说的那两个。参见:http://www.antlr.org/api/Java/org/antlr/v4/runtime/CommonTokenStream.html
Because there is no constructor for new CommonTokenStream(lexer).
每个生成的词法分析器都扩展了 ANTLR4 的 Lexer
class, which implements TokenSource
,所以 new CommonTokenStream(lexer)
就可以了。
我从 ANTLR4 文档站点获取了源代码。
JavaLexer lexer = new JavaLexer(input);
CommonTokenStream tokens = new CommonTokenStream(lexer);
JavaParser parser = new JavaParser(tokens);
JavaParser.CompilationUnitContext tree = parser.compilationUnit();// parse a compilationUnit
但是 新的 CommonTokenStream(词法分析器) 是有问题的。因为 new CommonTokenStream(lexer) 没有构造函数。有构造函数 new CommonTokenStream() 和 new CommonTokenStream(TokenStream) 但互联网上的许多示例都使用该构造函数,就像代码中给出的那样,这是 Antlr4 文档站点的示例。 也没有 JavaParser(CommonTokenStream) 的构造函数。
谢谢
There are constructors new CommonTokenStream() and new CommonTokenStream(TokenStream)
不,CommonTokenStream
中有2个构造函数:
CommonTokenStream(TokenSource tokenSource)
CommonTokenStream(TokenSource tokenSource, int channel)
不是你说的那两个。参见:http://www.antlr.org/api/Java/org/antlr/v4/runtime/CommonTokenStream.html
Because there is no constructor for new CommonTokenStream(lexer).
每个生成的词法分析器都扩展了 ANTLR4 的 Lexer
class, which implements TokenSource
,所以 new CommonTokenStream(lexer)
就可以了。