Здравствуйте, kurchatov, Вы писали:
K>Пример тривиальный. И это мы с вами знаем, как оно работает. А придет новичок в вашу команду, и сколько времени ему потребуется врубиться в грамматику посложнее?
Вот посложнееАвтор: Evgeny.Panasyuk
Дата: 03.10.14
:
function = string("def") >> +space >> expression >> '(' >> expression >> ')' >> block;
while_ = string("while") >> +space >> expression >> block;
if_ = string("if") >> +space >> expression >> block >> string("else") >> block;
block = ':' >> ((eol >> '{' >> statements >> '}') | (+space >> statement));
statement = (expression >> eol) | while_ | if_ | function;
expression = *alnum;
statements = *statement;
Тут даже не нужно знать Boost.Spirit, чтобы понять что происходит