parseObjectValue method

ObjectValueContext? parseObjectValue()

Implementation

ObjectValueContext? parseObjectValue() {
  if (next(TokenType.LBRACE) && current != null) {
    var LBRACE = current!;
    var lastSpan = LBRACE.span;
    var fields = <ObjectFieldContext>[];
    var field = parseObjectField();

    while (field != null) {
      fields.add(field);
      lastSpan = field.span;
      eatCommas();
      field = parseObjectField();
    }

    eatCommas();

    if (next(TokenType.RBRACE) && current != null) {
      return ObjectValueContext(LBRACE, fields, current!);
    } else {
      errors.add(SyntaxError('Unterminated object literal.', lastSpan));
      return null;
    }
  } else {
    return null;
  }
}