4.4BSD/usr/src/contrib/emacs-18.57/lisp/backquote.elc


(provide (quote backquote))

(defmacro bq-push (v l) "Pushes evaluated first form onto second unevaluated object
a list-value atom" (byte-code "ÂÃ	EE‡" [l v setq cons] 5))

(defmacro bq-caar (l) (byte-code "ÁÁDD‡" [l car] 3))

(defmacro bq-cadr (l) (byte-code "ÁÂDD‡" [l car cdr] 3))

(defmacro bq-cdar (l) (byte-code "ÁÂDD‡" [l cdr car] 3))

(defconst backquote-unquote (quote (\,)) "\
*A list of all objects that stimulate unquoting in `.  Memq test.")

(defconst backquote-splice (quote (\,@)) "\
*A list of all objects that stimulate splicing in `.  Memq test.")

(defmacro \` (form) "(` FORM) Expands to a form that will generate FORM.
FORM is `almost quoted' -- see backquote.el for a description." (byte-code "Á!‡" [form bq-make-maker] 2))

(defun bq-make-maker (form) "\
Given one argument, a `mostly quoted' object, produces a maker.
See backquote.el for details" (byte-code "ÄÈÈÄÉÊË
!\"ˆ…6Ì=ƒD‚6GÍUƒ3ÎÏ\"A@\"‚6B,‡" [tailmaker qc ec state nil form bq-singles t 0 mapcar bq-iterative-list-builder reverse quote 1 funcall assq] 6))

(defconst bq-singles (quote ((quote bq-quotecar) (append car) (list bq-make-list) (cons bq-id))))

(defun bq-id (x) (byte-code "‡" [x] 1))

(defun bq-quotecar (x) (byte-code "Á@D‡" [x quote] 2))

(defun bq-make-list (x) (byte-code "ÁB‡" [x list] 2))

(defun bq-iterative-list-builder (form) "\
Called by bq-make-maker.  Adds a new item form to tailmaker, 
changing state if need be, so tailmaker and state constitute a recipie
for making the list so far." (byte-code "É!ƒÊË	
\"A@\"‚j@>ƒ'ÊË	\"A@A@\"‚j@
>ƒ=ÊË	\"A@A@\"‚jÌ!<…M@Í=ƒ_ÊË	
\"A@A@\"‚iÊË	\"A@\")‡" [form state bq-quotefns backquote-unquote bq-evalfns backquote-splice bq-splicefns t newform atom funcall assq bq-make-maker quote] 14))

(defconst bq-splicefns (quote ((nil bq-splicenil) (append bq-spliceappend) (list bq-splicelist) (quote bq-splicequote) (cons bq-splicecons))))

(defconst bq-evalfns (quote ((nil bq-evalnil) (append bq-evalappend) (list bq-evallist) (quote bq-evalquote) (cons bq-evalcons))))

(defconst bq-quotefns (quote ((nil bq-quotenil) (append bq-quoteappend) (list bq-quotelist) (quote bq-quotequote) (cons bq-quotecons))))

(defun bq-quotecons (form) (byte-code "@<…@@Ã=ƒÃ	@A@DDA@D‰‚,ÄÃ	D@EA@D‰ˆÅ‰‡" [tailmaker form state quote list append] 3))

(defun bq-quotequote (form) (byte-code "	B‰‡" [tailmaker form] 2))

(defun bq-quotelist (form) (byte-code "Â	DB‰‡" [tailmaker form quote] 2))

(defun bq-quoteappend (form) (byte-code "<…@<…@@Ã=ƒ!Ä@A	@A@B\"‚)Ã	CDB‰‡" [tailmaker form t quote rplaca] 4))

(defun bq-quotenil (form) (byte-code "	C‰ˆÃ‰‡" [tailmaker form state quote] 2))

(defun bq-evalcons (form) (byte-code "Ã	@EA@D‰ˆÄ‰‡" [tailmaker form state list append] 3))

(defun bq-evalquote (form) (byte-code "GÄWƒ	ÅÆ\"B‰ˆÇ‰‚#Ç	DÈDD‰ˆÉ‰‡" [tailmaker form state t 3 mapcar (lambda (x) (byte-code "ÁD‡" [x quote] 2)) list quote append] 4))

(defun bq-evallist (form) (byte-code "	B‰‡" [tailmaker form] 2))

(defun bq-evalappend (form) (byte-code "<…@<…@@Ä=ƒÅ@	@AB\"‚9GÆUƒ2	B‰ˆÇ‰‚9Ä	DB‰‡" [tailmaker form state t list rplacd 1 cons] 4))

(defun bq-evalnil (form) (byte-code "	C‰ˆÃ‰‡" [tailmaker form state list] 2))

(defun bq-splicecons (form) (byte-code "	Ã@A@ED‰ˆÄ‰‡" [tailmaker form state cons append] 4))

(defun bq-splicequote (form) (byte-code "	ÃCDD‰ˆÄ‰‡" [tailmaker form state quote append] 3))

(defun bq-splicelist (form) (byte-code "	ÃBD‰ˆÄ‰‡" [tailmaker form state list append] 3))

(defun bq-spliceappend (form) (byte-code "	B‰‡" [tailmaker form] 2))

(defun bq-splicenil (form) (byte-code "Ɉ
C‰‡" [state tailmaker form append] 2))