perm filename DIFFIE[CMP,SYS] blob
sn#132197 filedate 1974-11-17 generic text, type T, neo UTF8
(SPECIAL NN SYMG NUMG UNSPECFOUNDG EQTABLEG INEQTABLEG SEENG
MAXSEENTEMPG MAXASSIGNG MISMATCHG REMOVEMISMATCHMODE
MISMATCHPARAMS REDFORMPATHS)
(DEFPROP DIFFIE
(LAMBDA (CANSYMNUM REDSYM REDNUM DSCR)
(COND
((NULL REDSYM) NN)
(T (SETQ SYMG (CAR CANSYMNUM))
(SETQ NUMG (CDR CANSYMNUM))
(SETQ UNSPECFOUNDG NIL)
(COND
((AND (CNDFORM REDSYM)
(MATCHNODE REDSYM
REDNUM
(SETQ EQTABLEG (CAR DSCR))
(SETQ INEQTABLEG (CADR DSCR))
(CDDR DSCR)))
(COND (UNSPECFOUNDG (SETQ REDSYM (CAR UNSPECFOUNDG))
(SETQ REDNUM (CDR UNSPECFOUNDG))
(SETQ UNSPECFOUNDG NIL))
(T NIL))
((LAMBDA (CANSYM INEQTABLE SEEN)
((LAMBDA (CONCNUM ALTNUM PARAMS EQTABLE)
((LAMBDA (TRUECASEDSCR FALSECASEDSCR)
(MAKECNDFORM (CAR REDSYM)
(CAR REDNUM)
(MATCH (REMOVEDUPS CANSYM
CONCNUM
(CDDR TRUECASEDSCR)
(CAR TRUECASEDSCR)
(CADR TRUECASEDSCR))
(CADDR REDSYM)
(CADDR REDNUM)
TRUECASEDSCR)
(MATCH (REMOVEDUPS CANSYM
ALTNUM
(CDDR FALSECASEDSCR)
(CAR FALSECASEDSCR)
(CADR FALSECASEDSCR))
(CDDDR REDSYM)
(CDDDR REDNUM)
FALSECASEDSCR)))
(PROCESSTRUECASE PARAMS
(CAAR REDSYM)
EQTABLE
(SETQ INEQTABLEG INEQTABLE)
SEEN)
(PROCESSFALSECASE PARAMS
(CAAR REDSYM)
(SETQ EQTABLEG EQTABLE)
(SETQ INEQTABLEG INEQTABLE)
SEEN)))
(BREADTHTODEPTH NUMG
(SETQ MAXSEENTEMPG (SETQ MAXASSIGNG
(CAAR REDNUM)))
(LIST (CONS (CAAR REDNUM) (CAAR REDNUM))
(CONS 0 0)))
(BREADTHTODEPTH NUMG
(SETQ MAXSEENTEMPG (CAAR REDNUM))
(LIST (CONS (CAAR REDNUM) MAXASSIGNG)
(CONS 0 0)))
(GETUPDATEPARAMS (CAR REDSYM) (CAR REDNUM))
EQTABLEG))
SYMG
(CADR DSCR)
(CONS (CAAR REDNUM) SEENG)))
(MISMATCHG (SETQ MISMATCHG NIL) (CONS SYMG NUMG))
((OR (NULL REMOVEMISMATCHMODE)
(ATOM REDSYM)
(NULL MISMATCHPARAMS)
(NOT (EQ (COND ((EQ (CAR REDSYM) (QUOTE FN))
(CAADR REDNUM))
(T (CAR REDNUM)))
(CADAAR MISMATCHPARAMS))))
(MATCHTERMINALNODE REDSYM
REDNUM
(SETQ EQTABLEG (CAR DSCR))
(CADR DSCR)
(CDDR DSCR))
(SETQ MISMATCHG NIL)
(CONS SYMG NUMG))
(T (MISMATCHCONTROLLER CANSYMNUM
REDSYM
REDNUM
DSCR
REDFORMPATHS))))))
EXPR)