LoginSignup
0
0

bison,flexを用いた字句解析及び構文解析による数式演算システム

Posted at

字句解析及び構文解析による数式演算システム

入力された数式に対して字句解析、構文解析を行い演算の結果を出力する。

四則演算(+,-,*,/)及び、大小比較(<,>,<=,>=)、等価演算(==,!=)に対応している。

$ ./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を用いてコンパイラ、もしくは言語を作成する予定。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0