aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Tej Chajed <tchajed@mit.edu>2018-08-17 11:50:57 -0400
committerGravatar Tej Chajed <tchajed@mit.edu>2018-08-17 11:50:57 -0400
commit5c27e4a9398cb366e087594dd1c72e4c084fae01 (patch)
treecf24865ec0299070cf7d24af6a81cec9e0df98a7
parentb7f17b7ca09276be5cd29263bd5574fdd6fa4d2c (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.el2
-rw-r--r--coq/coq-syntax.el1
-rwxr-xr-xcoq/coqtags4
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"){