Restaurant Database Grammar
; (gramcom grammar)
(def grammar
'((command -> (show me) true)
(command -> (what is) true)
(qual -> ((quality))
(restrictb '>= 'rating $1))
(qualb -> (rated above (number))
(restrictb '>= 'rating $3))
(resttype -> ((kindfood))
(restrict 'foodtype $1))
(loc -> (in (city)) (restrict 'city $2))
(loc -> (in (county)) (restrict 'county $2))
(s -> ((command) (a/an)? (qual)? (resttype)?
(restword) (qualb)? (loc)?)
(retrieve 'restaurant) )
(s -> (how many (qual)? (resttype)? food ?
(restword) (loc)?)
(do (retrieve 'restaurant)
(postpr '(length (quote $$)))) )