|
|||||||||
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.HeapOp scale.clef.expr.AllocateSettingFieldsOp
public class AllocateSettingFieldsOp
This class represents a heap allocation operation for an aggregate entity and then uses the specified positional arguments to initialize the entity.
$Id: AllocateSettingFieldsOp.java,v 1.35 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 | |
---|---|
AllocateSettingFieldsOp(Type rt,
Type alloctype,
Vector<Expression> al)
|
Method Summary | |
---|---|
boolean |
equivalent(java.lang.Object exp)
Return true if the two expressions are equivalent. |
java.util.Enumeration<Expression> |
getArgList()
Return the list of initialization expressions. |
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. |
int |
numChildren()
Return the number of AST children of this node. |
protected void |
setArgList(Vector<Expression> argList)
Specify the list of initialization expressions. |
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 AllocateSettingFieldsOp(Type rt, Type alloctype, Vector<Expression> al)
rt
- is the type of the resultalloctype
- is the type of the allocated object, not the type of the resultal
- is the list of initialization expressionsMethod Detail |
---|
public boolean equivalent(java.lang.Object exp)
equivalent
in class HeapOp
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 HeapOp
Predicate
public final java.util.Enumeration<Expression> getArgList()
protected final void setArgList(Vector<Expression> argList)
public Node getChild(int i)
getChild
in class Node
public int numChildren()
numChildren
in class Node
public 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 |