Restaurant Database Grammar
(defgrammar
(s -> ((command) (a/an)? (qual)? (resttype)?
(restword) (qualb)? (loc)?)
(makequery (combine (retrieve 'restaurant)
(retrieve 'streetno)
(retrieve 'street)
(retrieve 'rating)
$3 $4 $6 $7)))
(s -> (where can (i/you) (get) (qual)?
(resttype)? food ? (loc)?)
(makequery (combine (retrieve 'restaurant)
(retrieve 'streetno)
(retrieve 'street)
(retrieve 'rating)
$5 $6 $8)))
(command -> (what is) t)
(qual -> ((quality))
(restrictb '>= 'rating $1))
(qualb -> (rated above (number))
(restrictb '>= 'rating $3))
(resttype -> ((kindfood))
(restrict 'foodtype $1))
(loc -> (in (city)) (restrict 'city $2)) )