Jexl - Javascript Expression Language: Powerful context-based expression parser and evaluator

  •        105

Jexl requires an environment that supports the Promise/A+ specification as standardized in ES6. Node.js version 0.12.0 and up is great right out of the box (no --harmony flag necessary), as well as the latest versions of many browsers. To support older browsers, just include a Promise library such as Bluebird. The in operator can be used to check for a substring: "Cad" in "Ron Cadillac", and it can be used to check for an array element: "coarse" in ['fine', 'medium', 'coarse']. However, the == operator is used behind-the-scenes to search arrays, so it should not be used with arrays of objects. The following expression returns false: {a: 'b'} in [{a: 'b'}].

https://github.com/TomFrost/jexl

Tags
Implementation
License
Platform

   




Related Projects

surgeon - Declarative DOM extraction expression evaluator. ๐Ÿ‘จ‍โš•๏ธ

  •    Javascript

Declarative DOM extraction expression evaluator. Powerful, succinct, composable, extendable, declarative API.

Fast Lightweight Expression Evaluator

  •    

A .NET expression parser and evaluator that uses a custom compiler and lightweight codegen to ensure that expression evaluation is fast and efficient.

Expression Evaluator + aggregate functions support

  •    CSharp

Simple library for expressions evaluation that supports variables in expression and aggregative functions to parse and evaluate expression against tabular data.

Apache Commons JEXL - Commons JEXL Expression Language Engine

  •    Java

Jexl is an implementation of the JSTL Expression Language with extensions.

Simple Expression Evaluator

  •    

An expression evaluator based on the Irony.net parser toolkit.


C# Expression Evaluator

  •    DotNet

A simple expression evaluator in C# using LINQ Expressions

mathjs - An extensive math library for JavaScript and Node.js

  •    Javascript

Math.js is an extensive math library for JavaScript and Node.js. It features a flexible expression parser with support for symbolic computation, comes with a large set of built-in functions and constants, and offers an integrated solution to work with different data types like numbers, big numbers, complex numbers, fractions, units, and matrices.

Foreval (math parser)

  •    

Foreval is compiler of mathematical expressions(formulas) given as string at run-time (math parser). (present as dll library and delphi component) For fast and exact scientific calculations.

ForevalZ (math parser)

  •    

ForevalZ is compiler of mathematical expressions(formulas) with complex numbers given as string at 'run-time' (math parser). (dll library + delphi component). For use in calculations with complex numbers.

Expression Evaluator

  •    

This is an article on how to build a basic expression evaluator. It can evaluate any numerical expression combined with trigonometric functions for now. Constants like e and pi are also supported.

NCalc - Mathematical Expressions Evaluator for .NET

  •    

NCalc is a mathematical expressions evaluator in .NET. NCalc can parse any expression and evaluate the result, including static or dynamic parameters and custom functions.

forevalz

  •    Delphi

ForevalZ - compiler of mathematical expressions(formulas)(directly in FPU x86) with complex numbers given as string at 'run-time'. (dll library and delphi component)(math parser, math expression parser, evaluate formula, evaluator, calculate)

foreval

  •    Delphi

Foreval is compiler of mathematical expressions (formulas) (directly to FPU x86) given as string at run-time. (dll library and delphi component) .(math parser,math expression parser,evaluate formula, evaluator)

canopy - A parser compiler for Java, JavaScript, Python, Ruby

  •    Javascript

Canopy is a parser compiler targeting Java, JavaScript, Python and Ruby. It takes a file describing a parsing expression grammar and compiles it into a parser module in the target language. The generated parsers have no runtime dependency on Canopy itself. For usage documentation see canopy.jcoglan.com.

numexpr - Fast numerical array expression evaluator for Python, NumPy, PyTables, pandas, bcolz and more

  •    Python

NumExpr is a fast numerical expression evaluator for NumPy. With it, expressions that operate on arrays (like '3*a+4*b') are accelerated and use less memory than doing the same calculation in Python. In addition, its multi-threaded capabilities can make use of all your cores -- which generally results in substantial performance scaling compared to NumPy.

hnix - A Haskell re-implementation of the Nix expression language

  •    Nix

Haskell parser, evaluator and type checker for the Nix language. Nix is installed and in your $PATH. This is so that nix-store can be used for interacting with store paths, until hnix-store is ready.

mark - A simple and unified notation for both object data, like JSON, and markup data, like HTML and XML

  •    Javascript

Objective Markup Notation, abbreviated as Mark Notation or just Mark, is a new unified notation for both object and markup data. The notation is a superset of what can be represented by JSON, HTML and XML, but overcomes many limitations these popular data formats, yet still having a very clean syntax and simple data model. The major syntax extension Mark makes to JSON is the introduction of a Mark object. It is a JSON object extended with a type name and a list of content items, similar to element in HTML and XML.

JsonPath - Java JsonPath implementation

  •    Java

A Java DSL for reading JSON documents.Jayway JsonPath is a Java port of Stefan Goessner JsonPath implementation. JsonPath expressions always refer to a JSON structure in the same way as XPath expression are used in combination with an XML document. The "root member object" in JsonPath is always referred to as $ regardless if it is an object or array.

simdjson - Parsing gigabytes of JSON per second

  •    C++

JSON documents are everywhere on the Internet. Servers spend a lot of time parsing these documents. We want to accelerate the parsing of JSON per se using commonly available SIMD instructions as much as possible while doing full validation (including character encoding). A description of the design and implementation of simdjson appears at https://arxiv.org/abs/1902.08318 and an informal blog post providing some background and context is at https://branchfree.org/2019/02/25/paper-parsing-gigabytes-of-json-per-second/.

jq - Command-line JSON processor

  •    C

jq is a lightweight and flexible command-line JSON processor. jq is like sed for JSON data - you can use it to slice and filter and map and transform structured data with the same ease that sed, awk, grep and friends let you play with text.