Я использую Grako EBNF/PEG parser.Как реализовать комбинацию правил без повторений в грамматике ebnf?
Я знаю, что синтаксис EBNF позволяет захватывать выражения, которые удовлетворяют одному из предложенных вариантов:
(a | b | c)
Есть ли подобная часть синтаксиса или обходной путь, который позволяет захватывать expessions, которые являются любыми комбинациями a
, b
и c
без повторений, так что допустимые выражения было бы как:
a b c
b a c
a b
b c
b
none
но не нравится:
b b c
a a
?
Спасибо за идею использования семантических действий. И как мне реализовать комбинации 'с' повторений? –
Вы можете использовать '' '{a | b | c} + '' '(вы будете продвигать/принимать ответ?). – Apalala