treat () as void
use "main" for main function's name
separate generation for muiltin binary operators to a function
emit IR for string literal
add return type field to func_scope class
improve builtin function implementation in semantic analysis