edu.mit.csail.sdg.squander.engine.SquanderEval Class Reference
[Engine]

Inherits forge::program::ExpressionVisitor< ForgeConstant >.

Collaboration diagram for edu.mit.csail.sdg.squander.engine.SquanderEval:
Collaboration graph
[legend]

List of all members.

Classes

interface  BinFunc< R, T >
class  StackElem

Public Member Functions

Map< ForgeVariable, ForgeConstant > getAssignments ()
ISquanderResult.IEvaluator getEvaluator ()
ForgeConstant eval (ForgeExpression expr, ForgeBounds bounds, ForgeConverter fconv)

Protected Member Functions

ForgeConstant visit (BinaryExpression expr)
ForgeConstant visit (ConditionalExpression expr)
ForgeConstant visit (ForgeLiteral expr)
ForgeConstant visit (ForgeType expr)
ForgeConstant visit (ForgeVariable expr)
ForgeConstant visit (OldExpression expr)
ForgeConstant visit (ProjectionExpression expr)
ForgeConstant visit (QuantifyExpression expr)
ForgeConstant visit (UnaryExpression expr)

Package Functions

private< R > ForgeConstant visitIntBinExpr (BinaryExpression expr, BinFunc< R, Integer > f)

Private Member Functions

ForgeConstant visitVariable (ForgeVariable var)
ForgeConstant visitLocalVariable (LocalVariable var)
StackElem searchStack (LocalVariable var)
ForgeConstant visitAssignment (BinaryExpression expr)
ForgeConstant visitEquals (BinaryExpression expr)
ForgeConstant visitJoin (BinaryExpression expr)
ForgeConstant visitProduct (BinaryExpression expr)
ForgeConstant visitRelUnion (BinaryExpression expr)
ForgeConstant visitDiff (BinaryExpression expr)
ForgeConstant visitSubset (BinaryExpression expr)
ForgeConstant visitIntersection (BinaryExpression expr)
ForgeConstant visitClosure (ForgeConstant res)
ForgeConstant visitBoolBinExpr (BinaryExpression expr, BinFunc< Boolean, Boolean > f)
ForgeConstant visitUnion (QuantifyExpression expr)
ForgeConstant visitAll (QuantifyExpression expr)
ForgeConstant visitExists (QuantifyExpression expr)

Private Attributes

ForgeBounds bounds
ForgeConverter fconv
boolean hasSolution = false
Stack< StackElem > quantStack = new Stack<StackElem>()
Map< ForgeVariable, ForgeConstant > assignments = new HashMap<ForgeVariable, ForgeConstant>()

Detailed Description

Used to evaluate relational Forge expressions against the heap.

Author:
Aleksandar Milicevic

Definition at line 42 of file SquanderEval.java.


Member Function Documentation

ForgeConstant edu.mit.csail.sdg.squander.engine.SquanderEval.eval ( ForgeExpression  expr,
ForgeBounds  bounds,
ForgeConverter  fconv 
)

Evaluates the given Forge expression against the given bounds (which represent the heap) and returns a Forge constant as the result of the evaluation.

Definition at line 115 of file SquanderEval.java.

References edu.mit.csail.sdg.squander.engine.SquanderEval.hasSolution, and edu.mit.csail.sdg.squander.engine.SquanderEval.quantStack.

Map<ForgeVariable, ForgeConstant> edu.mit.csail.sdg.squander.engine.SquanderEval.getAssignments (  ) 
ISquanderResult.IEvaluator edu.mit.csail.sdg.squander.engine.SquanderEval.getEvaluator (  ) 
StackElem edu.mit.csail.sdg.squander.engine.SquanderEval.searchStack ( LocalVariable  var  )  [private]
ForgeConstant edu.mit.csail.sdg.squander.engine.SquanderEval.visit ( UnaryExpression  expr  )  [protected]
ForgeConstant edu.mit.csail.sdg.squander.engine.SquanderEval.visit ( QuantifyExpression  expr  )  [protected]
ForgeConstant edu.mit.csail.sdg.squander.engine.SquanderEval.visit ( ProjectionExpression  expr  )  [protected]

