1

我目前正在使用 PolyML 5.5.2,并尝试创建一个运行时编译器函数,该函数接受一个字符串并运行它。

所需的功能应该是

有趣的 eval 字符串 -> 单元

输入时

>eval "val a=1;";

val a = 1: 整数

我做了一些研究,在旧版本中有一个像 PolyML.compilerEx 这样的函数,但在 PolyML 5.5.2 中似乎没有这样的东西。

非常感谢大家。

4

2 回答 2

1

你会想要一些类似的东西

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
于 2016-02-18T22:50:16.950 回答
1

您可以使用PolyML.compiler。该文档更接近即将发布的 5.6 版本,但它应该适用于 5.5.2。

于 2016-01-07T12:56:09.953 回答