kunihiko-t / 9cc

C Compiler

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

9cc

WIP

for文まで

Build

make

Test

make test

EBNF

program    = stmt*
stmt       = expr ";"
           | "{" stmt* "}"
           | "if" "(" expr ")" stmt ("else" stmt)?
           | "while" "(" expr ")" stmt
           | "for" "(" expr? ";" expr? ";" expr? ")" stmt
           | "return" expr ";"
expr       = assign
assign     = equality ("=" assign)?
equality   = relational ("==" relational | "!=" relational)*
relational = add ("<" add | "<=" add | ">" add | ">=" add)*
add        = mul ("+" mul | "-" mul)*
mul        = unary ("*" unary | "/" unary)*
unary      = ("+" | "-")? term
term       = num | ident | "(" expr ")"

References: https://www.sigbus.info/compilerbook

About

C Compiler


Languages

Language:C 79.5%Language:C++ 13.3%Language:Shell 6.2%Language:Makefile 1.0%