parsing.md (943B)
Parse order
-----------
```
expr
conditional
pipe
logic
compare
range
add
mul
pow
unary
postfix
primary
```
```yaml
parseExpr
calls parseConditional
parseConditional
parses parsePipe
optionally parses: if parseExpr else parseExpr
parsePipe
parses parseLogic
loops pipe stages: | expr or | @(expr)
parseLogic
parses parseCompare
loops and / or
parseCompare
parses parseRange
loops == != < <= > >=
parseRange
parses parseAdd
optionally parses .. parseAdd
parseAdd
parses parseMul
loops + -
parseMul
parses parsePow
loops * /
parsePow
parses parseUnary
loops or recurses on ^
parseUnary
handles - and #
handles reduce/scan prefixes like +/xs, +\xs
otherwise calls parsePostfix
parsePostfix
parses parsePrimary
loops:
call (...)
selector [...]
field .name
parsePrimary
parses:
literal
path
subject .
array [...]
record Type(...)
grouped (expr)
```