Parsing Functions
The parser works by recursive descent, but with the ability to fail and back up and try another path.
(defun loc ()
(let (locname)
(saveptr)
(if (and (eq *word* 'in) (next)
(setq locname (cat 'city))
(next))
(progn
(addrestrict
(list 'equal
(dbaccess 'customer-city)
(kwote locname)))
(success))
(fail) ) ))