Могу ли я «сопоставить» правило программным способом в дереве? - PullRequest
0 голосов
/ 16 апреля 2010

Можно ли пропустить правило, проверив его с помощью кода ruby ​​в treetop?

Скажем, что-то вроде этого:

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

end

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

1 Ответ

1 голос
/ 03 февраля 2011

Синтаксис 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
...