My First Language Frontend with LLVM Tutorial

http://llvm.org/docs/tutorial/MyFirstLanguageFrontend/index.html

kaleidoscope

特点:

  • 只有float64一种类型

  • 没有类型声明

  • 都是expression

lexer

source -> tokens{code, meta}

parser & ast

source -> lexer -> tokens -> parser -> ast

递归下降 + 操作符优先级parsing.