getOrdinals method

Map<Field, String> getOrdinals()

Implementation

Map<Field, String> getOrdinals() {
  Map<Field, String> ret = <Field, String>{};
  skipWhitespaces();
  if (peekString() == '[') {
    // get ordinals
    skipChar('[');
    while (_buffer != '' && peekString() != ']') {
      // get next ordinal
      skipWhitespaces();
      String ordinal = getAtom();
      Field? ordinalf = Field.fromString(ordinal);
      if (ordinalf == null) {
        throw ParserException(
            'expected valid ordinal name at line $line pos $pos (got "$ordinal")');
      }
      skipWhitespaces();
      skipChar('=');
      String value = getAtom();
      ret[ordinalf] = value;
      skipNewlineAndWhitespaces();
      if (peekString() != ']') {
        skipChar(',');
        skipNewlineAndWhitespaces();
        if (peekString() == ']') {
          throw ParserException('ordinal expected at line $line pos $pos');
        }
      }
    }
    skipChar(']');
  }
  return ret;
}