コンパイラ入門実践 その1
最近調子が良いけど、やはり定期的なアウトプットをしたほうが良さそう。 ということで現状を書いておく。コンパイラ学習の調子は良くないw
現状
Computer Science Library9のコンパイラ入門を読みつつbison, flexで簡単な言語のコンパイラを作ってみている。
この本のSL1を解析してCSTを作る途中。
yacc, lexの写経、include周りを修正したのが↓
Fix include settings · tom--bo/compiler-study@1a15a28 · GitHub
コンパイル方法
bison -d mycc/parser.y flex --header-file=lex.yy.h mycc/lexer.l # bison, flex結果をcfiles dirに移動 gcc -I cfiles cfiles/*.c -o ./parser
todo
- 宣言部がどう変換されるのか
parserでlexのheaderをincludeするのに宣言部で
%{ #include "lex.yy.h" %}
するとちゃんとヘッダーが読めたがこのあたりがどうファイルに入っているか確認しないといけない。
SL1の拡張SL2案
- PrintStmtsをプログラム中のどこでもかける蝶にする
- 型推論を試す。変数宣言に
var
とか入れる