|
|||||||||
| 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.stmt.Statement
scale.clef.stmt.LoopStmt
scale.clef.stmt.TestLoopStmt
scale.clef.stmt.ForLoopStmt
public class ForLoopStmt
This class represents a C-style for loop statement.
$Id: ForLoopStmt.java,v 1.24 2005-03-24 13:57:07 burrill Exp $
Copyright 2005 by the Scale Compiler Group,
Department of Computer Science
University of Massachusetts,
Amherst MA. 01003, USA
All Rights Reserved.
| Constructor Summary | |
|---|---|
ForLoopStmt(Statement s,
Expression eInit,
Expression eTest,
Expression eInc)
|
|
| Method Summary | |
|---|---|
Node |
getChild(int i)
Return the specified AST child of this node. |
Expression |
getExprInc()
Return the increment expression. |
Expression |
getExprInit()
Return the initialization expression. |
Expression |
getExprTest()
Return the termination expression. |
int |
numChildren()
Return the number of AST children of this node. |
protected void |
setExprInc(Expression expr)
Specify the increment expression. |
protected void |
setExprInit(Expression expr)
Specify the initialization expression. |
protected void |
setExprTest(Expression expr)
Specify the termination expression. |
void |
visit(Predicate p)
Process a node by calling its associated routine. |
| Methods inherited from class scale.clef.stmt.TestLoopStmt |
|---|
getExpr, setExpr |
| Methods inherited from class scale.clef.stmt.LoopStmt |
|---|
containsLoopStmt, getStmt, hasReturnStmt, numTotalStmts, setStmt |
| Methods inherited from class scale.clef.stmt.Statement |
|---|
dump, getDisplayColorHint, getDisplayLabel, getDisplayShapeHint, getPragma, getSourceLineNumber, setPragma, setSourceLineNumber |
| Methods inherited from class scale.clef.Node |
|---|
getCoreType, getDecl, getType, setAnnotationLevel, setReportLevel, toString, toString, toStringChildren, 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 |
| Constructor Detail |
|---|
public ForLoopStmt(Statement s,
Expression eInit,
Expression eTest,
Expression eInc)
| Method Detail |
|---|
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 TestLoopStmtPredicatepublic final Expression getExprInit()
public final Expression getExprTest()
public final Expression getExprInc()
protected final void setExprInit(Expression expr)
protected final void setExprTest(Expression expr)
protected final void setExprInc(Expression expr)
public Node getChild(int i)
getChild in class TestLoopStmtpublic int numChildren()
numChildren in class TestLoopStmt
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||