aboutsummaryrefslogtreecommitdiffstats
path: root/example/query.md
diff options
context:
space:
mode:
authorGravatar Peter McGoron 2021-07-25 23:50:50 -0400
committerGravatar - 2021-07-26 22:55:45 -0400
commit04063088250ff17e7f5f5314b6c06ddd0124769d (patch)
tree3e6a4d63c177d1b77161a52f5830ded2f76c5762 /example/query.md
parentmove SQL schema setup to variable (diff)
start query parser
Diffstat (limited to 'example/query.md')
-rw-r--r--example/query.md14
1 files changed, 14 insertions, 0 deletions
diff --git a/example/query.md b/example/query.md
new file mode 100644
index 0000000..ada8638
--- /dev/null
+++ b/example/query.md
@@ -0,0 +1,14 @@
+Queries are passed to the command line, using the keywords OR
+and NOT. Grouping is done using [ and ] (these are not reserved by
+the shell). Two tildes (`~~`) at the beginning of a string denote
+a glob match on tags. A tilde and a dash (`~-`) denote a glob match
+on titles.
+
+The grammar is implemented as a recursive descent parser.
+
+```
+e1 ::= e2 "OR" e1 | e2;
+e2 ::= e3 e2 | e3;
+e3 ::= "NOT" e4 | e4;
+e4 ::= TAG | "[" e1 "]";
+```