Я пытаюсь создать простой парсер с PEG.js. Я хочу, чтобы пользователь мог вводить ряд ключевых слов с опциональным «И» между ними, но я не могу получить дополнительный и рабочий. Он всегда этого ожидает, хотя я отметил его? (ноль или один).Как сделать необязательное слово в PEG.js
Вставить эту грамматику в http://pegjs.majda.cz/online:
parse = pair+
pair = p:word and? { return p }
word = w:char+ { return w.join(""); }
char = c:[^ \r\n\t] { return c; }
and = ws* 'and'i ws*
ws = [ \t]
Моя цель состоит в том, чтобы иметь один из этих входов разбора в массив [ "Foo", "бар"]:
foo bar
foo and bar