callSelector method

Parser<ExpressionNode Function(ExpressionNode)> callSelector()
inherited

Implementation

Parser<ExpressionNode Function(ExpressionNode)> callSelector() =>
    seq3(
      ref1(token, '('),
      ignore(
        [
          ref0(generatorExpression),
          ref0(callArgumentList),
        ].toChoiceParser().optional(),
      ),
      ref1(token, ')'),
    ).map3(
      (_, args, _) => (target) {
        final parsedArgs =
            args ?? (args: <ExpressionNode>[], kw: <KeywordNode>[]);
        return CallNode(
          function: target,
          args: parsedArgs.args,
          keywords: parsedArgs.kw,
        );
      },
    );