callArgumentList method

Parser<({List<ExpressionNode> args, List<KeywordNode> kw})> callArgumentList()
inherited

Implementation

Parser<({List<ExpressionNode> args, List<KeywordNode> kw})>
callArgumentList() =>
    seq2(
      ref0(callArg).plusSeparated(ref1(token, ',')),
      ref1(token, ',').optional(),
    ).map2((seq, _) {
      final args = <ExpressionNode>[];
      final kw = <KeywordNode>[];
      for (final item in seq.elements) {
        if (item is KeywordNode) {
          kw.add(item);
        } else {
          args.add(item as ExpressionNode);
        }
      }
      return (args: args, kw: kw);
    });