From 48d9ec8aef4c3e7f3574346a6cf6a1fa3d725561 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 25 Jan 2026 18:09:51 +0900 Subject: refactor term parsing --- docs/jq_grammar.md | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 80 insertions(+), 1 deletion(-) (limited to 'docs/jq_grammar.md') 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: -- cgit v1.3-1-g0d28