我正在使用 Ocaml 编写一个小型编译器。我想对 Ast 进行类型检查,然后放入 Sast。
但我总是得到如下错误:
File "typecheck_debug.ml", line 93, characters 28-35:
Error: This expression has type Sast.var_decl
but an expression was expected of type Ast.var_decl
代码是:
let rec trans_lval env = function
Ast.Id(n) -> let vdecl = (find_variable env.scope n) in
Sast.Id(vdecl), vdecl.vvtype
ocamllex scanner.mll
ocamlyacc parser.mly
ocamlc -c ast.mli
ocamlc -c parser.mli
ocamlc -c scanner.ml
ocamlc -c parser.ml
ocamlc -c sast.mli
ocamlc -c typecheck_debug.ml
我不懂为什么。我的项目流程有问题吗?