『ひだまりスケッチ×☆☆☆』 BS-TBS で放送開始
TBSアニメーション・ひだまりスケッチ×☆☆☆ 公式ホームページ.
デジスタ | デジスタプチ劇場 との関係で HDD レコの方で録らざるを得ないので,使い勝手が悪い.
Squeak で Grapher る
最初は ProgramScanner から始まった.
JunParseTree (FooProgramScanner)
イディオム本 に載っている ProgramScanner は JunProgramScanner が元ネタで,その後[JunProgramScanner -> JunParseTree という推移は単なる思い込みで.なんら確証はない.]構文解析木構造の可視化ができるように改良されて, ブラックブック で FooProgramScanner へと発展したが,その元ネタは JunParseTree である.
これが VWNC 7.7 に入れた JunParseTree あるいは FooProgramScanner で '3 + 4'
をパースした結果.
これを Squeak で動かしてみた.またもや寄り道である (笑).今回,ノードの反復機も ParseNode>>#nodePrintOn:indent:
を元に新たに作り直してみた.このメソッドはルート・ノードのインスタンス変数を順になめて #asReturnNode
が判るクラスを引っ掛けてぐるぐる回すという強引な (汚い) コードだ (笑).リファクタリング・エンジンを入れてるなら, AST パッケージに入ってる RBProgramNodeVisitor を参考にする方がよろし.
ノードとアークは,とりあえず,モルフで実装している.
余談だが, >>
は整数を本来右シフトして返すメソッド. 2004 年以降 Squeak ではこれに加えて Behavior でも定義してあって,そっちではレシーバ・クラスのコンパイル・メソッドを得ることができる.
もう一つ余談.簡単な VisualDiff.(DiffMorph from: src to: dst) openInWindow. asText
が判るオブジェクトで使用可.
そうそう, PasteUpMoprh を addMorph: した ScrollPane を SystemWindow に貼っつけると,どうしても隙間ができる. Polymorph に入っている GeneralScrollPane だと隙間なくぴったりハマる.
森: Collection, Magnitude, Stream の子どもたち
樹上整列アニメーション,スクロール・アニメーションも動く.
森:全クラスのグラファ
これはウィンドウ.ノードが 3000 いくつある. Early2009 の MBP では重くて操作できない.
ウィンドウの中身.ちゃんと書き出しができれば w: 2142 h: 103182 という巨大なサイズの画像が生成されるはず. Squeak 3.10.2 では, jpg, png, gif, ps いずれでも途中で切れて,うまく書き出せない. bmp でも 600MB 超の真っ黒なファイルが生成される. morph としての書き出しはできる. 130MB ほどになるが.とりあえず,残された画像から 2140 x 10033 分を切り出してみた.これでも 1MB ある.
重み付きのグラフ:京都
重み付きのグラフ:東京
参考
じゅん のトピックスから.
同心円状整列 (arrangeFormat: #concentric
) はまだ動かない.
0 件のコメント:
コメントを投稿