From 7b8adafdc184fd812fbb26d4d4ca4aaf5f0d134a Mon Sep 17 00:00:00 2001 From: Rustan Leino Date: Sat, 28 May 2011 18:51:27 -0700 Subject: Dafny: changed syntax of havoc statements from "havoc X;" to "X := *;" --- Dafny/Scanner.cs | 111 +++++++++++++++++++++++++++---------------------------- 1 file changed, 55 insertions(+), 56 deletions(-) (limited to 'Dafny/Scanner.cs') diff --git a/Dafny/Scanner.cs b/Dafny/Scanner.cs index f642178b..81f556c8 100644 --- a/Dafny/Scanner.cs +++ b/Dafny/Scanner.cs @@ -211,8 +211,8 @@ public class UTF8Buffer: Buffer { public class Scanner { const char EOL = '\n'; const int eofSym = 0; /* pdt */ - const int maxT = 105; - const int noSym = 105; + const int maxT = 104; + const int noSym = 104; [ContractInvariantMethod] @@ -519,28 +519,27 @@ public class Scanner { case "return": t.kind = 47; break; case "new": t.kind = 49; break; case "choose": t.kind = 53; break; - case "havoc": t.kind = 54; break; - case "if": t.kind = 55; break; - case "else": t.kind = 56; break; - case "case": t.kind = 57; break; - case "while": t.kind = 59; break; - case "invariant": t.kind = 60; break; - case "match": t.kind = 61; break; - case "foreach": t.kind = 62; break; - case "in": t.kind = 63; break; - case "assert": t.kind = 64; break; - case "assume": t.kind = 65; break; - case "print": t.kind = 66; break; - case "false": t.kind = 90; break; - case "true": t.kind = 91; break; - case "null": t.kind = 92; break; - case "this": t.kind = 93; break; - case "fresh": t.kind = 94; break; - case "allocated": t.kind = 95; break; - case "old": t.kind = 96; break; - case "then": t.kind = 97; break; - case "forall": t.kind = 99; break; - case "exists": t.kind = 101; break; + case "if": t.kind = 54; break; + case "else": t.kind = 55; break; + case "case": t.kind = 56; break; + case "while": t.kind = 58; break; + case "invariant": t.kind = 59; break; + case "match": t.kind = 60; break; + case "foreach": t.kind = 61; break; + case "in": t.kind = 62; break; + case "assert": t.kind = 63; break; + case "assume": t.kind = 64; break; + case "print": t.kind = 65; break; + case "false": t.kind = 89; break; + case "true": t.kind = 90; break; + case "null": t.kind = 91; break; + case "this": t.kind = 92; break; + case "fresh": t.kind = 93; break; + case "allocated": t.kind = 94; break; + case "old": t.kind = 95; break; + case "then": t.kind = 96; break; + case "forall": t.kind = 98; break; + case "exists": t.kind = 100; break; default: break; } } @@ -664,66 +663,66 @@ public class Scanner { case 27: {t.kind = 51; break;} case 28: - {t.kind = 58; break;} + {t.kind = 57; break;} case 29: if (ch == '>') {AddCh(); goto case 30;} else {goto case 0;} case 30: - {t.kind = 67; break;} + {t.kind = 66; break;} case 31: - {t.kind = 68; break;} + {t.kind = 67; break;} case 32: - {t.kind = 69; break;} + {t.kind = 68; break;} case 33: - {t.kind = 70; break;} + {t.kind = 69; break;} case 34: if (ch == '&') {AddCh(); goto case 35;} else {goto case 0;} case 35: - {t.kind = 71; break;} + {t.kind = 70; break;} case 36: - {t.kind = 72; break;} + {t.kind = 71; break;} case 37: - {t.kind = 73; break;} + {t.kind = 72; break;} case 38: - {t.kind = 74; break;} + {t.kind = 73; break;} case 39: - {t.kind = 77; break;} + {t.kind = 76; break;} case 40: - {t.kind = 78; break;} + {t.kind = 77; break;} case 41: - {t.kind = 79; break;} + {t.kind = 78; break;} case 42: if (ch == 'n') {AddCh(); goto case 43;} else {goto case 0;} case 43: - {t.kind = 80; break;} + {t.kind = 79; break;} case 44: - {t.kind = 81; break;} + {t.kind = 80; break;} case 45: - {t.kind = 82; break;} + {t.kind = 81; break;} case 46: - {t.kind = 83; break;} + {t.kind = 82; break;} case 47: - {t.kind = 84; break;} + {t.kind = 83; break;} case 48: - {t.kind = 85; break;} + {t.kind = 84; break;} case 49: - {t.kind = 86; break;} + {t.kind = 85; break;} case 50: - {t.kind = 87; break;} + {t.kind = 86; break;} case 51: - {t.kind = 89; break;} + {t.kind = 88; break;} case 52: - {t.kind = 98; break;} + {t.kind = 97; break;} case 53: - {t.kind = 100; break;} + {t.kind = 99; break;} case 54: - {t.kind = 102; break;} + {t.kind = 101; break;} case 55: - {t.kind = 103; break;} + {t.kind = 102; break;} case 56: - {t.kind = 104; break;} + {t.kind = 103; break;} case 57: recEnd = pos; recKind = 15; if (ch == '>') {AddCh(); goto case 28;} @@ -751,19 +750,19 @@ public class Scanner { if (ch == '.') {AddCh(); goto case 52;} else {t.kind = 52; break;} case 63: - recEnd = pos; recKind = 88; + recEnd = pos; recKind = 87; if (ch == '=') {AddCh(); goto case 40;} else if (ch == '!') {AddCh(); goto case 41;} else if (ch == 'i') {AddCh(); goto case 42;} - else {t.kind = 88; break;} + else {t.kind = 87; break;} case 64: - recEnd = pos; recKind = 75; + recEnd = pos; recKind = 74; if (ch == '>') {AddCh(); goto case 32;} - else {t.kind = 75; break;} + else {t.kind = 74; break;} case 65: - recEnd = pos; recKind = 76; + recEnd = pos; recKind = 75; if (ch == '=') {AddCh(); goto case 29;} - else {t.kind = 76; break;} + else {t.kind = 75; break;} } t.val = new String(tval, 0, tlen); -- cgit v1.2.3