diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-01-25 18:09:51 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-01-25 18:09:51 +0900 |
| commit | 48d9ec8aef4c3e7f3574346a6cf6a1fa3d725561 (patch) | |
| tree | 37ab7baf3d4008497c72dc57a60c7c77b5153fd4 /docs | |
| parent | 20ff09460371b07d7e9683757657a5a3ead005a8 (diff) | |
| download | zgjq-48d9ec8aef4c3e7f3574346a6cf6a1fa3d725561.tar.gz zgjq-48d9ec8aef4c3e7f3574346a6cf6a1fa3d725561.tar.zst zgjq-48d9ec8aef4c3e7f3574346a6cf6a1fa3d725561.zip | |
refactor term parsing
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/jq_grammar.md | 81 |
1 files changed, 80 insertions, 1 deletions
diff --git a/docs/jq_grammar.md b/docs/jq_grammar.md index 339fac8..5405e95 100644 --- a/docs/jq_grammar.md +++ b/docs/jq_grammar.md @@ -21,7 +21,86 @@ * `# ...`: Additional constraints -## Grammar +## Implemented Grammar + +``` +program: + body + +body: + query + +query: + query2 + +query2: + query3 '|' query3 + query3 + +query3: + expr ',' expr + expr + +expr: + expr2 '//' expr2 + expr2 + +expr2: + expr3 '=' expr3 + expr3 '|=' expr3 + expr3 '//=' expr3 + expr3 '+=' expr3 + expr3 '-=' expr3 + expr3 '*=' expr3 + expr3 '/=' expr3 + expr3 '%=' expr3 + expr3 + +expr3: + expr4 'or' expr4 + expr4 + +expr4: + expr5 'and' expr5 + expr5 + +expr5: + expr6 '==' expr6 + expr6 '!=' expr6 + expr6 '<' expr6 + expr6 '>' expr6 + expr6 '<=' expr6 + expr6 '>=' expr6 + expr6 + +expr6: + expr7 '+' expr7 + expr7 '-' expr7 + expr7 + +expr7: + term '*' term + term '/' term + term '%' term + term + +term: + primary { suffix }* + +suffix: + '[' query ']' + +primary: + 'null' + 'true' + 'false' + NUMBER + '.' + FIELD +``` + + +## Complete Grammar ``` program: |
