Implemented Lexer

Maybe clean up later so a look-ahead is not required