syncFunctionDef method

Parser<FunctionDefNode> syncFunctionDef()
inherited

Implementation

Parser<FunctionDefNode> syncFunctionDef() =>
    seq6(
      ref0(defToken),
      ref0(identifier),
      ref0(typeParams).optional(),
      ref0(parameters),
      seq2(ref1(token, '->'), ref0(expression)).map2((_, e) => e).optional(),
      seq2(ref1(token, ':'), ref0(suite)).map2((_, s) => s),
    ).map6(
      (_, name, tParams, params, returns, body) => FunctionDefNode(
        name: name,
        args: params,
        body: body,
        returns: returns,
        typeParams: tParams ?? const [],
      ),
    );