From a0ccbb8461b68eb4a61ba78e0efced94423e93c7 Mon Sep 17 00:00:00 2001 From: Rustan Leino Date: Tue, 19 Apr 2011 16:48:32 -0700 Subject: Dafny: added type "nat" --- Util/Emacs/dafny-mode.el | 2 +- Util/VS2010/Dafny/DafnyLanguageService/Grammar.cs | 7 ++++--- Util/VS2010/DafnyExtension/DafnyExtension/TokenTagger.cs | 1 + Util/latex/dafny.sty | 2 +- Util/vim/syntax/dafny.vim | 2 +- 5 files changed, 8 insertions(+), 6 deletions(-) (limited to 'Util') diff --git a/Util/Emacs/dafny-mode.el b/Util/Emacs/dafny-mode.el index a0f5f34c..818d7dc3 100644 --- a/Util/Emacs/dafny-mode.el +++ b/Util/Emacs/dafny-mode.el @@ -39,7 +39,7 @@ "assert" "assume" "break" "call" "choose" "then" "else" "havoc" "if" "label" "return" "while" "print" "old" "forall" "exists" "new" "foreach" "in" "this" "fresh" "allocated" "use" "match" "case" "false" "true" "null")) . font-lock-keyword-face) - `(,(dafny-regexp-opt '("array" "array2" "array3" "bool" "int" "object" "set" "seq")) . font-lock-type-face) + `(,(dafny-regexp-opt '("array" "array2" "array3" "bool" "nat" "int" "object" "set" "seq")) . font-lock-type-face) ) "Minimal highlighting for Dafny mode") diff --git a/Util/VS2010/Dafny/DafnyLanguageService/Grammar.cs b/Util/VS2010/Dafny/DafnyLanguageService/Grammar.cs index 80082ec9..3302d368 100644 --- a/Util/VS2010/Dafny/DafnyLanguageService/Grammar.cs +++ b/Util/VS2010/Dafny/DafnyLanguageService/Grammar.cs @@ -22,7 +22,7 @@ namespace Demo "call", "if", "then", "else", "while", "invariant", "break", "label", "return", "foreach", "havoc", "print", "use", "returns", "requires", "ensures", "modifies", "reads", "decreases", - "int", "bool", "false", "true", "null", + "bool", "nat", "int", "false", "true", "null", "function", "free", "in", "forall", "exists", "seq", "set", "array", "array2", "array3", @@ -317,8 +317,9 @@ namespace Demo | "modifies" | "reads" | "decreases" - | "int" | "bool" + | "nat" + | "int" | "false" | "true" | "null" @@ -381,7 +382,7 @@ namespace Demo ; typeDecl.Rule - = (ToTerm("int") | "bool" | ident | "seq" | "set" | "array") + (("<" + MakePlusRule(typeDecl, ToTerm(","), typeDecl) + ">") | Empty) + = (ToTerm("int") | "nat" | "bool" | ident | "seq" | "set" | "array") + (("<" + MakePlusRule(typeDecl, ToTerm(","), typeDecl) + ">") | Empty) | ToTerm("token") + "<" + (typeDecl + ".") + ident + ">" ; diff --git a/Util/VS2010/DafnyExtension/DafnyExtension/TokenTagger.cs b/Util/VS2010/DafnyExtension/DafnyExtension/TokenTagger.cs index 30e44a90..c37ea13c 100644 --- a/Util/VS2010/DafnyExtension/DafnyExtension/TokenTagger.cs +++ b/Util/VS2010/DafnyExtension/DafnyExtension/TokenTagger.cs @@ -267,6 +267,7 @@ namespace DafnyLanguage case "method": case "modifies": case "module": + case "nat": case "new": case "null": case "object": diff --git a/Util/latex/dafny.sty b/Util/latex/dafny.sty index 4a98fa4c..fccd3918 100644 --- a/Util/latex/dafny.sty +++ b/Util/latex/dafny.sty @@ -5,7 +5,7 @@ \usepackage{listings} \lstdefinelanguage{dafny}{ - morekeywords={class,datatype,bool,int,object,set,seq,array,array2,array3,% + morekeywords={class,datatype,bool,nat,int,object,set,seq,array,array2,array3,% function,unlimited, ghost,var,static,refines,replaces,by, method,returns,module,imports,in, diff --git a/Util/vim/syntax/dafny.vim b/Util/vim/syntax/dafny.vim index bdf35f2e..7727e1f6 100644 --- a/Util/vim/syntax/dafny.vim +++ b/Util/vim/syntax/dafny.vim @@ -11,7 +11,7 @@ syntax keyword dafnyConditional if then else match case syntax keyword dafnyRepeat foreach while syntax keyword dafnyStatement havoc assume assert return call new print break label syntax keyword dafnyKeyword var ghost returns null static this refines replaces by -syntax keyword dafnyType int bool seq set object array array2 array3 +syntax keyword dafnyType bool nat int seq set object array array2 array3 syntax keyword dafnyLogic requires ensures modifies reads decreases invariant syntax keyword dafnyOperator forall exists old fresh allocated choose syntax keyword dafnyBoolean true false -- cgit v1.2.3