Add Parser

"The lexer produces an array of tokens; the parser produces a tree of
nodes. This tree of nodes will be how the language represents our
program in memory."