Неарли по крайней мере один

У меня есть грамматика, в которой я хочу, чтобы между двумя терминами были пробелы (включая новые строки). Должны быть некоторые пробелы, то есть он не должен работать, если два термина соприкасаются, однако пробелов может быть сколько угодно. Проблема, с которой я сталкиваюсь, заключается в том, что пробелы и новые строки - это разные токены. Не могу понять, как вообще сделать "хоть один" в неорлей.

2 ответа

Мне удалось решить эту проблему с помощью модификаторов EBNF:

ws -> %WS | %NL

# At least one whitespace
someWS -> ws:+

# none or some whitespace
manyWS -> ws:*

Если вы используете moo.js, чем вы можете заранее определить пробелы с помощью регулярных выражений.

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