branch: externals/a68-mode commit 48c8f7f647ae993528469092281166540e2ac241 Author: Jose E. Marchesi <jose.march...@oracle.com> Commit: Jose E. Marchesi <jose.march...@oracle.com>
Group SMIE functions together --- a68-mode.el | 65 ++++++++++++++++++++++++++++++------------------------------- 1 file changed, 32 insertions(+), 33 deletions(-) diff --git a/a68-mode.el b/a68-mode.el index 5156833780..f0f0725061 100644 --- a/a68-mode.el +++ b/a68-mode.el @@ -327,7 +327,7 @@ (setq count (1- count ))) res)) -;;;; UPPER stropping +;;;; SMIE grammar (defvar a68--smie-grammar-upper (smie-prec2->grammar @@ -393,38 +393,6 @@ '((assoc "=" "/" ":=" ":=:" ":/=:" "+" "-" "*" "/"))))) -(defun a68--smie-rules-upper (kind token) - (pcase (cons kind token) - (`(:elem . basic) a68-indent-level) - ;; (`(,_ . ",") (smie-rule-separator kind)) - (`(,_ . ",") (smie-rule-separator kind)) - (`(,_ . ";") (when (smie-rule-parent-p) - (smie-rule-parent))) - (`(:after . ":=") a68-indent-level) - (`(:after . "=") a68-indent-level) - (`(:before . "BEGIN") - (when (or (smie-rule-hanging-p) - (or - (and (or (smie-rule-parent-p "PROC") - (smie-rule-parent-p "OP")) - (smie-rule-prev-p ":")) - (smie-rule-parent-p "PROGRAM"))) - (smie-rule-parent))) - (`(:before . "THEN") - (when (or (smie-rule-hanging-p) - (smie-rule-parent-p "IF")) - (smie-rule-parent))) - (`(:before . "(") - (when (smie-rule-hanging-p) - (smie-rule-parent))) - (`(:before . "IF") - (and (not (smie-rule-bolp)) - (smie-rule-prev-p "ELSE") - (smie-rule-parent))))) - - -;;;; SUPPER stropping. - (defvar a68--smie-grammar-supper (smie-prec2->grammar (smie-bnf->prec2 '((id) @@ -489,6 +457,37 @@ '((assoc "=" "/" ":=" ":=:" ":/=:" "+" "-" "*" "/"))))) +;;;; SMIE indentation rules. + +(defun a68--smie-rules-upper (kind token) + (pcase (cons kind token) + (`(:elem . basic) a68-indent-level) + ;; (`(,_ . ",") (smie-rule-separator kind)) + (`(,_ . ",") (smie-rule-separator kind)) + (`(,_ . ";") (when (smie-rule-parent-p) + (smie-rule-parent))) + (`(:after . ":=") a68-indent-level) + (`(:after . "=") a68-indent-level) + (`(:before . "BEGIN") + (when (or (smie-rule-hanging-p) + (or + (and (or (smie-rule-parent-p "PROC") + (smie-rule-parent-p "OP")) + (smie-rule-prev-p ":")) + (smie-rule-parent-p "PROGRAM"))) + (smie-rule-parent))) + (`(:before . "THEN") + (when (or (smie-rule-hanging-p) + (smie-rule-parent-p "IF")) + (smie-rule-parent))) + (`(:before . "(") + (when (smie-rule-hanging-p) + (smie-rule-parent))) + (`(:before . "IF") + (and (not (smie-rule-bolp)) + (smie-rule-prev-p "ELSE") + (smie-rule-parent))))) + (defun a68--smie-rules-supper (kind token) (pcase (cons kind token) (`(:elem . basic) a68-indent-level)