|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectscale.common.Root
scale.clef.Node
scale.clef.expr.Expression
scale.clef.expr.DyadicOp
scale.clef.expr.AssignmentOp
scale.clef.expr.CompoundAssignmentOp
scale.clef.expr.BitShiftAssignmentOp
public class BitShiftAssignmentOp
This class represents x <<= y and x >>= y.
$Id: BitShiftAssignmentOp.java,v 1.13 2006-12-18 21:36:48 burrill Exp $
Copyright 2008 by the
Scale Compiler Group,
Department of Computer Science
University of Massachusetts,
Amherst MA. 01003, USA
All Rights Reserved.
Note that x <<= y is not equivalent to x = x <<
y when x is a an expression with side effects.
BitShiftOp| Constructor Summary | |
|---|---|
BitShiftAssignmentOp(Type type,
Expression lhs,
Expression ra,
ShiftMode mode)
|
|
BitShiftAssignmentOp(Type type,
Type calcType,
Expression lhs,
Expression ra,
ShiftMode mode)
|
|
| Method Summary | |
|---|---|
boolean |
equivalent(java.lang.Object exp)
Return true if the two expressions are equivalent. |
ShiftMode |
getShiftMode()
Return the shift mode. |
void |
setShiftMode(ShiftMode mode)
Set the shift mode to C or Java. |
java.lang.String |
toStringSpecial()
This method allows sub-classes to provide class specific stuff to the string. |
void |
visit(Predicate p)
Process a node by calling its associated routine. |
| Methods inherited from class scale.clef.expr.CompoundAssignmentOp |
|---|
getCalcType |
| Methods inherited from class scale.clef.expr.DyadicOp |
|---|
containsDeclaration, getChild, getDeclList, getExpr1, getExpr2, getLhs, getRhs, isSimpleOp, numChildren, setExpr1, setExpr2, setLhs, setRhs |
| Methods inherited from class scale.clef.expr.Expression |
|---|
canonical, getConstantValue, getCoreType, getDisplayColorHint, getDisplayLabel, getDisplayShapeHint, getPointedToCore, getType, hasTrueFalseResult, setType |
| Methods inherited from class scale.clef.Node |
|---|
getDecl, getSourceLineNumber, setAnnotationLevel, setReportLevel, setSourceLineNumber, toString, toString, toStringChildren |
| 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 BitShiftAssignmentOp(Type type,
Type calcType,
Expression lhs,
Expression ra,
ShiftMode mode)
type - is the type of the expressioncalcType - is the type required for the right-hand-side computationlhs - is the left-hand-side expression of the assignmentra - is right argument to the right-hand-side expression of the assignmentmode - is the shift operation - right, left, etc.ShiftMode
public BitShiftAssignmentOp(Type type,
Expression lhs,
Expression ra,
ShiftMode mode)
mode - is the shift operation - right, left, etc.BitShiftOp| Method Detail |
|---|
public boolean equivalent(java.lang.Object exp)
equivalent in class DyadicOppublic void visit(Predicate p)
Node
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(Node n)
{
ABC a = (ABC) n;
...
}
Thus, the class that implements Predicate can call
n.visit(this);where
n is a Node 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 CompoundAssignmentOpPredicatepublic void setShiftMode(ShiftMode mode)
BitShiftOppublic ShiftMode getShiftMode()
BitShiftOppublic java.lang.String toStringSpecial()
Node
toStringSpecial in class Expression
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||