Skip to content

Latest commit

 

History

History
40 lines (28 loc) · 1.28 KB

compilerbook-day-4.md

File metadata and controls

40 lines (28 loc) · 1.28 KB
title date draft tags
コンパイラ作成日記 4日目
2022-03-11 17:32:53 +0900
false
compiler
compilerbook
C

こちらの挑戦日記4日目

低レイヤを知りたい人のためのCコンパイラ作成入門

リポジトリはこちら。 gennei/compilerbook-challenge

今日やったこと

  • 比較演算子の実装

commit: gennei/compilerbook-challenge@ba71e9b

比較演算子の実装

教本では一度に実装していたが、一度に大きく変更するとわけわからなくなるので一文字演算子だけ実装してみた。

  1. <, > だけ実装した
  2. 2文字以上扱えるようにした
  3. ==, != を実装
  4. <=, >= を実装

教本にあるこれが読めるようになったのでそんなに難しくなかった。

expr       = equality
equality   = relational ("==" relational | "!=" relational)*
relational = add ("<" add | "<=" add | ">" add | ">=" add)*
add        = mul ("+" mul | "-" mul)*
mul        = unary ("*" unary | "/" unary)*
unary      = ("+" | "-")? primary
primary    = num | "(" expr ")"