構文解析(だいたい)完成
構文解析は出来た。実験的に解析木を作ってみたけど、問題無し。この構文に従って書いたコードは以下のような感じになる。これは構文解析のテスト用に作った巨大ソースの一部で、プログラム的な意味は全く無い。構文的に正しいだけのソースコード。
const int func(int arg) { var char *buf[255]; while ( strlen(hoge) + 3 >= 100 ) { var int i = random(); if ( i == 0 ) { printf("OK\n"); } else { printf("Fuckyou\n"); } } }
変数宣言がvar int ...のようにキーワードvarで始まる以外はCと同じような感じ。このキーワードvarはなんとなく付けてみただけ。これにより、凄いスクリプトっぽい感じを表現してみた。ブレースの省略などは不可。
今、型の表現をどうするのが美しいのか悩んでる。プリミティブな型はそのままアセンブラに落とし込めばいいけど、構造体と配列をうまく扱いたい。まだ、実装してないけど配列と構造体はアセンブラ上では同じように表現出来るのだから、「配列は各要素が同じ大きさである構造体」と考えると、内部的には区別する必要がない(はず)。
とはいえ、それぞれアクセス方法も違うし、やはり別個のものと見るべきか…。