【问题标题】:PolyML runtime evalPolyML 运行时评估
【发布时间】:2016-01-06 18:41:23
【问题描述】:

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

想要的功能应该是这样的

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

输入时

>eval "val a=1;";

val a = 1: int

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

非常感谢大家。

【问题讨论】:

标签: compiler-construction runtime eval polyml


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    你会想要一些类似的东西

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

    其中infn 是提供编译器字符的函数,obufPush 是消耗编译器输出的函数。 record_error 在我从中采样的代码中定义为:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-24
      • 2011-04-12
      相关资源
      最近更新 更多