Working lexer and parser