私は、TCLインタプリタを作成していくつかの式を評価するために、cpptcl.hppライブラリを使用します。私は1つの問題を抱えていました:1つのインタプリタ(Tcl :: interpreter interp1;)では、ある種の変数と手続きが定義されているMyNamespaceという名前空間が1つのインタプリタにあり、別のTCL表現を評価するインタプリタ(Tcl :: interpreter interp2;)を使用して、MyNamespace名前空間の定義済みの変数とプロシージャを使用します。私はそれをどのようにすることができますか?あるインタプリタからtcl名前空間の内容を取得し、別のインタプリタに渡します
0
A
答えて
2
できません。少なくとも、簡単にはありません。
もちろん、あなたのinterpが純粋なTclコードのみを含み、パッケージがロードされていない場合は、基本的にすべてを(文字列に)シリアル化し、別のinterpで評価することができます。 wikiにはこれに関する例があります( "状態を保存する"などを検索してください)。
しかし私には、 "参照" interpを作成してそれを一種のテンプレートとして使用しようとしているようです。もしそうなら、私は代わりにinterpを設定し、適切に準備されたinterpを得るたびに呼び出すコードを書くだけです。
+0
Cで拡張機能によって実装されているトレースやコマンドは、複製が非常に難しい場合があります。タイマーやチャンネルのイベントに付随するコールバックは、忘れやすいものです。要するに、名前空間をコピーすることはあまり難しくありませんが、それは他のinterpで_work_を意味するわけではありません... –
関連する問題
- 1. カスタムTCLインタプリタで "free():invalid pointer"を取得する
- 2. TCL内の名前空間にprocをコピーする
- 3. 別の名前空間内からのC++グローバル名前空間アクセス
- 4. ある名前空間からGitLab CEエクスポートを別の名前空間のgitlab.comにインポートできますか?
- 5. Cで開いたファイルディスクリプタをtclインタプリタに渡して使用する
- 6. ある名前空間から別の名前空間にカーネルスレッドを移動できますか?
- 7. TCLとTCLシリアルポート(COM1)コマンド用のフリーコンパイラまたはインタプリタ
- 8. TCLの名前空間の変数
- 9. インタプリタをブートストラップしますか?
- 10. Rubyインタプリタ名
- 11. ある名前空間を別の名前空間に置き換える
- 12. 名前空間内のすべての名前空間を再帰的に取得する方法
- 13. PythonインタプリタはPythonで実装できますが、どのインタプリタがインタプリタ自体を解釈しますか?
- 14. 名前空間名に変数tclを使用する
- 15. 取得名前空間
- 16. Typescript - 名前空間を別の名前空間にインポート
- 17. python3インタプリタの中からスクリプトを実行し、インタプリタの結果を表示
- 18. 名前空間の内側にあるビュー内の名前空間の外にあるレール部分をどのようにレンダリングしますか?
- 19. 他の名前空間内の名前空間からの関数の使用
- 20. インタプリタの実装言語にインタプリタ言語が適していますか?
- 21. XPathを使用してデフォルトの名前空間(名前空間接頭辞なし)を取得する
- 22. Rhino JSインタプリタとSpiderMonkeyインタプリタ - 別の戻り値
- 23. Pythonインタプリタの起動時間
- 24. VS2010:ソリューション内の別のプロジェクトの名前空間を使用しますか?
- 25. 同じプロジェクト内の複数のインタプリタをpycharmしますか?
- 26. TCLインタプリタで使用されるSIGUSR2とは何ですか?
- 27. 別の名前空間に "use"ステートメントを忘れましたか?
- 28. XML - 名前空間のタグ名を取得するには?
- 29. ProjectItemの名前空間の取得
- 30. 別の名前空間とクラスからの呼び出しメソッド
これは、aolserverがtclインタプリタを初期化するために何をするかとよく似ています。それは面倒ですが、それはかなりうまくいきます。 –
interp1からinterp2へ状態をコピーしてコマンドを実行するか、interp2からコマンドを呼び出してinterp2で評価しますか?それに加えて、彼らは完全に通訳者を分離しているのですか、あるいはtclで[interp create]を使って作成したものでしょうか?私は最初のことを推測していますが、質問する価値があります。 – RHSeeger