lexer(어휘분석기)는 token을 구분해내고
paser(구문분석기)는 lexer가 구분해낸 token의 문법구조를 분석한다.
아래예제에서 startRule()은 .g(rule)파일에서 가장 처음 규칙을 지칭한다.
[링크 : http://www.ibm.com/developerworks/kr/library/tutorial/au-parsingwithantlr/index.html]
[링크 : http://www.ibm.com/developerworks/kr/library/tutorial/au-parsingwithantlr/section5.html]
paser(구문분석기)는 lexer가 구분해낸 token의 문법구조를 분석한다.
아래예제에서 startRule()은 .g(rule)파일에서 가장 처음 규칙을 지칭한다.
int main(int argc,char** argv) { try { std::ifstream inputstream("test.c", std::ifstream::in); MLexer* mainLexer = new MLexer(inputstream); mainLexer->setFilename("test.c"); parser = new PParser(*mainLexer); parser->setFilename("test.c"); gCurrentInputStream = &inputstream; parser->startRule(); } catch(exception& e) { cerr << "exception: " << e.what() << endl; } return 0; } int main(int argc,char** argv) { try { … // 어휘 분석기/구문 분석기를 설정하기 위한 코드 parser->startRule(); } catch(ANTLR_USE_NAMESPACE(antlr)RecognitionException& e) { // 필요한 작업 수행 } catch(ANTLR_USE_NAMESPACE(antlr)TokenStreamException& e) { // 필요한 작업 수행 } return 0; } |
[링크 : http://www.ibm.com/developerworks/kr/library/tutorial/au-parsingwithantlr/index.html]
[링크 : http://www.ibm.com/developerworks/kr/library/tutorial/au-parsingwithantlr/section5.html]
'프로그램 사용 > antlr' 카테고리의 다른 글
java를 이용한 antlr AST 탐색하기(AST navigation) (0) | 2011.11.02 |
---|---|
ANTLR IDE 2.1.2 for ANTLR 3.0 above (0) | 2011.11.02 |
antlrworks (0) | 2011.11.02 |
antlr + eclipse & java (0) | 2011.10.30 |
antlr / pccts package (0) | 2011.10.24 |