|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object scale.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 DyadicOp
public 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 CompoundAssignmentOp
Predicate
public void setShiftMode(ShiftMode mode)
BitShiftOp
public ShiftMode getShiftMode()
BitShiftOp
public 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 |