|
|||||||||
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.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 TestLoopStmt
Predicate
public 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 TestLoopStmt
public int numChildren()
numChildren
in class TestLoopStmt
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |