Ошибки не отображаются при разборе нескольких операторов с FParsec - PullRequest
0 голосов
/ 24 октября 2018

У меня есть синтаксический анализатор операторов, когда я запускаю программу с этим параметром синтаксического анализатора, отображаются все ошибки.Чтобы иметь возможность анализировать несколько операторов, я определил новый синтаксический анализатор;однако, когда есть ошибки, он не отображает их.

Вот этот синтаксический анализатор:

(* -------- 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)
...