2013
05
27
05
27
Boo: Boo.Lang.Interpreter APIを使う
http://elicon.blog57.fc2.com/blog-entry-276.html
BooのインタープリタをGUIにつっこんだものを作った。インタープリタがCUIベースでコピペが不便だったで。
Booに添付されているインタープリタのAPIを使ったのだが、Boo自体のドキュメントがまだ整っておらず、ドキュメントから少しはみ出したものを使ったのでメモ。
まずインタープリタAPIの基本的なことは下記を参考に。
参考:http://docs.codehaus.org/display/BOO/Scripting+with+the+Boo.Lang.Interpreter+API
インタープリタをGUIにつっこむうえで必要だったのは、コンソール出力のキャプチャだ。出力をキャプチャして、TextBoxのGUIパーツに出力をそのまま移して表示したい。そんなことをやる方法を調べていたら、Boo.Lang.Interpreterの中にConsoleCaptureというクラスがあるのを見つけた。で、これを試してみたところStreamオブジェクトなどを作ることなく、容易にコンソール出力がキャプチャできた。
BooのインタープリタをGUIにつっこんだものを作った。インタープリタがCUIベースでコピペが不便だったで。
Booに添付されているインタープリタのAPIを使ったのだが、Boo自体のドキュメントがまだ整っておらず、ドキュメントから少しはみ出したものを使ったのでメモ。
まずインタープリタAPIの基本的なことは下記を参考に。
参考:http://docs.codehaus.org/display/BOO/Scripting+with+the+Boo.Lang.Interpreter+API
インタープリタをGUIにつっこむうえで必要だったのは、コンソール出力のキャプチャだ。出力をキャプチャして、TextBoxのGUIパーツに出力をそのまま移して表示したい。そんなことをやる方法を調べていたら、Boo.Lang.Interpreterの中にConsoleCaptureというクラスがあるのを見つけた。で、これを試してみたところStreamオブジェクトなどを作ることなく、容易にコンソール出力がキャプチャできた。
import Boo.Lang.Interpreter
interpreter = InteractiveInterpreterConsole()
capture = ConsoleCapture()
interpreter.DisplayLogo() // output current boo information to console
textBox.Text += cap.ToString()
スポンサーサイト