summaryrefslogtreecommitdiff
path: root/Source/Dafny/DafnyAst.cs
Commit message (Collapse)AuthorAge
* Dafny: Added some assertions.Gravatar wuestholz2011-09-23
|
* Dafny: Added a 'Checked' configuration and fixed some runtime assertion ↵Gravatar wuestholz2011-09-23
| | | | violations.
* MergeGravatar Jason Koenig2011-07-15
|\
| * Updated the Parser.cs and Scanner.cs files in Boogie and Dafny and removed ↵Gravatar wuestholz2011-07-15
| | | | | | | | some trailing whitespace.
* | Multiset forming operators added.Gravatar Jason Koenig2011-07-11
| |
* | MergeGravatar Jason Koenig2011-07-11
|\ \
* | | Added s[..] syntax in anticipation of sequence forming operation. (also ↵Gravatar Jason Koenig2011-07-11
| |/ |/| | | | | updated regression tests.)
| * Partial implementation of multisets.Gravatar Jason Koenig2011-07-11
|/
* Refactor. Renamed update statement field and removed unused field in AST.Gravatar Jason Koenig2011-06-30
|
* Made Receiver mutable, as this cannot be linked properly by the parser.Gravatar Jason Koenig2011-06-29
|
* Initial implementation of return statments with parameters.Gravatar Jason Koenig2011-06-29
|
* Initial modifies on loops implementation. Still some errors remaining.Gravatar Jason Koenig2011-06-28
|
* Added loop modifies clause syntax.Gravatar Jason Koenig2011-06-23
|
* Dafny: added implicit datatype query fields and datatype destructor fieldsGravatar Rustan Leino2011-06-05
|
* Dafny: Translate general LHSs for var and := (not yet for call, no ↵Gravatar Rustan Leino2011-05-30
| | | | compilation yet)
* Dafny: changed syntax of havoc statements from "havoc X;" to "X := *;"Gravatar Rustan Leino2011-05-28
|
* Dafny: added constructorsGravatar Rustan Leino2011-05-28
|
* Dafny: permanently changed the syntax of "datatype" declarations to what ↵Gravatar Rustan Leino2011-05-27
| | | | previously was an alternative syntax
* Dafny: retired "use" statementsGravatar Rustan Leino2011-05-27
|
* Dafny: added chaining operatorsGravatar Rustan Leino2011-05-27
|
* Dafny:Gravatar Rustan Leino2011-05-26
| | | | | | * fixed ghost/non-ghost story for breaks and returns * changed compilation/translation to always use goto's to implement Dafny's breaks * introduced "break break" statements
* Dafny: cleaned up parser, moved foreach statement from AssignStmt<> parsing ↵Gravatar Rustan Leino2011-05-25
| | | | to UpdateStmt, automatically infer ghosts when local variables are introduced with a call RHS
* Dafny: changed local "var" introductions to use new VarDeclStmt instead of ↵Gravatar Rustan Leino2011-05-24
| | | | | | parsing as the old VarDecl's with RHS's To-do: automatically make some variables introduce ghost variables, depending on RHS of initial assignment
* Dafny:Gravatar Rustan Leino2011-05-24
| | | | | | | | | | | | | | | * 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
* Dafny: refactored code into separate method ResolveIdentifierSequence and ↵Gravatar Rustan Leino2011-05-22
| | | | allow for a return of CallRhs
* Dafny: allow class names to be used when referring to static functions (and, ↵Gravatar Rustan Leino2011-05-21
| | | | soon, methods), and test cases for new name resolution rules
* Dafny:Gravatar Rustan Leino2011-05-21
| | | | | | | | | | * started rewriting parsing of qualified identifiers in expressions * annoyingly, had to introduce AST nodes for concrete syntax * previous syntax for invoking datatype constructors: #List.Cons(h, t) new syntax: List.Cons(h, t) or, if only one datatype has a constructor named Cons: Cons(h, t) * Removed type parameters for datatype constructors from the grammar * Helped Test/VSI-Benchmarks/b4.dfy along with a couple of assertions (previously, its proving performance was highly varied)
* Dafny: added alternative statement and alternative-loop statementGravatar Rustan Leino2011-05-19
|
* Dafny: let verifier, not the resolver, check for missing cases in match ↵Gravatar Rustan Leino2011-05-19
| | | | expressions/statements
* Dafny: added set comprehension expressionsGravatar Rustan Leino2011-05-18
|
* Dafny: added optional range expressions to logical quantifiers, preparing ↵Gravatar Rustan Leino2011-05-15
| | | | for addition other other comprehensions (like set comprehension)
* Dafny: include source location for array types supplied in inputGravatar Rustan Leino2011-04-22
|
* Dafny: Fix parsing of if-then-else expressions, and don't require ↵Gravatar Rustan Leino2011-04-21
| | | | parentheses around forall/exists expressions
* Dafny: added type "nat"Gravatar Rustan Leino2011-04-19
|
* Dafny: Allow field selections and array-element selection as LHSs of ↵Gravatar Unknown2011-04-05
| | | | assignments where RHS is not just an expression
* Dafny: refactoring to soon support more general assignment statementsGravatar rustanleino2011-03-29
|
* Dafny: Added support for an initializing call as part of the new-allocation ↵Gravatar rustanleino2011-03-27
| | | | | | | | | | | syntax. What you previously would have written like: c := new C; call c.Init(x, y); you can now write as: c := new C.Init(x, y);
* Dafny: added "choose" operator on setsGravatar rustanleino2011-03-26
|
* Dafny: improved and corrected physical/ghost distinctionGravatar rustanleino2011-03-26
|
* Dafny: compile quantifiersGravatar rustanleino2011-03-26
| | | | | | Dafny: allow {:induction} attribute to take an explicit list of bound variables on which to apply induction Dafny: split expressions when proving function postconditions Boogie and BVD: updated copyright year ranges
* Renamed NonNullElements to NonNullDictionaryAndValues because the keys to ↵Gravatar mikebarnett2011-03-10
| | | | | | dictionaries are non-null, which is enforced by the implementation of Dictionary. Added class constraints to all of the generic NonNull and NonNullElements methods so only non-value types will be checked.
* Dafny: Improved scheme for splitting expressions. Also, report each split ↵Gravatar rustanleino2011-02-19
| | | | in error messages.
* Dafny:Gravatar rustanleino2011-02-17
| | | | | | | | | | | | | | | | | | * Big change: Add type and allocatedness information everywhere in the Boogie translation. This not only fixes some potential soundness problems (see Test/dafny1/TypeAntecedents.dfy), but it also gives more information about the program. On the downside, it also requires discharging more antecedents in order to use some axioms. Another downside is that overall performance has gone down (however, this may be just an indirect consequence of the change, as it was in one investigated case). * Increase the applicability of function axioms (extending the coarse-grain function/module height mechanism used as an antecedent of function axioms). (Internally, this uses the new canCall mechanism.) * Extend language with "allocated( Expr )" expressions, which for any type of expression "Expr" says that "Expr" is allocated and has the expected type. * More details error messages about ill-defined expressions (internally, by using CheckWellformedness instead of "assert IsTotal") * Add axioms about idempotence of set union and intersection * The compiler does not support (the experimental feature) coupling invariants, so generate error if the compiler ever gets one * In the implementation, combine common behavior of MatchCaseStmt and MatchCaseExpr into a superclass MatchCase * Fixed error in translation of while(*)
* Dafny: added ensures clauses to functionsGravatar rustanleino2011-02-02
|
* Dafny: Improved default decreases clauses for methods and functionsGravatar rustanleino2010-11-25
| | | | | Dafny: Don't display "alloc" field in BVD Chalice: Fixed error-message parsing error in VS mode
* Dafny: Record source positions of start/end curly braces for declaration ↵Gravatar rustanleino2010-10-27
| | | | | | constructs. Dafny VS2010 extension: link with Dafny and use it to parse and type check
* Dafny: Compilation of multi-dimensional arraysGravatar rustanleino2010-09-21
|
* Dafny:Gravatar rustanleino2010-09-17
| | | | | | * Added full support for multi-dimensional arrays (except for one issue that still needs to be added in compilation) * Changed syntax of array length from |a| to a.Length (for one-dimensional arrays). The syntax for either dimensions is, for example, b.Length0 and b.Length1 for 2-dimensional arrays. * Internally, this meant adding support for built-in classes and readonly fields
* Dafny:Gravatar rustanleino2010-09-14
| | | | | | | | * Added internal support for multi-dimensional arrays (but not all surface syntax is there yet) * Removed unused variables from Dafny.atg Boogie and Dafny: * Improved error message for postcondition violations
* Dafny: Port commit part 1/2: Committing changed files.Gravatar tabarbe2010-08-03
| | | | Do not attempt to regenerate the Parser and Scanner files before the port of Boogie/Core is done, as these have undergone changes, but will not be committed until after the Core port.