【发布时间】:2015-04-10 07:38:22
【问题描述】:
我是 sml 和 ml-lex 的新手。要将字符串转换为实数,我们使用函数 real.fromstring。这是我的转换代码,其中 yytext 是字符数组或字符串。
getOpt ((Real.fromString(yytext)), 0.0);
我在 ml-lex 中使用上述语法来标记实数。
{real} => (REAL(getOpt ((Real.fromString(yytext)), 0.0)));
但我得到了错误,
math.lex.sml:5.234-5.240 Error: type constructor Assembly.option given 0 arguments, wants 1
请告诉我 fromstring 函数有什么问题。
【问题讨论】:
-
我认为错误与您显示的代码无关。在您的文件中搜索参数化类型名称
option的用法,其中一个似乎缺少其参数。 -
@AndreasRossberg 实际上,没有其他选项类型的函数或参数。当我从文件中删除上述代码时,程序运行良好。所以,它似乎指向了这个特定的部分。
-
那么它可能是 MLlex 生成的代码的一部分。你看过那个吗?错误消息专门讨论了类型构造函数的(错误)应用,而您的 sn-p 中没有。
-
@AndreasRossberg 被误用的类型构造函数是用于
Real。 -
@benrudgers,我不明白你的意思。
Real不是类型构造函数,错误消息中也没有提及。问题必须在(生成的?)代码中的其他地方。