(loader '((title |abbrev.lo|)))
(if (not (>= (version) 15.2)) (progn (error 'load 'erricf 'abbrev)))
(add-feature 'abbrev)
(if (not (boundp '#:system:abbrevs-alist)) (progn (defvar #:system:abbrevs-alist ())))
(defvar errsxtacc "mauvaise abreviation {}")
(defvar errsxtclosingacc "} en dehors d'une abreviation {}")
(defvar errnotanabbrev "l'argument n'est pas une abreviation")
(loader'((fentry defabbrev dmsubr)
(entry defabbrev dmsubr)
(mov (cdr a1) a4)
(mov (car a1) a1)
(mov (car a4) a4)
(push a4)
(push (@ 101))
(push 'put-abbrev)
(push (@ 102))
(push 'quote)
(push a1)
(mov '2 a4)
(jmp list)
102
(eval ())
(push a1)
(push (@ 103))
(push 'quote)
(push (& 5))
(mov '2 a4)
(jmp list)
103
(eval ())
(push a1)
(mov '3 a4)
(jmp list)
101
(eval ())
(adjstk '1)
(return)
))
(loader'((fentry put-abbrev subr2)
(entry put-abbrev subr2)
(push a2)
(push a1)
101
(btsymb (& 0) 103)
(mov (& 0) a3)
(mov 'errsym a2)
(mov 'put-abbrev a1)
(jcall error)
(mov a1 (& 0))
(bra 101)
103
(btsymb (& 1) 104)
(mov (& 1) a3)
(mov 'errsym a2)
(mov 'put-abbrev a1)
(jcall error)
(mov a1 (& 1))
(bra 103)
104
(mov (cvalq #:system:abbrevs-alist) a2)
(mov (& 0) a1)
(jcall assq)
(bfcons a1 105)
(mov (& 1) (cdr a1))
(bra 106)
105
(mov (cvalq #:system:abbrevs-alist) a3)
(mov (& 1) a2)
(mov (& 0) a1)
(jcall acons)
(mov a1 (cvalq #:system:abbrevs-alist))
106
(mov (& 0) a1)
(adjstk '2)
(return)
))
(loader'((fentry rem-abbrev subr1)
(entry rem-abbrev subr1)
(push a1)
101
(btsymb (& 0) 102)
(mov (& 0) a3)
(mov 'errsym a2)
(mov 'rem-abbrev a1)
(jcall error)
(mov a1 (& 0))
(bra 101)
102
(mov (cvalq #:system:abbrevs-alist) a2)
(mov (& 0) a1)
(jcall assq)
(mov (cvalq #:system:abbrevs-alist) a2)
(jcall delq)
(mov a1 (cvalq #:system:abbrevs-alist))
(mov (& 0) a1)
(adjstk '1)
(return)
))
(loader'((fentry get-abbrev subr1)
(entry get-abbrev subr1)
(push a1)
101
(bfsymb (& 0) 103)
(mov (& 0) a1)
(jcall abbrevp)
(bfnil a1 102)
103
(mov (& 0) a3)
(mov (cvalq errnotanabbrev) a2)
(mov 'get-abbrev a1)
(jcall error)
(mov a1 (& 0))
(bra 101)
102
(mov (cvalq #:system:abbrevs-alist) a2)
(mov (& 0) a1)
(adjstk '1)
(jmp cassq)
))
(loader'((fentry abbrevp subr1)
(entry abbrevp subr1)
(mov (cvalq #:system:abbrevs-alist) a2)
(jcall assq)
(bfcons a1 101)
(mov 't a1)
(return)
101
(mov nil a1)
(return)
))
(loader'((fentry has-an-abbrev subr1)
(entry has-an-abbrev subr1)
(mov (cvalq #:system:abbrevs-alist) a2)
(jcall rassq)
(mov (car a1) a1)
(return)
))
(dmc |}| () (error '|}| errsxtclosingacc ()))
(dmc |{| () (let ((l (read-delimited-list 125))) (until (and (consp l) (symbolp (car l)) (null (cdr l))) (setq l (error '|{| errsxtacc l))) (setq l (get-abbrev (car l))) (reread (if l (explode l) '(124 124)))) (with ((typecn 58 'cpkgc)) (read)))
(if (not (boundp '#:system:print-with-abbrev-flag)) (progn (defvar #:system:print-with-abbrev-flag t)))
(loader'((fentry #:symbol:prin subr1)
(entry #:symbol:prin subr1)
(push a1)
(btnil (cvalq #:system:print-with-abbrev-flag) 101)
(mov (pkgc a1) a1)
(jcall has-an-abbrev)
(btnil a1 101)
(push nil)
(push (cvalq #:system:print-for-read))
(mov (& 1) (cvalq #:system:print-for-read))
(push '1)
(push '(#:system:print-for-read))
(push 'lambda)
(push llink)
(push dlink)
(push cbindn)
(stack dlink)
(mov '|{| a1)
(jcall pratom)
(mov (& 1) dlink)
(mov (& 6) (cvalq #:system:print-for-read))
(adjstk '8)
(mov (& 0) a1)
(mov (pkgc a1) a1)
(jcall has-an-abbrev)
(jcall pratom)
(push nil)
(push (cvalq #:system:print-for-read))
(mov (& 1) (cvalq #:system:print-for-read))
(push '1)
(push '(#:system:print-for-read))
(push 'lambda)
(push llink)
(push dlink)
(push cbindn)
(stack dlink)
(mov '|}:| a1)
(jcall pratom)
(mov (& 1) dlink)
(mov (& 6) (cvalq #:system:print-for-read))
(adjstk '8)
(push nil)
(push (cvalq #:system:print-package-flag))
(mov (& 1) (cvalq #:system:print-package-flag))
(push '1)
(push '(#:system:print-package-flag))
(push 'lambda)
(push llink)
(push dlink)
(push cbindn)
(stack dlink)
(mov (& 8) a1)
(jcall pratom)
(mov (& 1) dlink)
(mov (& 6) (cvalq #:system:print-package-flag))
(adjstk '9)
(return)
101
(mov (& 0) a1)
(adjstk '1)
(jmp pratom)
))
(loader '((end)))