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 |
