Function: ccl-compile-loop

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

Signature

(ccl-compile-loop CMD)

Documentation

Compile LOOP statement.

Source Code

;; Defined in /usr/src/emacs/lisp/international/ccl.el.gz
(defun ccl-compile-loop (cmd)
  "Compile LOOP statement."
  (if (< (length cmd) 2)
      (error "CCL: Invalid number of arguments: %s" cmd))
  (let* ((ccl-loop-head ccl-current-ic)
	 (ccl-breaks nil)
	 unconditional-jump)
    (setq cmd (cdr cmd))
    (if cmd
	(progn
	  (setq unconditional-jump t)
	  (while cmd
	    (setq unconditional-jump
		  (and (ccl-compile-1 (car cmd)) unconditional-jump))
	    (setq cmd (cdr cmd)))
	  (if (not ccl-breaks)
	      unconditional-jump
	    ;; Embed jump address for break statements encountered in
	    ;; this loop.
	    (while ccl-breaks
	      (ccl-embed-current-address (car ccl-breaks))
	      (setq ccl-breaks (cdr ccl-breaks))))
	  nil))))