2010-04-15 2 views
0

Возможно ли пропустить правило, проверив его, используя код ruby ​​в treetop?Могу ли я «отменить» правило программно на верхушке?

Say есть что-то вроде этого:

rule short_words 
    [a-z]+ { 
    def method1 
     text_value 
    end 
    ... 
    } 

end 

И я хочу, чтобы слова размера, чтобы быть от 2 до 5 букв. Могу ли я выйти из правила, если найду, что длина text_value не находится между 2 и 5?

ответ

1

Синтаксис Treetop поддерживает границы {min, max} на совпадениях. (Выдержка из http://treetop.rubyforge.org/syntactic_recognition.html)

Количество повторений

Обобщенный Количество повторений (минимум, максимум) также доступен.

* 'foo' 2.. matches 'foo' two or more times 
* 'foo' 3..5 matches 'foo' from three to five times 
* 'foo' ..4 matches 'foo' from zero to four times 
+0

спасибо, очень круто! – dimus

Смежные вопросы