diff options
author | 2011-05-24 21:30:57 -0700 | |
---|---|---|
committer | 2011-05-24 21:30:57 -0700 | |
commit | 4882523dcc2bf0c46d2cb3154ecb19bc9ea4f5cb (patch) | |
tree | 748a35384f8e61d634f8deecf7e0a3b1e7ece387 /Dafny/Compiler.cs | |
parent | 85332c0cab99b9e7bcc89caf0bfd369d35ea6bfc (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.cs | 7 |
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
}
|