menhir `--terpret` 用于多个文件

问题描述 投票:0回答:1

我正在尝试使用 Menhir 中的

--interpret
标志来调试我的解析器,并且我已将我的
.mly
文件分成标记和语法,如下所示:

.
├── dune
├── lexer.mll
├── parser.mly
├── syntax.ml
└── tokens.mly

使用此命令时:

menhir ./tokens.mly --base ./parser.mly

我得到了这个:

Error: no start symbol has been declared.

但是,开始符号在我的

parser.mly
中定义为
%start <item> item

如果我随后为

--only-tokens
添加
tokens.mly
标志(例如
menhir --only-tokens ./tokens.mly --base ./parser.mly
),错误将不会显示,但 Menhir 将立即退出。

那么我应该如何正确使用 Menhir 解释多个文件?

ocaml menhir
1个回答
0
投票

看到这个帖子后,我解决了这个问题:

menhir tokens.mly --only-tokens
menhir parser.mly tokens.mly --external-tokens Tokens --base parser --interpret
© www.soinside.com 2019 - 2025. All rights reserved.