docs: function parseFromFirstRemaining() {
    var cur = this.value[this.index];
    switch(cur) {
      case '{':
        return exports.ArrayParser.call(this);
        break;
      case '"':
        return exports.StringParser.call(this);
        break;
      case 'a':
        if (this.value.substring(this.index, this.index+5) == 'alias') {
          return exports.AliasParser.call(this);
        }
        break;
      case 'd':
        if (this.value.substring(this.index, this.index+4) == 'date') {
            return exports.DateParser.call(this);
        }
        break;
      case '«':
        if (this.value.substring(this.index, this.index+5) == '«data') {
          return exports.DataParser.call(this);
        }
        break;
    }
    if (!isNaN(cur)) {
      return exports.NumberParser.call(this);
    }
    return exports.UndefinedParser.call(this);
  }