Разделение списка по eol при разборе ocaml - PullRequest
0 голосов
/ 21 мая 2018

Я определил некоторые операторы, за которыми следует список выражений в моем компиляторе.Я использую Менгир для разбора.Обычно, когда lexing EOL делает это: | eol { incr_linenum lexbuf; read lexbuf } Однако я хотел бы иметь возможность проанализировать это:

stmt;
stmt;
stmt;
expr
expr
expr

stmt определяется следующим образом:

stmt :
| ...
| stmt SEMICOLON

имоя программа такова:

prog :
| stmt; expr list

Я бы хотел, чтобы expr интерпретировался как список expr.Есть ли способ сделать это?Или мой список должен быть разделен другими символами?

1 Ответ

0 голосов
/ 21 мая 2018

Как указано в руководстве (раздел 5.4), вы можете легко указать список без разделителей:

prog:
| stmt; list(expr)
...