code: function(pattern) {
  
          var buffer = "",
              c;
  
          /*
           * First, buffer must be the same length as the pattern.
           * Then, buffer must end with the pattern or else reach the
           * end of the input.
           */
          while (buffer.length < pattern.length || buffer.lastIndexOf(pattern) !== buffer.length - pattern.length) {
              c = this.read();
              if (c) {
                  buffer += c;
              } else {
                  throw new Error("Expected \"" + pattern + "\" at line " + this._line  + ", col " + this._col + ".");
              }
          }
  
          return buffer;
  
      }
docs: ------------------------------------------------------------------------- Advanced reading ------------------------------------------------------------------------- 
  Reads up to and including the given string. Throws an error if that
  string is not found.
  @param {String} pattern The string to read.
  @return {String} The string when it is found.
  @throws Error when the string pattern is not found.
  @method readTo