首先,这是龙书附录中“一个完整的编译器前端”的部分代码
下面是源代码,其中peek是使用控制台输入
void readch() throws IOException {
peek = (char)System.in.read();
}
于是小弟想改成直接从txt文件中读取每个字符,就改成了如下
void readch() throws IOException {
File file = new File("E:\\test.txt");
BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
String line = null;
while((line = bufferedReader.readLine()) != null){
peek = (char)bufferedReader.read();
}
bufferedReader.close();
//peek = (char)System.in.read();
}
然而运行结果却是这样的
E:\front>java main.Main
Exception in thread "main" java.lang.Error: near line 1: syntax error
at parser.Parser.error(Parser.java:15)
at parser.Parser.match(Parser.java:19)
at parser.Parser.block(Parser.java:29)
at parser.Parser.program(Parser.java:23)
at main.Main.main(Main.java:9)
其中我的文本是这样的
实在是不知道怎么改了,寻求各位大佬们的帮助。