resolve method
Replaces every {{ … }} token in text. A plain {{ identifier }} is a
direct lookup; anything else is evaluated as an arithmetic expression over
the scope's number-typed variables (collapsing to "" on any error).
Implementation
String resolve(String text) {
if (!text.contains('{{')) return text;
final values = {
for (final e in variables.entries) e.key: e.value?.toString() ?? ''
};
return text.replaceAllMapped(_placeholderPattern, (m) {
final inner = m.group(1)!.trim();
if (_identifierPattern.hasMatch(inner)) return values[inner] ?? '';
return evaluateArithmetic(inner, values, types) ?? '';
});
}