从一个解释器获取tcl命名空间的内容并传递给另一个解释器

时间:2012-02-15 16:28:20

标签: c++ namespaces tcl interpreter

我使用cpptcl.hpp库来创建TCL解释器并评估一些表达式。现在我遇到了一个问题:在一个解释器中(Tcl :: interpreter interp1;)我在一个解释器中有一个名为MyNamespace的命名空间,其中定义了一些变量和过程,我希望能够在另一个解析器中评估一些TCL表达式解释器(Tcl :: interpreter interp2;)通过使用MyNamespace命名空间中的预定义变量和过程。我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

你做不到。至少,不容易。

当然,如果你的interp只包含纯Tcl代码,并且没有加载包,你原则上可以序列化所有东西(到一个字符串)并在另一个interp中评估它; wiki有这方面的例子(搜索“保存状态”等)。

但对我而言,您似乎正在尝试创建一个“引用”interp,然后将其用作一种模板。如果是这样,我只需编写一个设置interp的代码,然后每次调用它以获得适当准备的interp。