Definition at line 212 of file SquanderEval.java.

ForgeConstant edu.mit.csail.sdg.squander.engine.SquanderEval.visit ( OldExpression  expr  )  [protected]
ForgeConstant edu.mit.csail.sdg.squander.engine.SquanderEval.visit ( ForgeVariable  expr  )  [protected]
ForgeConstant edu.mit.csail.sdg.squander.engine.SquanderEval.visit ( ForgeType  expr  )  [protected]
ForgeConstant edu.mit.csail.sdg.squander.engine.SquanderEval.visit ( ForgeLiteral  expr  )  [protected]
ForgeConstant edu.mit.csail.sdg.squander.engine.SquanderEval.visit ( ConditionalExpression  expr  )  [protected]

Definition at line 175 of file SquanderEval.java.

ForgeConstant edu.mit.csail.sdg.squander.engine.SquanderEval.visit ( BinaryExpression  expr  )  [protected]
ForgeConstant edu.mit.csail.sdg.squander.engine.SquanderEval.visitAll ( QuantifyExpression  expr  )  [private]
ForgeConstant edu.mit.csail.sdg.squander.engine.SquanderEval.visitAssignment ( BinaryExpression  expr  )  [private]
ForgeConstant edu.mit.csail.sdg.squander.engine.SquanderEval.visitBoolBinExpr ( BinaryExpression  expr,
BinFunc< Boolean, Boolean >  f 
) [private]
ForgeConstant edu.mit.csail.sdg.squander.engine.SquanderEval.visitClosure ( ForgeConstant  res  )  [private]
ForgeConstant edu.mit.csail.sdg.squander.engine.SquanderEval.visitDiff ( BinaryExpression  expr  )  [private]
ForgeConstant edu.mit.csail.sdg.squander.engine.SquanderEval.visitEquals ( BinaryExpression  expr  )  [private]
ForgeConstant edu.mit.csail.sdg.squander.engine.SquanderEval.visitExists ( QuantifyExpression  expr  )  [private]
private<R> ForgeConstant edu.mit.csail.sdg.squander.engine.SquanderEval.visitIntBinExpr ( BinaryExpression  expr,
BinFunc< R, Integer >  f 
) [package]
ForgeConstant edu.mit.csail.sdg.squander.engine.SquanderEval.visitIntersection ( BinaryExpression  expr  )  [private]
ForgeConstant edu.mit.csail.sdg.squander.engine.SquanderEval.visitJoin ( BinaryExpression  expr  )  [private]
ForgeConstant edu.mit.csail.sdg.squander.engine.SquanderEval.visitLocalVariable ( LocalVariable  var  )  [private]
ForgeConstant edu.mit.csail.sdg.squander.engine.SquanderEval.visitProduct ( BinaryExpression  expr  )  [private]
ForgeConstant edu.mit.csail.sdg.squander.engine.SquanderEval.visitRelUnion ( BinaryExpression  expr  )  [private]
ForgeConstant edu.mit.csail.sdg.squander.engine.SquanderEval.visitSubset ( BinaryExpression  expr  )  [private]
ForgeConstant edu.mit.csail.sdg.squander.engine.SquanderEval.visitUnion ( QuantifyExpression  expr  )  [private]
ForgeConstant edu.mit.csail.sdg.squander.engine.SquanderEval.visitVariable ( ForgeVariable  var  )  [private]

Member Data Documentation

Map<ForgeVariable, ForgeConstant> edu.mit.csail.sdg.squander.engine.SquanderEval.assignments = new HashMap<ForgeVariable, ForgeConstant>() [private]
Stack<StackElem> edu.mit.csail.sdg.squander.engine.SquanderEval.quantStack = new Stack<StackElem>() [private]

The documentation for this class was generated from the following file:
Generated by  doxygen 1.6.2-20100208