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) ) ))