Как определить совпадения {min,max} в колышке дерева

С помощью регулярных выражений Ruby я мог написать /[0-9]{3,}/ я не могу понять, как написать это в верхушке дерева, кроме:

rule at_least_three_digit_number
  [0-9] [0-9] [0-9]+
end

Существует ли правило 'match [по крайней мере | большинство] n' для вершины дерева?

2 ответа

Похоже, что в PEG нет некоторых вспомогательных операторов RE, но взамен вы получите гораздо более мощный механизм сравнения выражений.

http://treetop.rubyforge.org/syntactic_recognition.html

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

'foo' 2.. соответствует 'foo' два или более раз

'foo' 3..5 соответствует 'foo' от трех до пяти раз

'foo' ..4 соответствует 'foo' от нуля до четырех раз

Другие вопросы по тегам