Получите содержимое пространства имен tcl от одного интерпретатора и передайте другому интерпретатору - PullRequest
0 голосов
/ 15 февраля 2012

Я использую библиотеку cpptcl.hpp для создания интерпретаторов TCL и оценки некоторых выражений. Теперь я застрял в одной проблеме: в одном интерпретаторе (Tcl :: interpreter interp1;) у меня есть пространство имен MyNamespace в одном интерпретаторе, где определены некоторые переменные и процедуры, и я хочу иметь возможность вычислять некоторые выражения TCL в другом интерпретатор (Tcl :: interpreter interp2;) с использованием предопределенных переменных и процедур в пространстве имен MyNamespace. Как я могу это сделать?

1 Ответ

2 голосов
/ 15 февраля 2012

Вы не можете.По крайней мере, нелегко.

Конечно, если ваш interp содержит только чистый код Tcl, а пакеты не загружены, вы, в принципе, можете сериализовать все (в строку) и оценить его в видедругой интерфейс;в вики есть примеры по этому поводу (поиск «сохранения состояния» и т. д.).

Но мне кажется, что вы пытаетесь создать «эталонное» взаимодействие, а затем использовать его как своего рода шаблон.Если это так, я бы вместо этого просто написал код, который устанавливает interp, а затем вызывал бы его каждый раз, чтобы получить надлежащим образом подготовленный interp.

...