1

我正在寻找一种编写 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"

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

4

1 回答 1

1

这是以任何顺序解析的示例。唯一的麻烦是您必须手动处理重复项,因为 Treetop 没有针对无序非重复元素的规则。

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

rule gender
 'women' / 'men'
end

rule age_under
 'under ' age
end

rule age
 [0-9]+
end
于 2014-07-22T16:17:24.847 回答