字句解析及び構文解析による数式演算システム
入力された数式に対して字句解析、構文解析を行い演算の結果を出力する。
四則演算(+,-,*,/)及び、大小比較(<,>,<=,>=)、等価演算(==,!=)に対応している。
$ ./mycalc
12+7
>> 19
(10+10)*2
>> 40
(1+2+3)*4<567
>> 1
12>17
>> 0
11==11
>> 1
11==12
>> 0
11!=11
>> 0
11!=12
>> 1
何も入力をせずに改行を行うとこのプログラムは終了する。
動かし方
git clone git@github.com:mimic-asy/c_simple_compiler.git
make
./mycalc
作った理由
コンパイラを作るときにまず字句解析、構文解析の知識を持っているべきであると考えたため
今後すること
ifやforなどの制御構造に関しては実装していないため今後実装を行う。
合成と高速化、CPUに近い部分を学ぶためにLLVMのバックエンドを実装する。
LLVMのバックエンドを学んだら、llvmを用いてコンパイラ、もしくは言語を作成する予定。