Function: sh-smie--sh-keyword-in-p

sh-smie--sh-keyword-in-p is a byte-compiled function defined in sh-script.el.gz.

Signature

(sh-smie--sh-keyword-in-p)

Documentation

Assuming we're looking at "in", return non-nil if it's a keyword.

Does not preserve point.

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/sh-script.el.gz
(defun sh-smie--sh-keyword-in-p ()
  "Assuming we're looking at \"in\", return non-nil if it's a keyword.
Does not preserve point."
  (let ((forward-sexp-function nil)
        (words nil)                     ;We've seen words.
        (newline nil)                   ;We've seen newlines after the words.
        (res nil)
        prev)
    (while (not res)
      (setq prev (funcall smie-backward-token-function))
      (cond
       ((zerop (length prev))
	(cond
	 (newline (cl-assert words) (setq res 'word))
	 ((bobp) (setq res 'word))
	 (t
          (setq words t)
          (condition-case nil
              (forward-sexp -1)
            (scan-error (setq res 'unknown))))))
       ((equal prev ";")
        (if words (setq newline t)
          (setq res 'keyword)))
       ((member prev '("case" "for" "select")) (setq res 'keyword))
       ((assoc prev smie-grammar) (setq res 'word))
       (t
        (if newline
            (progn (cl-assert words) (setq res 'word))
          (setq words t)))))
    (eq res 'keyword)))