lexer and lexer_test written
parser and grammar written