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