add working but not tested lexer