part of the lexer with appropriate tests