summaryrefslogtreecommitdiff
path: root/Source/Dafny/Scanner.cs
Commit message (Collapse)AuthorAge
* Dafny: added finite mapsGravatar Unknown2012-05-25
|
* Dafny: fixed resolution bug for inductive datatypes (previous check did not ↵Gravatar Unknown2012-04-25
| | | | | | | handle generic datatypes correctly) Dafny: fixed compiler bug in inductive datatypes (missing type parameters in emitted code) Dafny: added "codatatype" declaration (syntax only for now)
* Dafny: added assign-such-that statements; syntax: x,y,a[i],o.f :| Expr;Gravatar Unknown2012-03-15
|
* Dafny: added ghost modules (the meaning is simply that such a module will ↵Gravatar Rustan Leino2012-03-07
| | | | | | | not be compiled) Dafny: improved :autocontracts heuristic for detecting "simple query method" Dafny: fixed some bugs
* Dafny: allow signatures to be omitted on refining functions/methodsGravatar Unknown2012-02-16
|
* Dafny: re-ran parser generator to use latest .frame filesGravatar Rustan Leino2012-02-16
|
* Dafny: added predicatesGravatar Rustan Leino2012-01-10
|
* Dafny: firmed up the module systemGravatar Rustan Leino2012-01-05
|
* Dafny: Start of new refinement features -- clean out old onesGravatar Rustan Leino2012-01-04
|
* Dafny: Added support for attributes on various specification constructs ↵Gravatar wuestholz2011-12-07
| | | | (assert, ensures, modifies, decreases, invariant).
* Dafny: reran Coco on merged Dafny.atgGravatar Rustan Leino2011-12-07
|
* MergeGravatar Rustan Leino2011-12-07
|\
* | Dafny: Made some minor changes to the grammar.Gravatar wuestholz2011-12-06
| |
| * Dafny: Added "type" declaration (syntax: "type X;"), which introduces an ↵Gravatar Rustan Leino2011-11-21
|/ | | | arbitrary type (like a global type parameter). In the future, a refined module may allow such types to be instantiated.
* Dafny: added let expressions (syntax: "var x := E0; E1")Gravatar Rustan Leino2011-11-14
| | | | | Dafny: firmed up semantics of assert/assume expressions (the condition is now good for all program control paths that pass through the expression) Dafny: various implementation clean-ups
* Dafny: removed Dafny's "foreach" statements (replaced by the new "parallel" ↵Gravatar Rustan Leino2011-10-26
| | | | statement)
* Dafny: changed triggers (which are never really used, anyhow) from having a ↵Gravatar Rustan Leino2011-10-21
| | | | | | | special syntactic form to being just an attribute Dafny: added "parallel" statement (so far, only parsing and resolving) Dafny: allow types on bound variables in "match" expressions/statements (there's never any incentive to list them explicitly in the program text, but it nevertheless seemed silly to forbid them)
* Dafny: fixed parsing bug with "!in"Gravatar Rustan Leino2011-09-08
| | | | | Dafny: fixed translation bug with missing match cases (where the constructor has some parameters) Dafny: fixed translation bug where the program had forward references to members of a datatype
* Dafny: re-ran parser generator to include semicolon-less body-less ↵Gravatar Rustan Leino2011-07-26
| | | | functions/methods, and updated some test files accordingly (compare with changesets 1429 and 1366)
* Multiset forming operators added.Gravatar Jason Koenig2011-07-11
|
* Partial implementation of multisets.Gravatar Jason Koenig2011-07-11
|
* Added loop modifies clause syntax.Gravatar Jason Koenig2011-06-23
|
* Dafny: better error message when "decreases *" is attempted on a function or ↵Gravatar Rustan Leino2011-06-20
| | | | | | | method Dafny: fixed compilation bug with parallel assignment involving a ghost LHS Dafny: added sequence-to-set conversion if a function's reads clause is used implicitly as the decreases clause
* Dafny: changed syntax of havoc statements from "havoc X;" to "X := *;"Gravatar Rustan Leino2011-05-28
|
* Dafny: added constructorsGravatar Rustan Leino2011-05-28
|
* Dafny: fixed parsing bug that prevented all expressions from occurring in ↵Gravatar Rustan Leino2011-05-27
| | | | match-case expressions
* 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: retired the "call" keywordGravatar Rustan Leino2011-05-26
|
* 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: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: added set comprehension expressionsGravatar Rustan Leino2011-05-18
|
* Dafny: fixed typo in parser codeGravatar Rustan Leino2011-05-13
|
* Dafny: fixed bugs in resolution of multi-dimensional arraysGravatar Rustan Leino2011-05-12
|
* Dafny: Fix parsing of if-then-else expressions, and don't require ↵Gravatar Rustan Leino2011-04-21
| | | | parentheses around forall/exists expressions
* Dafny: Alternative (and candidate replacement) syntax for declaring datatypesGravatar Rustan Leino2011-04-20
| | | | Dafny: Additional induction test cases
* Dafny: added type "nat"Gravatar Rustan Leino2011-04-19
|
* Dafny: don't require parentheses in syntax of "choose" statementsGravatar Rustan Leino2011-04-05
|
* 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: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
|
* Factored out the ParserHelper class into a separate project and updated the ↵Gravatar wuestholz2010-12-02
| | | | | | files generated by Coco/R. This was done to support sharing of the Coco/R .frame files with Spec#.
* Boogie:Gravatar rustanleino2010-10-26
| | | | | | | | | * Updated Parser.cs/Scanner.cs to use new .frame files from boogiepartners. * It changes, for example, "syntax error:" to just "error:", so adjusted expected Test outputs. Dafny: * Ditto for its Parser.cs/Scanner.cs. * Added ability to provide a custom Errors handler for scanner/parser. * Added Test/dafny1/Cubes.dfy
* 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: Made line endings consistentGravatar tabarbe2010-08-04
|