Added: lexer for input text