|
|||||||||
| 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.HeapOp
scale.clef.expr.AllocatePlacementOp
public class AllocatePlacementOp
This class represents a heap allocation operation that has a default value and a placement parameter.
$Id: AllocatePlacementOp.java,v 1.33 2007-08-28 17:58:20 burrill Exp $
Copyright 2008 by the
Scale Compiler Group,
Department of Computer Science
University of Massachusetts,
Amherst MA. 01003, USA
All Rights Reserved.
The result type of the operation should be a pointer to the object type (ie., a pointer to type).
| Constructor Summary | |
|---|---|
AllocatePlacementOp(Type rt,
Type alloctype,
Expression defv,
Expression placement)
|
|
| Method Summary | |
|---|---|
boolean |
equivalent(java.lang.Object exp)
Return true if the two expressions are equivalent. |
Node |
getChild(int i)
Return the specified AST child of this node. |
void |
getDeclList(java.util.AbstractCollection<Declaration> varList)
Add all declarations referenced in this expression to the collection. |
Expression |
getExpr()
Return the default value. |
Expression |
getPlacement()
Return the placement expression. |
int |
numChildren()
Return the number of AST children of this node. |
protected void |
setExpr(Expression expr)
Specify the default value. |
protected void |
setPlacement(Expression placement)
Specify the placement expression. |
void |
visit(Predicate p)
Process a node by calling its associated routine. |
| Methods inherited from class scale.clef.expr.HeapOp |
|---|
getAllocType |
| Methods inherited from class scale.clef.expr.Expression |
|---|
canonical, containsDeclaration, getConstantValue, getCoreType, getDisplayColorHint, getDisplayLabel, getDisplayShapeHint, getPointedToCore, getType, hasTrueFalseResult, isSimpleOp, setType, toStringSpecial |
| 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 AllocatePlacementOp(Type rt,
Type alloctype,
Expression defv,
Expression placement)
rt - is the type of the resultalloctype - is the type of the allocated object, not the type of the resultdefv - is the default valueplacement - is the placement expression| Method Detail |
|---|
public boolean equivalent(java.lang.Object exp)
equivalent in class HeapOppublic 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 HeapOpPredicatepublic final Expression getExpr()
public final Expression getPlacement()
protected final void setExpr(Expression expr)
protected final void setPlacement(Expression placement)
public Node getChild(int i)
getChild in class Nodepublic int numChildren()
numChildren in class Nodepublic void getDeclList(java.util.AbstractCollection<Declaration> varList)
Expression
getDeclList in class Expression
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||