2011-05-25 52 views
3

指定空格是否被允許時,我需要多大的空格?例如將這些規則:Treetop語法中的空格

rule lambda 
    'lambda' ('(' params ')')? block 
end 

rule params 
    # ... 
end 

rule block 
    '{' # ... '}' 
end 

足以匹配

lambda { 
} 

基本上,我需要指定處處可選空白,可能會出現?

回答

2

是的,你這樣做。在這些規則中,您需要跳過空格,但是,例如,當您解析可能包含空格的字符串時,您希望保留它們;這就是爲什麼你必須指定。

但是,在將treetop應用到字符串之前,您可能會嘗試運行「快速且骯髒」的基於正則表達式的算法,該算法會從可選位置丟棄空格。儘管如此,在語法中指定空格可能會困難得多。

+0

謝謝。我想我可能需要這樣做,但我想在通過麻煩之前確認。 – ravinggenius 2011-05-25 04:39:22