2012-08-30 14 views
6

Alan girintisi ile çok basit bir dilbilgisi oluşturmak istiyorum. Her satır 1 ya da daha çok kelime ancak piton gibi girinti oluşur (4 boşluk veya bir sekme bir girinti olduğu) ve girinti için yakın bir örneğin vardır:ANTLR: Boşluk girintisi?

, her satır okumak girinti hesaplamak yerine
if something cool occurs 
    do this 
else 
    otherwise do this 
    loop around something 
     each time doing this 
     and do that 
say good byte 

ve Bir ağaç elle inşa etmek ANTLR dilbilgisi içinde tüm bunları yapmak mümkün mü? Hedef dilim Java.

+6

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

cevap

1

Bu mümkündür. Tek yapmanız gereken bir kural tanımlamak ve atlanmasına izin vermek.

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

Yoksa tanımak \ n ya \ r gerekiyorsa

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

göz ardı edilecektir sizin GRAMAR ve tüm boşluklar ve sekmeler için bu ekleyin: Burada

gitmek.