ちまちまいじって経緯をメモしていますが、とりあえず以下は無視して最新のスナップショット( main
ブランチ)のソースを見てもらうのがいいんじゃないかなと思います。
- 42. ライフゲームのテスト
- 43. フォーマットなどいろいろ修正
- 44. テストの追加
- 45. リファクタリング(主に VM)
- 46. リファクタリング(主にコード生成器)
codegen_top_stmts()
- 47. 引数のパースの厳密化など
- 48. 変数宣言のコード生成処理の改善など
- 49. codegen_case を移植しやすいように変更
- 50. コード生成処理の変更にあわせたパーサの修正など
- 構文木のルート要素名を変更:
stmts
=>top_stmts
- 構文木のルート要素名を変更:
- 51. 機械語コードのフォーマットを固定長風に変更
- 52. リファクタリング: 字句解析処理を別ファイルに分離
- 53. 間接メモリ参照のフォーマットの改良 / alinesへの蓄積をやめる
- 54. コード生成器の冗長すぎる部分を整理
codegen_expr()
を整理して使い回し
- 55. VM命令 set_reg_a, set_reg_b の廃止など
- 56. VRAMの読み書きを組み込み関数化
- 組み込み関数
set_vram()
,get_vram()
- 組み込み関数
- 57. 二項演算を左結合に変更
- 58. _debug でブレークポイントを指定
parse_args()
まわりを簡素化to_fn_arg_disp
,to_lvar_disp
- 59. while, case の真偽判定の変更 / 予約語の判定の改良
- 60. stmt をそのまま渡す / 61. リファクタリング
- 62. case 文の構文を変更 / standardrb に変更
- 63. sub_sp 命令を廃止 / panic