言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

ggame

テストデーモン設計

バックグラウンドで常時実行 []メソッド単位でテスト可能 テキストベースで定義 ログはトランスクリプトへ

バグ

スタートシンボルの位置が変わってしまう! 非終端記号が grammar オブジェクトに格納されるプロセスを見る。 addSpecialSymbols が怪しい。 のように、アクションが決まっているスキャナ記号についてはセレクタを返すらしい。 違った。これでは順番は変わら…

機能の調整、サンプルの作成

ツリー上でアクション実行 アクションの文法 の参照の方法を考えると '1' のまま行くべきか? テストテキスト、文法、ツリーの依存関係を整理。 カラー表示 ツールチップ? アクションを別画面で編集 AST 作成とアクションの順番

アクション実行できるように

ディスクが一杯になってしまった! この忙しい時に。。。DVD-R 買うか。 今日やる事 とりあえずアクション付けてみる。 [途中]エラー表示詳しく メソッド名決定アルゴリズムの解析 依存関係の整理(文字列 - パーサ - ツリー - (アクション)) アクション別窓で…

nonterminal -> terminal 自動変換

SmaCCGrammar で行う。 production の無い nonterminal を検出して become: become: の不思議 a array a _ 'a'. b _ 'b'. array _ {a. 'b'. 'c'. {a}}. a become: b. array explore とりあえず見た目だけ作る。 メニュー作成。セーブ(別クラスで保存)とロー…

SmaCC 改造

SmaCCToken の構造 {値 (開始位置, 終了位置, ID)} id トークンID start 開始位置 value 値 GGrammarParser(SmaCCParser)>>performParsingLoop では何をやっているか? 現在のトークンを取り出す。 パーサは transitionTable :: 状態(スタックのケツ) -> トー…

SmaCC 機能更なる検証

SmaCC で ggame のサンプル greeting : hello world greeting : "hello" "world" ; expr : expr inc [ :a :b | a + 1 ] expr : number expr : expr "inc" { '1' + 1 } ; expr : { '1' value asNumber } ; ブロック構文、derivation 以外は可能。 SmaCC 文法…

SmaCC の色んな調査

SmaCC が重くてサイズもでかいので、削除できる部分が無いか調べる Refactor Refactor をアンインストール(アンインストーラが見つからなかったので手動) SystemOrganization removeCategoriesMatching: 'Refactory*' Preferences class>>browseToolClass を…

SmaCC UI に新しいタブを作り、ツリーを表示させる。

パースをクラスメソッドで行っているため、状態が保存されずパッチを当てにくい。わざとかなー 依存関係をグラフ化する事が出来るか? そもそも、何故依存が必要なのか?

レイアウト

レイアウトされるのは Morph>>fullbounds が呼ばれた時。(描画時?) レイアウトされると親のレイアウトが呼ばれる。子は自分で呼ぶ? Morph)>>layoutInBounds: の意味は?大きさを変える時の処理の流れ(よく分かってないと無限ループになる) Morph>>width: Morp…

レイアウトの自作

モルフの中にさらにサブモルフを追加する際。レイアウトを指定するとサブモフルを自動整列させる事が出来る。自動整列の仕方を決めるにはレイアウトを作成する。シンプルな例 'From Squeak3.5 of ''11 April 2003'' [latest update: #5180] on 27 July 2003 …

SmaCC

reduceTable の構造 SmaCCGrammarCompiler>>reduceTable より reduceEntry at: トークンID = 状態インデックス 右辺の数 メソッド名 SmaCCToken の構造 {値 (開始位置, 終了位置, ID)} id トークンID start 開始位置 value 値

SmaCCToys

あまり良くない事なのだが、SmaCC 版言語ゲーム(SmaCCToys)の実装をしているうちに、果たしてこれって何の役に立つんだろうか??という気がしてしまい、ここは頭を冷やして喫茶店で考える事にした。 最初にパーサジェネレータのGUIを作るというアイデアを考え…

ステートマシンと言語とオブジェクト

もしもオブジェクトが状態を持たない場合、オブジェクトは関数として振舞う。 もしもオブジェクトが他のオブジェクトを知らない場合、オブジェクトはステートマシンとして振舞う。 もしもオブジェクトが他のオブジェクトを知っている場合、オブジェクトはチ…

SmaCC 調査

reduceTable の構造 SmaCCGrammarCompiler>>reduceTable より reduceEntry at: トークンID = 状態インデックス 右辺の数 メソッド名 SmaCCToken の構造 {値 (開始位置, 終了位置, ID)} id トークンID start 開始位置 value 値