2012-08-30 6 views
6

나는 공간 들여 쓰기와 함께 매우 간단한 문법을 ​​만들고 싶다. 각 행은 하나 개 이상의 단어지만 파이썬의 요철로 구성 (4 개 구역 또는 탭 하나 개 들여 임) 및 압입 대한 확대는, 예를 들면도 없다 :ANTLR : 스페이스 들여 쓰기?

각 라인을 읽어 들여 쓰기를 계산하기보다는
if something cool occurs 
    do this 
else 
    otherwise do this 
    loop around something 
     each time doing this 
     and do that 
say good byte 

및 트리를 수동으로 빌드하면 ANTLR 문법에서 모든 것을 수행 할 수 있습니까? 내 타겟 언어는 Java입니다.

+6

참조 : http://stackoverflow.com/questions/8642154/antlr-what-is-simpliest-way-to-realize-python-like-indent-depending-grammar –

답변

1

가능합니다. 당신이하는 일은 규칙을 정의하고 건너 뛰도록하는 것뿐입니다.

Ignore : (' ' | '\t' | '\n' | '\r')+ {skip();}; 

을 아니면 인식 \ n 또는 \ r을해야하는 경우

Ignore : (' ' | '\t')+ {skip();}; 

는 무시됩니다 gramar 모든 공백과 탭이 추가 : 여기

는 당신은 간다.