ifCondition method

Parser<(ExpressionNode, PatternNode?, ExpressionNode?)> ifCondition()
inherited

Implementation

Parser<(ExpressionNode, PatternNode?, ExpressionNode?)> ifCondition() => [
  // Pattern if: expr case pattern [when guard]
  seq4(
    ref0(expression),
    ref0(caseToken),
    ref0(dartPattern),
    ref0(patternGuard).optional(),
  ).map4((expr, _, p, guard) => (expr, p as PatternNode?, guard)),
  // Normal if: expr
  ref0(expression)
      .map((expr) => (expr, null as PatternNode?, null as ExpressionNode?)),
].toChoiceParser();