tryStatement method

Parser<TryStatementNode> tryStatement()
inherited

Implementation

Parser<TryStatementNode> tryStatement() =>
    seq3(
      ref0(tryToken),
      ref0(block),
      [
        seq2(
          ref0(catchClause).plus(),
          ref0(finallyClause).optional(),
        ).map2((catches, fin) => (catches, fin)),
        ref0(finallyClause).map((fin) => (const <CatchClauseNode>[], fin)),
      ].toChoiceParser(),
    ).map3(
      (_, body, catchesAndFin) => TryStatementNode(
        body: body,
        catchClauses: catchesAndFin.$1,
        finallyBlock: catchesAndFin.$2,
      ),
    );