|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object scale.common.Root scale.score.Note scale.score.expr.Expr scale.score.expr.VarArgExpr scale.score.expr.VaStartExpr
public class VaStartExpr
A class which represents the va_start(va_list, parmN) C construct in Score.
$Id: VaStartExpr.java,v 1.25 2007-01-05 19:06:46 burrill Exp $
Copyright 2008 by the
Scale Compiler Group,
Department of Computer Science
University of Massachusetts,
Amherst MA. 01003, USA
All Rights Reserved.
Field Summary |
---|
Fields inherited from class scale.score.expr.Expr |
---|
fpReorder, SE_DOMAIN, SE_NONE, SE_OVERFLOW, SE_STATE |
Constructor Summary | |
---|---|
VaStartExpr(Expr va_list,
FormalDecl pn)
|
Method Summary | |
---|---|
Expr |
copy()
Perform a deep copy of the expression tree. |
boolean |
equivalent(Expr exp)
Return true if the expressions are equivalent. |
int |
executionCostEstimate()
Return a relative cost estimate for executing the expression. |
FormalDecl |
getParmN()
Return the reference parameter of the calling function. |
protected void |
setParmN(FormalDecl pn)
Specify the reference parameter of the calling function. |
java.lang.String |
toStringSpecial()
Return any special information of a node that is not a child or annotation. |
void |
visit(Predicate p)
Process a node by calling its associated routine. |
Methods inherited from class scale.score.expr.VarArgExpr |
---|
containsDeclaration, dependsOnDeclaration, findCriticalChord, getDeclList, getExprList, getLoadExprList, getOperand, getOperandArray, getVaList, loopClean, numOperands, optimizationCandidate, pushOperands, recordRefs, removeRefs, removeUseDef, replaceDecl, setOperand, sideEffects, unlinkExpression, validate |
Methods inherited from class scale.score.Note |
---|
getChord, getEssentialUse, setAnnotationLevel, setReportLevel, toString |
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 VaStartExpr(Expr va_list, FormalDecl pn)
Method Detail |
---|
public boolean equivalent(Expr exp)
equivalent
in class VarArgExpr
public Expr copy()
Expr
copy
in class Expr
public void visit(Predicate p)
Note
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(Note n) { ABC a = (ABC) n; ... }Thus, the class that implements
Predicate
can call
n.visit(this);where
n
is a Note
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 Note
Predicate
public final FormalDecl getParmN()
protected final void setParmN(FormalDecl pn)
public int executionCostEstimate()
executionCostEstimate
in class Note
public java.lang.String toStringSpecial()
Root
toStringSpecial
in class Expr
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |