我拼凑了一些代码来测试词法分析器/解析器语法,但我仍然坚持如何创建适当的文件输入/流对象来解析文件。我的代码如下,我收到的错误是给BasicLexer类构造函数一个ANTLRInputStream而不是一个CharStream,以及一个类似的消息,给BasicParser一个CommonTokenStream(它需要TokenStream)。关于我哪里出错的任何想法?
public static void main(String[] args) throws Exception {
String filename = args[0];
InputStream is;
try {
is = new FileInputStream(filename);
//is.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ANTLRInputStream in = new ANTLRInputStream(is);
BasicLexer lexer = new BasicLexer(in);
CommonTokenStream tokens = new CommonTokenStream(lexer);
BasicParser parser = new BasicParser(tokens);
parser.eval();
}