Nearley.js - есть ли способ написать правило для определения предложения, у которого есть номер, разделенный "," или "-" - PullRequest
0 голосов
/ 09 апреля 2019

Я использую 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, возвращаемое значение является объектом, говорящим, что это выбор накопления и все введенные значения.

спасибо за помощь

...