我目前正在使用 PolyML 5.5.2,并尝试创建一个运行时编译器函数,该函数接受一个字符串并运行它。
所需的功能应该是
有趣的 eval 字符串 -> 单元
输入时
>eval "val a=1;";
val a = 1: 整数
我做了一些研究,在旧版本中有一个像 PolyML.compilerEx 这样的函数,但在 PolyML 5.5.2 中似乎没有这样的东西。
非常感谢大家。
我目前正在使用 PolyML 5.5.2,并尝试创建一个运行时编译器函数,该函数接受一个字符串并运行它。
所需的功能应该是
有趣的 eval 字符串 -> 单元
输入时
>eval "val a=1;";
val a = 1: 整数
我做了一些研究,在旧版本中有一个像 PolyML.compilerEx 这样的函数,但在 PolyML 5.5.2 中似乎没有这样的东西。
非常感谢大家。
你会想要一些类似的东西
PolyML.compiler(infn,
[PolyML.Compiler.CPErrorMessageProc record_error,
PolyML.Compiler.CPOutStream obufPush]) ()
whereinfn
是提供编译器字符的函数,并且obufPush
是消耗编译器输出的函数。record_error
在我从中采样的代码中定义为:
fun record_error {message,...} = PolyML.prettyPrint(obufPush,70) message
您可以使用PolyML.compiler。该文档更接近即将发布的 5.6 版本,但它应该适用于 5.5.2。