| 
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectscale.common.Root
scale.score.Note
scale.score.expr.Expr
scale.score.expr.BinaryExpr
scale.score.expr.OrExpr
public class OrExpr
This class represents the boolean or operation.
$Id: OrExpr.java,v 1.25 2007-04-27 18:04:37 burrill Exp $
 Copyright 2008 by the
 Scale Compiler Group,
 Department of Computer Science
 University of Massachusetts,
 Amherst MA. 01003, USA
 All Rights Reserved.
| Field Summary | 
|---|
| Fields inherited from class scale.score.expr.Expr | 
|---|
fpReorder, SE_DOMAIN, SE_NONE, SE_OVERFLOW, SE_STATE | 
| Constructor Summary | |
|---|---|
OrExpr(Type t,
       Expr e1,
       Expr e2)
 | 
|
| Method Summary | |
|---|---|
 Expr | 
copy()
Perform a deep copy of the expression tree.  | 
 Literal | 
getConstantValue()
Return the constant value of the expression.  | 
 Literal | 
getConstantValue(HashMap<Expr,Literal> cvMap)
Return the constant value of the expression.  | 
 java.lang.String | 
getDisplayLabel()
Return a String suitable for labeling this node in a graphical display.  | 
 boolean | 
isLeftDistributive()
Return true if the binary operation α is left distributive over β: (a β b) α c ≡ (a α c) β (b α c).  | 
 boolean | 
isRightDistributive()
Return true if the binary operation α is right distributive over β: a α (b β c) ≡ (a α b) β (a α c).  | 
 void | 
visit(Predicate p)
Process a node by calling its associated routine.  | 
| Methods inherited from class scale.score.expr.BinaryExpr | 
|---|
associativeSwapOperands, containsDeclaration, dependsOnDeclaration, equivalent, executionCostEstimate, getAliasAnnote, getDeclList, getExprList, getLeftArg, getLoadExprList, getOperand, getOperandArray, getRightArg, isAssociative, isCommutative, loopClean, numOperands, optimizationCandidate, pushOperands, recordRefs, removeRefs, removeUseDef, replaceDecl, setLeftArg, setOperand, setRightArg, sideEffects, swapOperands, unlinkExpression, validate | 
| Methods inherited from class scale.score.Note | 
|---|
getChord, getEssentialUse, setAnnotationLevel, setReportLevel, toString | 
| Methods inherited from class scale.common.Root | 
|---|
addAnnotation, allAnnotations, allMatchingAnnotations, getAnnotation, getDisplayName, getDisplayString, getNodeCount, getNodeID, hasAnnotation, hasEqualAnnotation, hashCode, removeAnnotation, removeAnnotations, toStringAnnotations, toStringClass, trace, trace, trace | 
| Methods inherited from class java.lang.Object | 
|---|
clone, equals, finalize, getClass, notify, notifyAll, wait, wait, wait | 
| Constructor Detail | 
|---|
public OrExpr(Type t,
              Expr e1,
              Expr e2)
| Method Detail | 
|---|
public Expr copy()
Expr
copy in class Exprpublic void visit(Predicate p)
Note
 Each class has a visit(Predicate p) method.  For
 example, in class ABC:
 
   public void visit(Predicate p)
   {
     p.visitABC(this);
   }
 
 and the class that implements Predicate has a method
 
   public void visitABC(Note n)
   {
     ABC a = (ABC) n;
     ...
   }
 
 Thus, the class that implements Predicate can call
 n.visit(this);where
n is a Note sub-class without
 determining which specific sub-class n is.
 The visit pattern basically avoids implementing a large
 switch statement or defining different methods
 in each class for some purpose.
visit in class NotePredicatepublic java.lang.String getDisplayLabel()
Expr
getDisplayLabel in interface DisplayNodegetDisplayLabel in class Exprpublic Literal getConstantValue(HashMap<Expr,Literal> cvMap)
getConstantValue in class ExprLatticepublic Literal getConstantValue()
getConstantValue in class ExprLatticepublic boolean isLeftDistributive()
BinaryExpr
isLeftDistributive in class BinaryExprpublic boolean isRightDistributive()
BinaryExpr
isRightDistributive in class BinaryExpr
  | 
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||