PolyML运行时评估

时间:2016-01-06 18:41:24

标签: compiler-construction runtime eval polyml

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

所需的功能应该是

有趣的评估字符串 - >单元

输入时

  

> eval" val a = 1;&#34 ;;

     

val a = 1:int

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

非常感谢所有人。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

你会想要一些

的内容
PolyML.compiler(infn,
                [PolyML.Compiler.CPErrorMessageProc record_error,
                 PolyML.Compiler.CPOutStream obufPush]) ()

其中infn是赋予编译器字符的函数,obufPush是消耗编译器输出的函数。 record_error在代码I中定义为采样自:

fun record_error {message,...} = PolyML.prettyPrint(obufPush,70) message