evaluateExpression function

Object? evaluateExpression(
  1. String expression, {
  2. Map<String, Object?> variables = const <String, Object?>{},
})

Evaluates expression against variables, returning the result (a num, bool, or String). Throws FormatException on a syntax error, an unknown variable, or a type mismatch (e.g. adding a string).

Example:

evaluateExpression('age >= 18 && country == "US"',
  variables: {'age': 21, 'country': 'US'}); // true

Audited: 2026-06-12 11:26 EDT

Implementation

Object? evaluateExpression(
  String expression, {
  Map<String, Object?> variables = const <String, Object?>{},
}) {
  final List<Token> tokens = tokenize(expression, _rules);
  return _Evaluator(tokens, variables).run();
}