У меня есть синтаксический анализатор операторов, когда я запускаю программу с этим параметром синтаксического анализатора, отображаются все ошибки.Чтобы иметь возможность анализировать несколько операторов, я определил новый синтаксический анализатор;однако, когда есть ошибки, он не отображает их.
Вот этот синтаксический анализатор:
(* -------- Program -------- *)
let pprog, pprogimpl = createParserForwardedToRef ()
pprogimpl := attempt (many pstatement |>> Program)
pstatement
, определяющий все возможные операторы через другой синтаксический анализатор.
Я хотел бы знать, почему ошибки не отображаются с парсером pprog
.Я сделал ошибку?Забыли что-нибудь?
Редактировать
Я наконец-то смог исправить ошибку, изменив many' instruction, and replacing it with
manyTill`.По-видимому, проблема возникла из-за того, что он не мог справиться с «перечисленными» ошибками, если вы все равно знаете больше, мне было бы любопытно узнать.
let pprog, pprogimpl = createParserForwardedToRef ()
pprogimpl := (attempt (manyTill (pstatement) eof) |>> Program)