|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectscale.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 VarArgExprpublic Expr copy()
Expr
copy in class Exprpublic 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 NotePredicatepublic final FormalDecl getParmN()
protected final void setParmN(FormalDecl pn)
public int executionCostEstimate()
executionCostEstimate in class Notepublic 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 | ||||||||