variablePattern method
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();