| 12345678910111213141516171819202122232425262728293031323334 |
- 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 { p for p in products if p.startswith(word + " ") }
- def GetWordWildcard(self, word):
- return { 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('')
|