parseListValue method

ListValueContext? parseListValue()

Implementation

ListValueContext? parseListValue() {
  if (next(TokenType.LBRACKET) && current != null) {
    var LBRACKET = current!;
    var lastSpan = LBRACKET.span;
    var values = <InputValueContext>[];
    var value = parseInputValue();

    while (value != null) {
      lastSpan = value.span;
      values.add(value);
      eatCommas();
      value = parseInputValue();
    }

    eatCommas();
    if (next(TokenType.RBRACKET) && current != null) {
      return ListValueContext(LBRACKET, current!)..values.addAll(values);
    } else {
      errors.add(SyntaxError('Unterminated list literal.', lastSpan));
      return null;
    }
  } else {
    return null;
  }
}