diff options
Diffstat (limited to 'examples/searchParserAppDemo.py')
-rw-r--r-- | examples/searchParserAppDemo.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/examples/searchParserAppDemo.py b/examples/searchParserAppDemo.py new file mode 100644 index 0000000..259e0e3 --- /dev/null +++ b/examples/searchParserAppDemo.py @@ -0,0 +1,34 @@ +from searchparser import SearchQueryParser
+
+products = [ "grape juice", "grape jelly", "orange juice", "orange jujubees",
+ "strawberry jam", "prune juice", "prune butter", "orange marmalade",
+ "grapefruit juice" ]
+
+class FruitSearchParser(SearchQueryParser):
+ def GetWord(self, word):
+ return set( p for p in products if p.startswith(word + " ") )
+
+ def GetWordWildcard(self, word):
+ return set( p for p in products if p.startswith(word[:-1]) )
+
+ def GetQuotes(self, search_string, tmp_result):
+ result = Set()
+ # I have no idea how to use this feature...
+ return result
+
+ def GetNot(self, not_set):
+ return set( products ) - not_set
+
+
+parser = FruitSearchParser()
+
+tests = """\
+ grape or orange
+ grape*
+ not(grape*)
+ prune and grape""".splitlines()
+
+for t in tests:
+ print(t.strip())
+ print(parser.Parse(t))
+ print('')
\ No newline at end of file |