[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[no subject]



(DEFUN MY-SFA-HANDLER (SELF OP DATA)
  (CASEQ OP
    ((WHICH-OPERATIONS) '(TYI TYIPEEK))
    ((TYI) (TYI TYI))
    ((TYIPEEK) (TYIPEEK () TYI))
    (T (ERROR "Illegal SFA operation" `(SFA-CALL ,SELF ,OP ,DATA)))))
(SETQ MY-SFA (SFA-CREATE 'MY-SFA-HANDLER 0. "My SFA"))
(READ MY-SFA)`(TYO = ,TYO)
;(#SFA-|My SFA|-70676 UNTYI 41.) ATTEMPT TO INVOKE SFA ON AN UNSUPPORTED OPERATION  -- +INTERNAL-SFA-CALL

Why does Lisp need to do the UNTYI here? Can't it be using my builtin TYIPEEK
operation? If you're going to insist that I handle an UNTYI call, I think I
ought to be given an UNTYI primitive to push things back on to the TYI input
stream. It's not at all fair to demand this handler to hold onto the untyi'd 
character, as if a read occurs later on another SFA trying to indirect through
TYI as well, it will lose.

-kmp