Function: ccl-compile-set

ccl-compile-set is a byte-compiled function defined in ccl.el.gz.

Signature

(ccl-compile-set CMD)

Documentation

Compile SET statement.

Source Code

;; Defined in /usr/src/emacs/lisp/international/ccl.el.gz
(defun ccl-compile-set (cmd)
  "Compile SET statement."
  (let ((rrr (ccl-check-register (car cmd) cmd))
	(right (nth 2 cmd)))
    (cond ((listp right)
	   ;; CMD has the form `(RRR = (XXX OP YYY))'.
	   (ccl-compile-expression rrr right))

	  ((integerp right)
	   ;; CMD has the form `(RRR = integer)'.
	   (if (and (<= right ccl-max-short-const)
		    (>= right ccl-min-short-const))
	       (ccl-embed-code 'set-short-const rrr right)
	     (ccl-embed-code 'set-const rrr 0)
	     (ccl-embed-data right)))

	  (t
	   ;; CMD has the form `(RRR = rrr [ array ])'.
	   (ccl-check-register right cmd)
	   (let ((ary (nth 3 cmd)))
	     (if (vectorp ary)
		 (let ((i 0) (len (length ary)))
		   (ccl-embed-code 'set-array rrr len right)
		   (while (< i len)
		     (ccl-embed-data (aref ary i))
		     (setq i (1+ i))))
	       (ccl-embed-code 'set-register rrr 0 right))))))
  nil)