Function: opascal-else-start
opascal-else-start is a byte-compiled function defined in
opascal.el.gz.
Signature
(opascal-else-start FROM-ELSE)
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/opascal.el.gz
(defun opascal-else-start (from-else)
;; Returns the token of the if or case statement.
(let ((token from-else)
(semicolon-count 0))
(catch 'done
(opascal--scan-non-whitespace-backward token nil
;; Skip over nested groups.
('close-group (setq token (opascal-group-start token)))
;; Skip over any nested blocks.
((opascal--in opascal-end-block-statements)
(setq token (opascal-block-start token)))
('semicolon
;; Semicolon means we are looking for an enclosing if, unless we
;; are in a case statement. Keep counts of the semicolons and decide
;; later.
(setq semicolon-count (1+ semicolon-count)))
((and 'if (guard (= semicolon-count 0)))
;; We only can match an if when there have been no intervening
;; semicolons.
(throw 'done token))
('case
;; We have hit a case statement start.
(throw 'done token)))
;; No if or case statement found.
nil)))