;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. #@54 Repeatedly evaluate BODY while CONDITION is non-nil. (defalias 'loop-while '(macro . #[(condition &rest body) "\302\303\304\302\305 BBEE\207" [condition body catch 'loop-break while 'loop-continue] 7 (#$ . 87)])) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put loop-while lisp-indent-function defun put edebug-form-spec (form &rest form)] 5) #@65 Evaluate BODY, then repeatedly BODY while CONDITION is non-nil. (defalias 'loop-do-while '(macro . #[(condition &rest body) "\303\304!\305\306\307\305\310 BB\311\n\305\312 BBEEE)\207" [is-first-iteration-var body condition make-symbol "first-iteration-p" catch 'loop-break progn 'loop-continue while 'loop-continue] 9 (#$ . 454)])) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put loop-do-while lisp-indent-function defun put edebug-form-spec (form &rest form)] 5) #@54 Repeatedly evaluate BODY until CONDITION is non-nil. (defalias 'loop-until '(macro . #[(condition &rest body) "\302\303D BB\207" [condition body loop-while not] 3 (#$ . 943)])) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put loop-until lisp-indent-function defun put edebug-form-spec (form &rest form)] 5) #@68 For every item in LIST, evaluate BODY with VAR bound to that item. (defalias 'loop-for-each '(macro . #[(var list &rest body) "\304\305!\306\307\310 D\nCD\311\306\312\313\n\314DE\313\315DE BBBBEEE)\207" [list-var list var body make-symbol "list" catch 'loop-break let while 'loop-continue setq car cdr] 13 (#$ . 1274)])) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put loop-for-each lisp-indent-function defun put edebug-form-spec (symbolp form &rest form)] 5) #@60 Return non-nil if point is on the last line in the buffer. (defalias 'loop--last-line-p #[nil "\300\301!\207" [looking-at ".*\\'"] 2 (#$ . 1765)]) #@46 Return the current line that contains point. (defalias 'loop--current-line #[nil "\212\302 \210`\303\210`\211{+\207" [line-end line-start beginning-of-line nil] 3 (#$ . 1918)]) #@169 Execute BODY for every line in the buffer. Point is placed at the start of the line on each iteration. Inside BODY, `it' is bound to the contents of the current line. (defalias 'loop-for-each-line '(macro . #[(&rest body) "\301\302\303\304\305\306\302\307\301\310\311BBDE\312BBB\302\313\310\314BBE\257D\207" [body save-excursion catch 'loop-break (goto-char (point-min)) while (not (loop--last-line-p)) 'loop-continue let ((it (loop--current-line))) ((forward-line)) 'loop-continue ((it (loop--current-line)))] 12 (#$ . 2106)])) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put loop-for-each-line lisp-indent-function 0 put edebug-form-spec (&rest form)] 5) #@145 Terminate evaluation of a `loop-while', `loop-do-while', or `loop-for-each' block. If there are nested loops, breaks out of the innermost loop. (defalias 'loop-break #[nil "\300\301\302\"\207" [throw loop-break nil] 3 (#$ . 2792)]) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put loop-break speed -1 put byte-optimizer byte-compile-inline-expand] 5) #@180 Skip the rest of the current `loop-while', `loop-do-while', or `loop-for-each' block and continue to the next iteration. If there are nested loops, applies to the innermost loop. (defalias 'loop-continue #[nil "\300\301\302\"\207" [throw loop-continue nil] 3 (#$ . 3167)]) #@125 Terminate evaluation of a `loop-while', `loop-do-while', or `loop-for-each' block. The return value from the loop is VALUE. (defalias 'loop-return #[(value) "\301\302\"\207" [value throw loop-break] 3 (#$ . 3447)]) (provide 'loop)