|
|||||||||
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.BitShiftOp
public class BitShiftOp
The BitShiftOp class is the class for all bit shifting operations.
$Id: BitShiftOp.java,v 1.18 2007-10-04 19:58:05 burrill Exp $
Copyright 2008 by the
Scale Compiler Group,
Department of Computer Science
University of Massachusetts,
Amherst MA. 01003, USA
All Rights Reserved.
Constructor Summary | |
---|---|
BitShiftOp(Type type,
Expression e1,
Expression e2,
ShiftMode mode)
|
Method Summary | |
---|---|
boolean |
equivalent(java.lang.Object exp)
Return true if the two expressions are equivalent. |
Literal |
getConstantValue()
Return the constant value of the expression. |
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.DyadicOp |
---|
containsDeclaration, getChild, getDeclList, getExpr1, getExpr2, getLhs, getRhs, isSimpleOp, numChildren, setExpr1, setExpr2, setLhs, setRhs |
Methods inherited from class scale.clef.expr.Expression |
---|
canonical, 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 BitShiftOp(Type type, Expression e1, Expression e2, ShiftMode mode)
mode
- is the shift operation - right, left, etc.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 DyadicOp
Predicate
public void setShiftMode(ShiftMode mode)
public ShiftMode getShiftMode()
ShiftMode
public java.lang.String toStringSpecial()
Node
toStringSpecial
in class Expression
public Literal getConstantValue()
getConstantValue
in class Expression
Lattice
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |