fStringLiteral method
Implementation
Parser<ExpressionNode> fStringLiteral() =>
seq2(
[
'f',
'F',
'fr',
'FR',
'rf',
'RF',
].map(string).toChoiceParser().flatten(),
[
ref1(fStringDelimited, "'"),
ref1(fStringDelimited, '"'),
].toChoiceParser(),
).map2((prefix, parts) {
final flat = <ExpressionNode>[];
for (final p in parts) {
if (p is ConstantNode && (p.value as String).isEmpty) continue;
flat.add(p);
}
return flat.length == 1 && flat.first is ConstantNode
? flat.first
: JoinedStrNode(flat);
});