summaryrefslogtreecommitdiff
path: root/Dafny/Compiler.cs
diff options
context:
space:
mode:
authorGravatar Rustan Leino <leino@microsoft.com>2011-05-24 21:30:57 -0700
committerGravatar Rustan Leino <leino@microsoft.com>2011-05-24 21:30:57 -0700
commit4882523dcc2bf0c46d2cb3154ecb19bc9ea4f5cb (patch)
tree748a35384f8e61d634f8deecf7e0a3b1e7ece387 /Dafny/Compiler.cs
parent85332c0cab99b9e7bcc89caf0bfd369d35ea6bfc (diff)
Dafny:
* fixed parsing problem with a block ending a block * replaced AssignStmt and "call" statements with UpdateStmt's * fixed some minor printing problems * changed implementation to check for ghost expressions in a pass separate from ResolveExpr To-dos: * compile and translate multi-assignments * handle non-identifier LHSs of call statements * change "var" statements in a similar way * tighten up parsing of LHSs to allow only things like SelectExpr * code and grammar clean-up to remove unused parts (e.g., "call" grammar productions and the "allowGhostFeatures" parameters) * include the commented-out precondition of TrAssignment * check in changes to the test suite
Diffstat (limited to 'Dafny/Compiler.cs')
-rw-r--r--Dafny/Compiler.cs7
1 files changed, 7 insertions, 0 deletions
diff --git a/Dafny/Compiler.cs b/Dafny/Compiler.cs
index 80e597e5..86fd1688 100644
--- a/Dafny/Compiler.cs
+++ b/Dafny/Compiler.cs
@@ -840,6 +840,13 @@ namespace Microsoft.Dafny {
Indent(indent); wr.WriteLine("}");
}
+ } else if (stmt is ConcreteSyntaxStatement) {
+ var s = (ConcreteSyntaxStatement)stmt;
+ // TODO: Update statements should perform multiple assignments in parallel!
+ foreach (var ss in s.ResolvedStatements) {
+ TrStmt(ss, indent);
+ }
+
} else {
Contract.Assert(false); throw new cce.UnreachableException(); // unexpected statement
}