Basic lexer