Commit Diff


commit - 0effda17cb4608aa8263c796eccc1d2505ecf448
commit + d3cc027d5f8b3beb6de0e9dec29facae3c3b7e09
blob - 31e67d71c1fa1d9664e4bee8c21f0649880af6fc
blob + 212e2724c602218fc07ee2de218af959825c2705
--- a68-mode.el
+++ a68-mode.el
@@ -109,24 +109,27 @@
 (defvar a68--smie-grammar
   (smie-prec2->grammar
    (smie-bnf->prec2 '((id)
-                      (inst ("BEGIN" inst "END")
-                            ("(" inst ")")
-                            ("IF" insts "THEN" insts "ELSE" insts "FI")
-                            (id "=" exp)
-                            (id ":=" exp)
-                            (exp))
-                      (insts (insts ";" insts)
-                             (inst))
-                      (exp ("-" exp)
-                           (exp "+" exp)
-                           (exp "*" exp)
-                           (exp "/" exp))
-                      (exps (exps "," exps)
-                            (inst)
-                            (exp)))
-                    '((assoc ";"))
-                    '((assoc ","))
-                    '((assoc "+") (assoc "-") (assoc "*") (assoc "/")))))
+                      (expr ("-" expr)
+                            (expr "+" expr)
+                            (expr "*" expr)
+                            (expr "/" expr)
+                            (expr "=" expr)
+                            (expr "/=" expr)
+                            (expr ":=" expr)
+                            (expr ":=:" expr)
+                            (expr ":/=:" expr)
+                            ("BEGIN" exprs "END")
+                            ("(" exprs ")")
+                            ("IF" exprs "THEN" exprs "FI")
+                            ("IF" exprs "THEN" exprs "ELSE" exprs "FI")
+                            ("CASE" exprs "IN" exprs "ESAC")
+                            ("CASE" exprs "IN" exprs "OUT" exprs "ESAC"))
+                      (exprs (exprs "," exprs)
+                             (exprs ";" exprs)
+                             (expr)))
+                    '((assoc ";" ","))
+                    '((assoc "=" "/=" ":=" ":=:" ":/=:"
+                             "+" "-" "*" "/")))))
 
 (defun a68--smie-rules (kind token)
   (pcase (cons kind token)