Split parser and compiler into seperate files