2014-12-03 3 views
-1
, 내가 페이지에서 소스 코드를 다운로드 책

드래곤 책 컴파일러는

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) 

및 I 이후를 드래곤 북 페이지 (http://dragonbook.stanford.edu/)에서 코드를 다운로드했습니다. 거기에 오류가 있다고 생각하지 않습니다. 심지어 코드가있는 책을 확인하고 동일합니다. 미안하지만 이것은 멍청한 질문이지만 어떤 생각이라도 하는게 뭐지?

+0

javac는 javac lexer.java와 같은 완전한 Java 클래스 이름을 사용하고 java는 완전한 클래스 이름을 사용합니다. 필요한 모든 수업을 컴파일했는지 확인하십시오. 또한 'main'코드를 읽으십시오. 그것은 어떤 cmd를 라인 args 필요합니까? – Nazgul

+4

디버깅 도움말 ("**이 코드가 작동하지 않는 이유는 무엇입니까? **")에는 원하는 동작, 특정 문제 또는 오류 및 문제 자체 **를 재현하는 데 필요한 가장 짧은 코드가 포함되어야합니다. ** 명확한 문제 성명 **이없는 질문은 다른 독자에게 유용하지 않습니다. [최소한의 완전하고 검증 가능한 예제를 만드는 방법] (http://stackoverflow.com/help/mcve)를 참조하십시오. – DavidPostill

+0

@Nazgul, no,'javac'는'* .java'를 먹일 때 여러 자바 파일을 행복하게 컴파일합니다. –

답변

1

제공된 링크에서 Java 소스 코드를 읽으면 "드래곤 프론트"파서는 표준 입력에서 제공 한 이름이 아닌 표준 입력에서 해당 입력을 읽는 것으로 나타납니다. 이것을 시도해보십시오 :