File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -21,17 +21,19 @@ expression → logical_or
2121logical_or → logical_and ( ("OR" | "or") logical_and )*
2222logical_and → logical_not ( ("AND" | "and") logical_not )*
2323logical_not → ("NOT" | "not") logical_not | comparison
24- comparison → addition ( ( ">" | "<" | ">=" | "<=" | "=" | "==" | "!=" | "in" | "contains" ) addition )?
24+ comparison → addition ( ( ">" | "<" | ">=" | "<=" | "=" | "==" | "!=" | "===" | "!==" | " in" | "contains" ) addition )?
2525addition → multiplication ( ( "+" | "-" ) multiplication )*
2626multiplication → unary ( ( "*" | "/" | "%" ) unary )*
2727unary → ( "-" | "!" ) unary | postfix
2828postfix → primary ( "[" expression "]" | "." IDENTIFIER )*
29- primary → NUMBER | FLOAT | STRING | BOOLEAN | DATE | DATETIME | IDENTIFIER | list | object | function_call | "(" expression ")"
30- function_call → IDENTIFIER "(" ( expression ( "," expression )* )? ")"
29+ primary → NUMBER | FLOAT | STRING | BOOLEAN | DATE | DATETIME | IDENTIFIER | duration | relative_date | list | object | function_call | "(" expression ")"
30+ function_call → FUNCTION_NAME "(" ( expression ( "," expression )* )? ")"
3131list → "[" ( expression ( "," expression )* )? "]"
3232object → "{" ( object_entry ( "," object_entry )* )? "}"
3333object_entry → object_key ":" expression
3434object_key → IDENTIFIER | STRING
35+ duration → NUMBER UNIT+
36+ relative_date → duration "ago" | duration "from" "now" | "next" duration | "last" duration
3537```
3638
3739### Core Components
Original file line number Diff line number Diff line change @@ -355,17 +355,19 @@ expression → logical_or
355355logical_or → logical_and ( ("OR" | "or") logical_and )*
356356logical_and → logical_not ( ("AND" | "and") logical_not )*
357357logical_not → ("NOT" | "not") logical_not | comparison
358- comparison → addition ( ( ">" | "<" | ">=" | "<=" | "=" | "==" | "!=" | "in" | "contains" ) addition )?
358+ comparison → addition ( ( ">" | "<" | ">=" | "<=" | "=" | "==" | "!=" | "===" | "!==" | " in" | "contains" ) addition )?
359359addition → multiplication ( ( "+" | "-" ) multiplication )*
360360multiplication → unary ( ( "*" | "/" | "%" ) unary )*
361361unary → ( "-" | "!" ) unary | postfix
362362postfix → primary ( "[" expression "]" | "." IDENTIFIER )*
363- primary → NUMBER | FLOAT | STRING | BOOLEAN | DATE | DATETIME | IDENTIFIER | function_call | list | object | "(" expression ")"
363+ primary → NUMBER | FLOAT | STRING | BOOLEAN | DATE | DATETIME | IDENTIFIER | duration | relative_date | function_call | list | object | "(" expression ")"
364364function_call → FUNCTION_NAME "(" ( expression ( "," expression )* )? ")"
365365list → "[" ( expression ( "," expression )* )? "]"
366366object → "{" ( object_entry ( "," object_entry )* )? "}"
367367object_entry → object_key ":" expression
368368object_key → IDENTIFIER | STRING
369+ duration → NUMBER UNIT+
370+ relative_date → duration "ago" | duration "from" "now" | "next" duration | "last" duration
369371```
370372
371373### Core Components
Original file line number Diff line number Diff line change @@ -17,17 +17,19 @@ defmodule Predicator.Parser do
1717 logical_or → logical_and ( "OR" | "||" logical_and )*
1818 logical_and → logical_not ( "AND" | "&&" logical_not )*
1919 logical_not → "NOT" | "!" logical_not | comparison
20- comparison → addition ( ( ">" | "<" | ">=" | "<=" | "=" | "==" | "!=" | "in" | "contains" ) addition )?
20+ comparison → addition ( ( ">" | "<" | ">=" | "<=" | "=" | "==" | "!=" | "===" | "!==" | " in" | "contains" ) addition )?
2121 addition → multiplication ( ( "+" | "-" ) multiplication )*
2222 multiplication → unary ( ( "*" | "/" | "%" ) unary )*
2323 unary → ( "-" | "!" ) unary | postfix
2424 postfix → primary ( "[" expression "]" | "." IDENTIFIER )*
25- primary → NUMBER | FLOAT | STRING | BOOLEAN | DATE | DATETIME | IDENTIFIER | function_call | list | object | "(" expression ")"
25+ primary → NUMBER | FLOAT | STRING | BOOLEAN | DATE | DATETIME | IDENTIFIER | duration | relative_date | function_call | list | object | "(" expression ")"
2626 function_call → FUNCTION_NAME "(" ( expression ( "," expression )* )? ")"
2727 list → "[" ( expression ( "," expression )* )? "]"
2828 object → "{" ( object_entry ( "," object_entry )* )? "}"
2929 object_entry → object_key ":" expression
3030 object_key → IDENTIFIER | STRING
31+ duration → NUMBER UNIT+
32+ relative_date → duration "ago" | duration "from" "now" | "next" duration | "last" duration
3133
3234 ## Examples
3335
You can’t perform that action at this time.
0 commit comments