constant method
Implementation
Parser<LiteralExpressionNode> constant() => [
seq2(
pattern('+-'),
[
ref0(identifier).map((s) => (s, null)),
ref0(unsignedNumber).map((n) => (null, n)),
].toChoiceParser(),
).map2((sign, val) {
final (id, numVal) = val;
if (numVal != null) {
final signedVal = sign == '-' ? -numVal : numVal;
return LiteralExpressionNode(raw: '$sign$numVal', value: signedVal);
}
return LiteralExpressionNode(raw: '$sign$id', value: '$sign$id');
}),
ref0(unsignedConstant),
].toChoiceParser();