龙书编译器

时间:2014-12-03 07:54:37

标签: java compiler-construction cmd

我正在研究编译器,我试图运行龙书的编译器,我从页面下载了源代码,并按照书中的所有说明进行操作

javac lexer/* .java
javac symbols/* .java
javac inter/* .java
javac parser/* .java
javac main/* .java

然后运行

java main.Main 

并输入测试文件的名称,cmd会提示以下错误:

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)

因为我从龙书页面(http://dragonbook.stanford.edu/)下载了代码,我不认为那里有任何错误,我甚至用书来检查代码并且是一样的。对不起,如果这就像一个菜鸟问题,但任何想法我做错了什么?

1 个答案:

答案 0 :(得分:1)

在您提供的链接上阅读Java源代码,似乎“龙前”解析器希望从标准输入读取其输入...而不是从您在标准输入上提供其名称的文件中读取。试试这个:

    java main.Main < your_input_file