【问题标题】:Writing Treetop rule to parse input in any order编写 Treetop 规则以任何顺序解析输入
【发布时间】:2014-07-21 09:52:55
【问题描述】:

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

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

【问题讨论】:

    标签: ruby-on-rails ruby treetop


    【解决方案1】:

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

    rule top
     ((gender / age_under) ' '?)*
    end
    
    rule gender
     'women' / 'men'
    end
    
    rule age_under
     'under ' age
    end
    
    rule age
     [0-9]+
    end
    

    【讨论】:

    • 考虑到这个库有多好,Treetop 的记录如此糟糕,真是令人难以置信。
    • 是的,很差。你看到homepage了吗? Here 也是一个快速教程。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多