filter-expr
A library for parsing the filter expression.
use ;
let f = parse.unwrap;
let ctx = new;
let result = f.eval.await.unwrap;
assert_eq!;
Syntax
Filter
<filter> = <expr> | <empty>
<empty> =
Expression
<expr> = <factor> ('AND' <factor>)*
<factor> = <term> ('OR' <term>)*
<term> = ['NOT'] <comparison>
| <value> [<operator> <value>]
<operator> = '=' | '>' | '<' | '>=' | '<=' | '!=' | 'IN'
Value
<value> = <str>
| <i64>
| <f64>
| <bool>
| <null>
| <func-call>
| <ident>
| <array>
<func-call> = <ident> '(' [<value> (',' <value>)* ','?] ')'
<array> = '[' [<value> (',' <value>)* ','?] ']'