Nearley.js-有没有一种方法可以编写规则来识别编号由“,”或“-”分隔的句子

时间:2019-04-09 18:04:08

标签: javascript nearley

我正在使用Nearley.js分析用户输入的句子。我有一个规则,该规则的目标是句子中的数字以“,”分隔,另一条规则中数字以“-”分隔。

但是以“,”为目标的规则取代了以“-”为目标的规则。

我的语法代码

MAIN ->  RANGESELECTION
        | ACCUMULATIONSELECTION

BUCKET -> [a-zA-Z0-9-]:+ {%     function(data) {
                                     return {
                                         value: data.join('').replace(/,/g,"")
                                     };
                                 } %}

ACCUMULATIONSELECTION -> "select " BUCKET:+ "," {%
                                  function(data){
                                      return  {type: 'rangeSelection', body: data}
                                     } %}


RANGESELECTION -> "select " (BUCKET "-" BUCKET) {%
                function(data){
                    return  {type: 'rangeSelection', body: [data[0],data[2]]}
                   } %}

我想要的结果是,当用户输入select 111-222时,返回的对象是一个范围选择和2个值(最小值最大值)。选择a1,a2,a3,a4,a5时,返回的对象是一个累加选择和所有输入的值。

感谢您的帮助

0 个答案:

没有答案