whole_func_string: function fromLDMLString(ldmlString) {
    // First remove '' quoted text, so we lose 'Uhr' strings.
    ldmlString = InternalRegExpReplace(GetQuotedStringRE(), ldmlString, '');
  
    var options = {};
    var match = InternalRegExpMatch(/E{3,5}/, ldmlString);
    options = appendToDateTimeObject(
        options, 'weekday', match, {EEEEE: 'narrow', EEE: 'short', EEEE: 'long'});
  
    match = InternalRegExpMatch(/G{3,5}/, ldmlString);
    options = appendToDateTimeObject(
        options, 'era', match, {GGGGG: 'narrow', GGG: 'short', GGGG: 'long'});
  
    match = InternalRegExpMatch(/y{1,2}/, ldmlString);
    options = appendToDateTimeObject(
        options, 'year', match, {y: 'numeric', yy: '2-digit'});
  
    match = InternalRegExpMatch(/M{1,5}/, ldmlString);
    options = appendToDateTimeObject(options, 'month', match, {MM: '2-digit',
        M: 'numeric', MMMMM: 'narrow', MMM: 'short', MMMM: 'long'});
  
    // Sometimes we get L instead of M for month - standalone name.
    match = InternalRegExpMatch(/L{1,5}/, ldmlString);
    options = appendToDateTimeObject(options, 'month', match, {LL: '2-digit',
        L: 'numeric', LLLLL: 'narrow', LLL: 'short', LLLL: 'long'});
  
    match = InternalRegExpMatch(/d{1,2}/, ldmlString);
    options = appendToDateTimeObject(
        options, 'day', match, {d: 'numeric', dd: '2-digit'});
  
    match = InternalRegExpMatch(/h{1,2}/, ldmlString);
    if (match !== null) {
      options['hour12'] = true;
    }
    options = appendToDateTimeObject(
        options, 'hour', match, {h: 'numeric', hh: '2-digit'});
  
    match = InternalRegExpMatch(/H{1,2}/, ldmlString);
    if (match !== null) {
      options['hour12'] = false;
    }
    options = appendToDateTimeObject(
        options, 'hour', match, {H: 'numeric', HH: '2-digit'});
  
    match = InternalRegExpMatch(/m{1,2}/, ldmlString);
    options = appendToDateTimeObject(
        options, 'minute', match, {m: 'numeric', mm: '2-digit'});
  
    match = InternalRegExpMatch(/s{1,2}/, ldmlString);
    options = appendToDateTimeObject(
        options, 'second', match, {s: 'numeric', ss: '2-digit'});
  
    match = InternalRegExpMatch(/z|zzzz/, ldmlString);
    options = appendToDateTimeObject(
        options, 'timeZoneName', match, {z: 'short', zzzz: 'long'});
  
    return options;
  }
func_code_string: function fromLDMLString(ldmlString) {
    // First remove '' quoted text, so we lose 'Uhr' strings.
    ldmlString = InternalRegExpReplace(GetQuotedStringRE(), ldmlString, '');
  
    var options = {};
    var match = InternalRegExpMatch(/E{3,5}/, ldmlString);
    options = appendToDateTimeObject(
        options, 'weekday', match, {EEEEE: 'narrow', EEE: 'short', EEEE: 'long'});
  
    match = InternalRegExpMatch(/G{3,5}/, ldmlString);
    options = appendToDateTimeObject(
        options, 'era', match, {GGGGG: 'narrow', GGG: 'short', GGGG: 'long'});
  
    match = InternalRegExpMatch(/y{1,2}/, ldmlString);
    options = appendToDateTimeObject(
        options, 'year', match, {y: 'numeric', yy: '2-digit'});
  
    match = InternalRegExpMatch(/M{1,5}/, ldmlString);
    options = appendToDateTimeObject(options, 'month', match, {MM: '2-digit',
        M: 'numeric', MMMMM: 'narrow', MMM: 'short', MMMM: 'long'});
  
    // Sometimes we get L instead of M for month - standalone name.
    match = InternalRegExpMatch(/L{1,5}/, ldmlString);
    options = appendToDateTimeObject(options, 'month', match, {LL: '2-digit',
        L: 'numeric', LLLLL: 'narrow', LLL: 'short', LLLL: 'long'});
  
    match = InternalRegExpMatch(/d{1,2}/, ldmlString);
    options = appendToDateTimeObject(
        options, 'day', match, {d: 'numeric', dd: '2-digit'});
  
    match = InternalRegExpMatch(/h{1,2}/, ldmlString);
    if (match !== null) {
      options['hour12'] = true;
    }
    options = appendToDateTimeObject(
        options, 'hour', match, {h: 'numeric', hh: '2-digit'});
  
    match = InternalRegExpMatch(/H{1,2}/, ldmlString);
    if (match !== null) {
      options['hour12'] = false;
    }
    options = appendToDateTimeObject(
        options, 'hour', match, {H: 'numeric', HH: '2-digit'});
  
    match = InternalRegExpMatch(/m{1,2}/, ldmlString);
    options = appendToDateTimeObject(
        options, 'minute', match, {m: 'numeric', mm: '2-digit'});
  
    match = InternalRegExpMatch(/s{1,2}/, ldmlString);
    options = appendToDateTimeObject(
        options, 'second', match, {s: 'numeric', ss: '2-digit'});
  
    match = InternalRegExpMatch(/z|zzzz/, ldmlString);
    options = appendToDateTimeObject(
        options, 'timeZoneName', match, {z: 'short', zzzz: 'long'});
  
    return options;
  }
func_documentation_string: Returns object that matches LDML representation of the date.