resolve method

String resolve(
  1. String text
)

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) ?? '';
  });
}