reorganized a bunch of lexer logic
updated parser generator with more grammar
added tests for lexer/parser