$ echo ' func add(a, b) { return a + b; } func main() { call add(1, 2); } ' | ./run.sh lex | ./run.sh parse | ./run.sh codegen # ↓ アセンブリが出力される call main exit label add push bp mov bp sp mov reg_a [bp:2] push reg_a mov reg_a [bp:3] push reg_a pop reg_b pop reg_a add reg_a reg_b mov sp bp pop bp ret mov sp bp pop bp ret label main push bp mov bp sp mov reg_a 2 push reg_a mov reg_a 1 push reg_a _cmt
