Appearance
input => tokenizer => tokens
tokens => parser => ast
ast => transformer => newAst
newAst => generator => output