言語ゲーム

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

Twitter: @propella

残り作業

  • ggame モードと SmaCC モードを明快に
    • ggame モード : 単純文法 GParser のサブクラス生成
    • SmaCC モード : 互換文法 GParser のサブクラス生成
  • 役割の整理
  • GGrammarCompiler 実際にパーサを作成するクラス
  • BNF 文法
    • SmaCCGrammarParser SmaCC 文法を解析する。GParser を提供する。
    • GGrammarParser ggame 文法を解析する。
  • 出力文法
    • GParser 構文木を生成する為のパーサ抽象クラス
    • SmaCC SmaCCGrammarParser - SmaCCParser の組み合わせ
    • GGameSmaCC SmaCCGrammarParser - GParser の組み合わせ
    • GGame GGameParser - GParser の組み合わせ
  • [済]カテゴリの指定は SmaCCGrammarCompiler>>defineClass:asSubclassOf: をオーバーライドでOK
  • [済]ggame モードと SmaCC モードが明快
  • [済]エラー時NG
  • [済] drag and drop これも汚いがとりあえず。
  • ggame モードにおいて、テキスト - パーサ - ツリーが一対一対応。
    • 依存関係を真面目に考えるとややこしいので、ひとまず簡単に実装してみる。
    • 汚いが今はまあ良いか。。。
    • Morph の極意 (step) の技を研究する必要がある。
  • エラーメッセージから内部コードを抜く
  • サンプルを作ってみる。
  • ツリーの色変える
  • バグ
    • expr : expr + expr | expr * expr | ( expr ) | term |
    • が ggame モードで動かない