lexer restored (I overwrited it by mistake).
return type is optional (see grammar)