diff options
author | Tej Chajed <tchajed@mit.edu> | 2018-08-17 11:50:57 -0400 |
---|---|---|
committer | Tej Chajed <tchajed@mit.edu> | 2018-08-17 11:50:57 -0400 |
commit | 5c27e4a9398cb366e087594dd1c72e4c084fae01 (patch) | |
tree | cf24865ec0299070cf7d24af6a81cec9e0df98a7 | |
parent | b7f17b7ca09276be5cd29263bd5574fdd6fa4d2c (diff) |
Support the Variant vernacular
Syntactically looks much like an Inductive, though it is non-recursive
so "where" (mutual recursion) is not supported.
-rw-r--r-- | coq/coq-smie.el | 2 | ||||
-rw-r--r-- | coq/coq-syntax.el | 1 | ||||
-rwxr-xr-x | coq/coqtags | 4 |
3 files changed, 4 insertions, 3 deletions
diff --git a/coq/coq-smie.el b/coq/coq-smie.el index 2b5e59e9..59d84e36 100644 --- a/coq/coq-smie.el +++ b/coq/coq-smie.el @@ -505,7 +505,7 @@ The point should be at the beginning of the command name." ":= with" (goto-char p) ":= module"))) - ((member corresp '("Inductive" "CoInductive")) ":= inductive") + ((member corresp '("Inductive" "CoInductive" "Variant")) ":= inductive") ((equal corresp "let") ":= let") ((equal corresp "where") ":= inductive") ;; inductive or fixpoint, nevermind ((or (looking-back "{" nil)) ":= record") diff --git a/coq/coq-syntax.el b/coq/coq-syntax.el index 91ef4083..c55c93fc 100644 --- a/coq/coq-syntax.el +++ b/coq/coq-syntax.el @@ -503,6 +503,7 @@ so for the following reasons: ("Scheme Induction" "sci" "Scheme @{name} := Induction for # Sort #." t) ("Scheme Minimality" "scm" "Scheme @{name} := Minimality for # Sort #." t) ("Structure" "str" "Structure # : # := {\n# : #;\n# : # }" t "Structure") + ("Variant" "varv" "Variant # : # := # : #." t "Variant") ) "Coq definition keywords information list. See `coq-syntax-db' for syntax. " ) diff --git a/coq/coqtags b/coq/coqtags index 50d4a2f5..6a6e5a64 100755 --- a/coq/coqtags +++ b/coq/coqtags @@ -59,10 +59,10 @@ while(<>) elsif($stmt=~/^([ \t]*((Axiom)|(Hypothesis)|(Parameter)|(Variable))\s+[\w\']+)/) { adddecs($stmt,$1); } - elsif($stmt=~/^([ \t]*((Definition)|(Fixpoint)|(Inductive)|(CoInductive)|(Record))\s+([\w\']+))/) + elsif($stmt=~/^([ \t]*((Definition)|(Fixpoint)|(Inductive)|(CoInductive)|(Record)|(Variant))\s+([\w\']+))/) { $tagstring.=$1."\177".$8."\001".$lp.",".$cp."\n"; - if($2 eq "Inductive" || $2 eq "CoInductive"){ + if($2 eq "Inductive" || $2 eq "CoInductive" || $2 eq "Variant"){ add_constructors($stmt); } elsif($2 eq "Record"){ |