roc*_*hem 9 ocaml parser-generator ocamlyacc
我在expr.ml文件中有一个类型expr.在parser.mly(OCamlyacc文件)中,我定义了expr规则并给出了类型:
%start expr
%type <expr> expr
Run Code Online (Sandbox Code Playgroud)
但是,我得到:
File "parser.mli", line 34, characters 48-52:
Error: Unbound type constructor expr
Run Code Online (Sandbox Code Playgroud)
我尝试添加
%{
open Expr
%}
Run Code Online (Sandbox Code Playgroud)
在.mly文件的开头,但它仍然无法正常工作.如何在外部文件中定义此expr类型并将其用作规则的返回值?谢谢.
nim*_*odm 10
您需要expr
使用模块名称限定类型.即,如果在expression.ml
(使用type expr = ...
)中定义,则应使用
%type <Expresssion.expr> main
Run Code Online (Sandbox Code Playgroud)
E
使用模块名称时请注意资金.