expression_evaluator 1.0.7 copy "expression_evaluator: ^1.0.7" to clipboard
expression_evaluator: ^1.0.7 copied to clipboard

A Dart library to evaluate dynamic expressions with logical operators.

Expression Evaluator #

A simple and flexible Dart library to evaluate dynamic expressions with support for logical operators (AND, OR) and comparison operations (==, !=, <, >, ILIKE, LIKE). This package is designed to make it easy to evaluate expressions based on variable values, and can be used for a variety of logical and mathematical evaluations.

Features #

  • Supports logical operators AND (&&) and OR (||).
  • Handles comparison operators: equality (==), inequality (!=), less than (<), greater than (>), and pattern matching (LIKE, ILIKE).
  • Flexible expression evaluation with dynamic variables.
  • Simple API for integration into your Dart projects.

Installation #

To use this package in your Dart project, add the following dependency in your pubspec.yaml file:

dependencies:
  expression_evaluator: ^1.0.7

Then run: #

dart pub get

Usage #

import 'package:expression_evaluator/expression_evaluator.dart';

void main() {
  var variables = {
    'x': '10',
    'y': '20',
    'z': 'hello',
  };

  var evaluator = ExpressionEvaluator(variables);

  var expression1 = 'x > 5 AND y < 25'; // Should return true
  var expression2 = 'z == "world" OR x == "10"'; // Should return true
  var expression3 = 'x == 15 AND z != "hello"'; // Should return false

  print('Expression 1: $expression1 => ${evaluator.evaluate(expression1)}');
  print('Expression 2: $expression2 => ${evaluator.evaluate(expression2)}');
  print('Expression 3: $expression3 => ${evaluator.evaluate(expression3)}');
}

Available Operators #

  • Equality (==): Checks if two values are equal.
  • Inequality (!=): Checks if two values are not equal.
  • Less Than (<): Checks if the left value is less than the right value.
  • Greater Than (>): Checks if the left value is greater than the right value.
  • LIKE: Pattern matching with wildcard support (% for multiple characters, _ for a single character).
  • ILIKE: Case-insensitive pattern matching, similar to LIKE.
  • AND: Logical operator that returns true if both conditions are true.
  • OR: Logical operator that returns true if at least one condition is true.

Example #

You can find an example script in the example/ folder that demonstrates how to use the ExpressionEvaluator in a real-world scenario.

dart example/expression_evaluator_example.dart

API #

ExpressionEvaluator(variables) #

Constructs an ExpressionEvaluator instance with a map of variables.

Parameters: #

  • variables: A Map<String, String> containing variable names and their corresponding values.

evaluate(expression) #

Evaluates an expression string and returns a boolean result.

Parameters: #

  • expression: A string representing the logical or comparison expression.

Returns: #

  • bool: The result of the expression evaluation.

License #

This project is licensed under the MIT License - see the LICENSE file for details.

2
likes
160
points
58
downloads

Publisher

unverified uploader

Weekly Downloads

A Dart library to evaluate dynamic expressions with logical operators.

Repository (GitHub)

Documentation

API reference

License

MIT (license)

More

Packages that depend on expression_evaluator