stream.indentation()) : {};         }         return stream.hideFirstChars(state.indentOf + 0, function () {           return state.innerMode.token(stream, state.innerState) || true;         });       } else {         stream.skipToEnd();         return state.indentToken;       }     } else if (stream.sol()) {       state.indentOf = Infinity;       state.indentToken = null;       state.innerMode = null;       state.innerState = null;     }   }   function restOfLine(stream, state) {     if (stream.sol()) {       // if restOfLine was set at end of line, ignore it       state.restOfLine = '';     }     if (state.restOfLine) {       stream.skipToEnd();       var tok = state.restOfLine;       state.restOfLine = '';       return tok;     }   }     function startState() {     return new State();   }   function copyState(state) {     return state.copy();   }   /**    * Get the next token in the stream    *    * @param {Stream} stream    * @param {State} state    */   function nextToken(stream, state) {     var tok = innerMode(stream, state)       || restOfLine(stream, state)       || interpolationContinued(stream, state)       || includeFilteredContinued(stream, state)       || eachContinued(stream, state)       || attrsContinued(stream, state)       || javaScript(stream, state)       || javaScriptArguments(stream, state)       || callArguments(stream, state)        || yieldStatement(stream, state)       || doctype(stream, state)       || interpolation(stream, state)       || caseStatement(stream, state)       || when(stream, state)       || defaultStatement(stream, state)       || extendsStatement(stream, state)       || append(stream, state)       || prepend(stream, state)       || block(stream, state)       || include(stream, state)       || includeFiltered(stream, state)       || mixin(stream, state)       || call(stream, state)       || conditional(stream, state)       || each(stream, state)       || whileStatement(stream, state)       || tag(stream, state)       || filter(stream, state)       || code(stream, state)       || id(stream, state)       || className(stream, state)       || attrs(stream, state)       || attributesBlock(stream, state)       || indent(stream, state)       || text(stream, state)       || comment(stream, state)       || colon(stream, state)       || dot(stream, state)       || fail(stream, state);      return tok === true ? null : tok;   }   return {     startState: startState,     copyState: copyState,     token: nextToken   }; }