Ruby on rails 编写树顶规则以按任意顺序解析输入

Ruby on rails 编写树顶规则以按任意顺序解析输入,ruby-on-rails,ruby,treetop,Ruby On Rails,Ruby,Treetop,我正在寻找一种编写树顶规则的方法,它可以以任何顺序找到一些值。因此: rule top # ? end rule gender ('women'/'men') / '' end rule age_under ('under' age) / '' end rule age [0-9]+ end 我想分析这些输入: "women under 10" "under 10 women" "under 10" "women" 我怎样才能做到这一点?谢谢这里有一个任意顺序解

我正在寻找一种编写树顶规则的方法,它可以以任何顺序找到一些值。因此:

rule top
  # ?
end    

rule gender
  ('women'/'men') / ''
end

rule age_under
  ('under' age) / ''
end

rule age
  [0-9]+
end
我想分析这些输入:

"women under 10"
"under 10 women"
"under 10"
"women"

我怎样才能做到这一点?谢谢

这里有一个任意顺序解析的示例。唯一的问题是您必须手动处理重复项,因为Treetop没有无序非重复元素的规则

rule top
 ((gender / age_under) ' '?)*
end

rule gender
 'women' / 'men'
end

rule age_under
 'under ' age
end

rule age
 [0-9]+
end

考虑到这个库有多好,Treetop的文档记录得多么糟糕,真是难以置信。是的,它非常糟糕。你看到那张照片了吗?这也是一个快速教程。