gpt4 book ai didi

OCaml 解析器代码

转载 作者:行者123 更新时间:2023-12-04 05:16:37 24 4
gpt4 key购买 nike

我的代码:

Term :
...
| VAR { try Hashtbl.find var_table $1
with Not_found ->
printf "no such variable '%s'\n" $1; 0.0 } /*(Line:75)*/
...

当我运行它时,在 ocamlc -c parser.ml我看到:
Error: This expression has type float but an expression was expected of type
Syntax.term

大家可以帮我证明这个问题吗??
我知道第 75 行的类型与 Syntax.ml 和 Syntax.mll 中定义的类型 Syntax.term 不匹配,但我想为 Syntax.term 指定 0.0 的类型以证明它。我可以吗??

--------------------编辑-------------------:

术语类型:
type term =
TmTrue
| TmFalse
| TmIf of term * term * term
| TmAnd of term * term
| TmOr of term * term
| TmXor of term * term
| TmSum of term * term
| TmSub of term * term
| TmMult of term * term
| TmPow of term * term
| TmZero
| TmSucc of term
| TmPred of term
| TmIsZero of term
| TmNot of term

一切正常,我想在我的代码中添加赋值,我使用上面的代码将 VAR 添加到 Term。我为它创建了哈希表和其他东西,但这部分让我感到困惑......

---------------/编辑------------------------

tnx ;)

最佳答案

您没有可以表示值 0.0 的术语。也许你应该使用 TmZero ?

关于OCaml 解析器代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14187054/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com