docs: function(i, query) {
      var ch = query.charAt(i);
      if(ch == this.ATOM_QUOTE_SINGLE || ch == this.ATOM_QUOTE_DOUBLE) {
        var j = 0;       
        var quoteType = ch;
        var str = "";
        while(true) {
          j++;
          if(query.length < i+j) {
            this.throwParseErrorAt(i, query, "Encountered EOL when expecting "+((quoteType==this.ATOM_QUOTE_SINGLE)? "ATOM_QUOTE_SINGLE":"ATOM_QUOTE_DOUBLE"));
          }
          else if(query.charAt(i+j) == quoteType) {
            j++; break;
          }
          else if(query.charAt(i+j) == this.ATOM_ESCAPE) {
            // Found escape, append next char
            str+=query.charAt(i+j+1);
            j++;
          }
          else {
            str += query.charAt(i+j);
          }
        }
        return [i+j, new this(str)];
      }
      else {
        return null; 
      }
    }