최근에 The Definitive ANTLR Reference을 구입했으며 ANTLR을 사용하게되어 기쁩니다. 제 장의
,이 문법 도시되어확실한 ANTLR 참조 - 첫 번째 프로그램이 작동하지 않습니다.
grammar T;
options {
language = Java;
}
r : 'call' ID ';' {System.out.println("invoke " + $ID.text);} ;
ID : 'a'..'z'+ ;
WS : (' '|'\n'|'\r')+ {$channel=HIDDEN;} ;
난, (· G 확장자) 파일로 다운이 문법으로 복사 렉서 파서 생성 등과 같은 기본 클래스 생성 :
import org.antlr.runtime.*;
public final class Test {
public static void main(String[] args) throws Exception {
ANTLRInputStream input = new ANTLRInputStream(System.in);
TLexer lexer = new TLexer(input);
CommonTokenStream tokens = new CommonTokenStream(lexer);
TParser parser = new TParser(tokens);
parser.r();
}
}
는 실제 오류가 없습니다,하지만 난 메인 클래스를 실행하고 입력 할 때 :
call foo;
아무런 반응이 없습니다. "invoke foo"가 화면에 출력되어야하지만 아무 일도 일어나지 않습니다. 나는 한 권의 운동을 끝내지 않고 그 책을 계속하고 싶지 않습니다. 그것이 중요하다면 Eclipse에서 ANTLR 3.4를 사용하고있다. 죄송합니다. 쉬운 질문 인 것 같지만 ANTLR을 처음 사용합니다.
감사합니다,
오메르
ANTLR에 오신 것을 환영합니다. 귀하의 질문은 초급자에게 매우 유용합니다. –
책에 적힌대로 파일 끝 문자를 입력 했습니까? –
아니, 나는 그런 생각을하지 못했다. Windows 시스템에서는 \ n, \ r 또는 \ r \ n입니까? 아니면 엔터 버튼을 누르기 만하면됩니까? – leaf