Split parser and compiler functionality