dragonetの日記: 一日中ではないが
日記 by
dragonet
まぁ適当にyacc/lexの勉強を進めてみた。
相変わらず構文に曖昧な部分があると怒られながら
なんとか変数の導入と組み込み関数の実行を行う所まで出来た。
基本的にトークンを読んだら、扱いやすい形に変形して、
(文字列) and (関数ポインタ or 数字 or 文字列)を格納した辞書リストから
検索して振る舞いを決めるといった感じで巧くいくっぽい。
構文解析に拘る時間もないし、字句解析の段階でかなり絞れるようした。
例えば$変数、&関数、{命令}、"文字列"といった感じである。
また改行文字や空白文字には構文上の意味を持たせなかった。
# 改行文字は字句解析の段階で行数変数をインクリメントするだけ。
んで振る舞い = 実処理で使う構造体リストの構築と割り切れば
意外に早く制御用インタプリタ言語が作れるかもしれない。
本体の方も合わせて全部作り直さざるを得ないのだけどなにか。
一日中ではないが More ログイン