Documentation from ColinTheCat/Expression/doc |
→Example: Remove ColinTheCat/ prefix |
||
| Line 27: | Line 27: | ||
<pre> | <pre> | ||
{{#invoke: | {{#invoke:Expression|Eval | ||
| 2 * (1 + min(10, x)) | | 2 * (1 + min(10, x)) | ||
| {"x": 2} | | {"x": 2} | ||
Latest revision as of 23:00, 12 February 2024
EBNF Grammar
For a graphical representation, take a look at this website.
Expr ::= Add
Add ::= Mod (PlusMinus Add)?
Mod ::= Mul ('%' Mul)?
Mul ::= Pow (MulDiv Mul)?
Pow ::= Minus ('^' Minus)?
Minus ::= '-'? Call
Call ::= Var | Name ('(' Args ')')?
Var ::= Name | Num | Str | '(' Expr ')'
Args ::= Expr (',' Expr)?
PlusMinus ::= [+-] /* ws: explicit */
MulDiv ::= [*/] /* ws: explicit */
Num ::= ('0' | [1-9]+) ('.' [0-9]+)? /* ws: explicit */
Str ::= '"' [^"]* '"' /* ws: explicit */
Name ::= [a-z] [a-z0-9_]* /* ws: explicit */
Example
{{#invoke:Expression|Eval
| 2 * (1 + min(10, x))
| {"x": 2}
}}
2 * (1 + min(10, x)) (x=2) evaluates to
6