* if no token was found
*/
public T getNextToken(boolean step) throws LexerException {
skipIgnores();
if (head >= input.length())
throw new EmptyInputException();
W d = null;
for (W descender : descenders.getValues())
if (input.length() - head >= descender.open.length() && input.startsWith(descender.open, head) && (d == null || descender.open.length() > d.open.length()))
d = descender;
if (d != null) {