scale.clef.expr
Class RemainderAssignmentOp
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.RemainderAssignmentOp
- All Implemented Interfaces:
- AnnotationInterface, DisplayNode
public class RemainderAssignmentOp
- extends CompoundAssignmentOp
This class represents x %= y
.
$Id: RemainderAssignmentOp.java,v 1.26 2006-12-18 21:36:49 burrill Exp $
Copyright 2006 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.
Method Summary |
void |
visit(Predicate p)
Process a node by calling its associated routine. |
Methods inherited from class scale.clef.expr.DyadicOp |
containsDeclaration, equivalent, 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, toStringSpecial |
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 |
RemainderAssignmentOp
public RemainderAssignmentOp(Type type,
Type calcType,
Expression lhs,
Expression ra)
- Parameters:
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 assignment
RemainderAssignmentOp
public RemainderAssignmentOp(Type type,
Expression lhs,
Expression ra)
visit
public void visit(Predicate p)
- Description copied from class:
Node
- Process a node by calling its associated routine.
See the "visitor" design pattern in Design Patterns:
Elements of Reusable Object-Oriented Software by E. Gamma,
et al, Addison Wesley, ISBN 0-201-63361-2.
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.
- Overrides:
visit
in class CompoundAssignmentOp
- See Also:
Predicate