summaryrefslogtreecommitdiff
path: root/Chalice/src/Resolver.scala
Commit message (Collapse)AuthorAge
* Chalice:Gravatar kyessenov2010-08-19
| | | | | * support multi-step refinement (convert refinement blocks into normal sequences of statements) * added tests
* Chalice:Gravatar kyessenov2010-08-19
| | | | | | * added loop transform pattern * implemented translation of refined loops to Boogie (only assert new loop invariants) * refactored loop target computation code (async call was not handled as maybe some other statement)
* Chalice:Gravatar kyessenov2010-08-18
| | | | | | * transforms are now callable * resolve transform specs * implement translation for refinement blocks (correct for manipulating locals, not globals)
* Chalice:Gravatar kyessenov2010-08-18
| | | | | | | * print type checked program (use -print -noTypecheck if you want old behavior) * refactored program context in Resolver ('errors' is kept as a ListBuffer and shared) * added resolver for refinement blocks (no loops yet) * pretty printer should work now for transforms
* Chalice: added surface syntax for transform, AST matching algorithmGravatar kyessenov2010-08-17
|
* Chalice: refactored AST code for class hierarchy (no need for caches since ↵Gravatar kyessenov2010-08-17
| | | | Scala uses structural equality for case classes); landed first piece of refinement code
* Chalice: add pre-conditions to specification statements; semantically spec ↵Gravatar kyessenov2010-08-13
| | | | statement is just like a call statement now
* Chalice: add specification statement ( ghost? (const|var) (x (:T)?)+ [P(x)] )Gravatar kyessenov2010-08-13
|
* Chalice: put classes and objects into package "chalice"Gravatar kyessenov2010-08-11
|
* Chalice: added uninterpreted functions; attempting to re-verify Celebrity in ↵Gravatar kyessenov2010-08-10
| | | | Chalice
* Chalice: added Tarjan's SCC algorithm for computing function call graph and ↵Gravatar kyessenov2010-08-03
| | | | recursion bits
* Chalice:Gravatar kyessenov2010-08-02
| | | | | | * added quantifiers over any type (forall i: int :: i + 1 == i + 1) * cleaned up AST transformation code; organized one transform operation that should preserve source positions -- it was very annoying to see assertions with lost source positions * added a desugar method that simplifies Chalice AST by unrolling a few constructs -- maybe useful in the future to quickly add a syntactic sugar
* Chalice:Gravatar kyessenov2010-07-30
| | | | | | | * add sequence axiom updates from Dafny * fix a bug in pretty printer for functions and predicates * add a command line option for not checking termination; refactor options code to update syntax help string * relax resolver to allow ghost state in assume statements (we don't know how to compile them in general anyways; assume false is still a special case and is compiled into assert false)
* Chalice: pretty printer now prints element type for sequences; fixed a bug ↵Gravatar kyessenov2010-07-27
| | | | in copying resolved member in sequence accesses; added graph closure (DSW) verification example
* Chalice: introduced proper AST nodes for permission expressions and ↵Gravatar kyessenov2010-07-21
| | | | permissions. This gets of redundancy in treating acc and rd in many places and should hopefully make permissions code more comprehensible
* Chalice: fixed typos in strings; trying out committing with TFSGravatar kyessenov2010-07-21
|
* Chalice: added surface syntax for acc(s[*].*) and acc(s[*].f); extended AST, ↵Gravatar kyessenov2010-07-20
| | | | resolver, printer; translation is not yet done
* Chalice: adding support for sequence local variables; removed ClassType from ↵Gravatar kyessenov2010-07-20
| | | | Boogie since it was maskng bad job done by Translator; fixing warnings in case we ever decide to switch to newer Scala compiler
* Chalice: added sequence containment surface syntax ("in" comparison ↵Gravatar kyessenov2010-07-19
| | | | operator); cleaned up some deprecation warnings; resolved ambiguity with "unfolding ... in" expression
* Chalice: Removed the restriction that "holds" must occur only in positive ↵Gravatar mueller2010-07-16
| | | | positions.
* Chalice: No longer use Mask for "held" field; instead, only use the value ↵Gravatar rustanleino2010-07-14
| | | | of the "held" field in the heap
* Chalice:Gravatar rustanleino2010-06-25
| | | | | * renamed keyword "maxlock" to "waitlevel" * added -vs switch, for I/O suitable for VS integration
* Chalice: Implemented -vs switch, for use when running Chalice from inside ↵Gravatar rustanleino2010-01-15
| | | | Visual Studio
* Implicitly declare as local variables undeclared variables occurring as ↵Gravatar rustanleino2009-10-16
| | | | LHS's of CALL and RECEIVE statements (as was already done for FORK statements).
* - where clauses are now properly type-checkedGravatar jansmans2009-10-02
| | | | - all credits must be consumed on entry to a loop by the invariant (to avoid getting the wrong maxlock)
* * Implemented channelsGravatar rustanleino2009-08-16
| | | | | | | | | | | | | | | | - channel declarations - send and receive statements - bounds clause for new, to accommodate channels - Added ProdConsChannel.chalice test case - Resolve and Translate (but no Compile yet) - Added Credits to global state in encoding (this caused changes to lots of source lines) * Simplified meaning of maxlock==E * Various parser improvements * Added alternative syntax for eval statements * Some renamings in error messages (e.g., install -> reorder) * Added preliminary parsing for condition variables and their wait and signal operations * Added new keywords to Chalice emacs mode
* Parse channels and condition variables.Gravatar rustanleino2009-08-05
|
* Initial set of files.Gravatar mikebarnett2009-07-15