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)))