variablePattern method

Parser<VariablePatternNode> variablePattern()
inherited

Variable pattern (var x, final x, final int x, int x).

Implementation

Parser<VariablePatternNode> variablePattern() => [
  seq2(
    ref0(finalToken),
    [
      seq2(
        ref0(type),
        ref0(patternVariableIdentifier),
      ).map2((type, name) => (type: type, name: name)),
      ref0(patternVariableIdentifier).map((name) => (type: null, name: name)),
    ].toChoiceParser(),
  ).map2(
    (_, data) =>
        VariablePatternNode(name: data.name, type: data.type, isFinal: true),
  ),
  seq2(
    ref0(varToken),
    ref0(patternVariableIdentifier),
  ).map2((_, name) => VariablePatternNode(name: name, isVar: true)),
  seq2(
    ref0(type),
    ref0(patternVariableIdentifier),
  ).map2((type, name) => VariablePatternNode(name: name, type: type)),
].toChoiceParser();