我可以在树梢上以编程方式“匹配”规则吗?

时间:2010-04-15 20:30:21

标签: ruby treetop

是否可以通过在treetop中使用ruby代码验证它来跳过规则?

说有这样的事情:

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

end

我希望单词大小为2到5个字母。如果我发现text_value的长度不在2到5之间,我可以退出规则吗?

1 个答案:

答案 0 :(得分: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