티스토리 뷰
* 개요
- ANTLR 기본 프로젝트 실행 하는 방법
- NEW -> Antlr Project 하면 생성되는 Hello.g4 를 JUnit 이용해서 실행하는 과정
자동생성 되는 Hello.g4 내용
/**
* Define a grammar called Hello
*/
grammar Hello;
r : 'hello' ID ; // match keyword hello followed by an identifier
ID : [a-z]+ ; // match lower-case identifiers
WS : [ \t\r\n]+ -> skip ; // skip spaces, tabs, newlines
* 환경
Eclipse Oxygen
Antlr IDE 4
JUnit 5
1. JUnit 이 빌드패스 추가되어있어야 함.
2. Hello.g4 우클릭 >> Run As >> Generate ANTLR Recognizer 실행하면
프로젝트/target/genereated-sources/antlr4 폴더에 자바 파일 생성됨.
3. 빌드패스 - 소스에 '2' 의 폴더를 추가시킴
4. 테스트용 클래스 생성하여 다음 메서드 추가
@Test
public void t_1_hello() throws IOException {
String s ="hello abc123";
ANTLRInputStream is = new ANTLRInputStream(s);
HelloLexer l = new HelloLexer(is); // 툴은 v4 사용하도록 생성..
CommonTokenStream cts = new CommonTokenStream(l);
HelloParser p = new HelloParser(cts);
ParseTree pt = p.r();
System.out.println(pt.toStringTree(p));
}
- r() 은 Hello.g4 에서 선언한 초기상태 r 로 선언한 메서드로 생성된 것.
* 주의 : import 시 org.antlr.v4.runtime.*와 org.antlr.runtime.* 두 가지가 있음
v4 의 클래스를 사용한 예제임
(Deprecated가 많지만, 일단 책의 예제 대로...)
* 오류 : HelloParser 를 인식하지 못 하는 경우
- 테스트 클래스와 동일 패키지 안에 있어야 함
(Hello.g4 는 패키지 없이 생성됨)
- 물론 패키지 지정하여 import 할 수도 있음.
http://dogcowking.tistory.com/65
'SW개발 > ANTLR' 카테고리의 다른 글
ANTLRInputsream DEPRECATED (0) | 2018.06.16 |
---|---|
visitor 사용 (0) | 2018.05.30 |
antlr ide Package 지정 (0) | 2017.09.25 |
ANTLR - IDE 설치, 프로젝트시작 / Eclipse (0) | 2017.09.21 |
antlr 예제 실행 / 콘솔환경 (0) | 2017.09.06 |