Seperate grammar(parser) and lexer into 2 classes