Nearley.js - есть ли способ написать правило для определения предложения, число которого разделено "," или "-"

Я использую 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]]}
                   } %}

Результат, который я хотел бы получить, когда пользователь вводит выбор 111-222, возвращает объект, который говорит, что это выбор диапазона и 2 значения (минимум максимум). И когда он выбирает a1,a2,a3,a4,a5, возвращаемое значение - это объект, говорящий, что это выбор накопления и все введенные значения.

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

0 ответов

Другие вопросы по тегам