; *sent* = remainder of sentence
; *word* = current word
; *savesent* = saved positions for backup
; initialize for a new sentence
(defun init-sent (sent) (setq *sent* sent)
(setword))
; set *word* for current position
(defun setword () (setq *word* (car *sent*)))
; move to next word
(defun next () (pop *sent*) (setword) t)
; save the current position
(defun saveptr () (push *sent* *savesent*))
; pop the stack on success
(defun success () (pop *savesent*) t)
; restore position on failure, return nil
(defun fail ()
(setq *sent* (pop *savesent*))
(setword) nil)
Contents    Page-10    Prev    Next    Page+10    Index