|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectat.dms.util.Utils
at.dms.compiler.Phylum
at.dms.kjc.JPhylum
at.dms.kjc.JStatement
at.dms.kjc.JBlock
public class JBlock
JLS 14.2: Block TA block is a sequence of statements and local variable declaration statements within braces.
Field Summary | |
---|---|
protected LinkedList<JStatement> |
body
|
Fields inherited from class at.dms.util.Utils |
---|
EMPTY_LIST, getForLoopCallers |
Fields inherited from interface at.dms.kjc.Constants |
---|
CMP_VERSION, JAV_CLASS, JAV_CLONE, JAV_CLONEABLE, JAV_CONSTRUCTOR, JAV_ERROR, JAV_EXCEPTION, JAV_INIT, JAV_LENGTH, JAV_NAME_SEPARATOR, JAV_OBJECT, JAV_OUTER_THIS, JAV_RUNTIME, JAV_RUNTIME_EXCEPTION, JAV_STATIC_INIT, JAV_STRING, JAV_STRINGBUFFER, JAV_THIS, JAV_THROWABLE, OPE_BAND, OPE_BNOT, OPE_BOR, OPE_BSR, OPE_BXOR, OPE_EQ, OPE_GE, OPE_GT, OPE_LE, OPE_LNOT, OPE_LT, OPE_MINUS, OPE_NE, OPE_PERCENT, OPE_PLUS, OPE_POSTDEC, OPE_POSTINC, OPE_PREDEC, OPE_PREINC, OPE_SIMPLE, OPE_SL, OPE_SLASH, OPE_SR, OPE_STAR, TID_ARRAY, TID_BIT, TID_BOOLEAN, TID_BYTE, TID_CHAR, TID_CLASS, TID_DOUBLE, TID_FLOAT, TID_INT, TID_LONG, TID_SHORT, TID_VECTOR, TID_VOID, VECTOR_EMPTY |
Constructor Summary | |
---|---|
JBlock()
Construct a new JBlock with no statements inside. |
|
JBlock(JStatement[] body)
|
|
JBlock(List<JStatement> body)
|
|
JBlock(TokenReference where,
JStatement[] body,
JavaStyleComment[] comments)
Construct a node in the parsing tree |
|
JBlock(TokenReference where,
List<JStatement> body,
JavaStyleComment[] comments)
Construct a node in the parsing tree |
Method Summary | |
---|---|
Object |
accept(AttributeVisitor p)
Accepts the specified attribute visitor |
void |
accept(KjcVisitor p)
Accepts the specified visitor |
void |
addAllStatements(int pos,
List lst)
Adds all statements in |
void |
addAllStatements(JBlock b)
Adds all statements in |
void |
addAllStatements(List lst)
Adds all statements in |
void |
addAllStatementsFirst(List lst)
Adds |
void |
addStatement(int pos,
JStatement statement)
Adds statement to this, at the specified position. |
void |
addStatement(JStatement statement)
Adds |
void |
addStatementFirst(JStatement statement)
Adds |
void |
analyse(CBodyContext context)
Analyses the statement (semantically). |
JBlock |
copy()
Return a shallow copy of this block (don't copy any contained statements; just copy list of statements.) |
Object |
deepClone()
Returns a deep clone of this object. |
protected void |
deepCloneInto(JBlock other)
Clones all fields of this into |
void |
genCode(CodeSequence code)
Generates a sequence of bytescodes |
JStatement |
getStatement(int i)
Returns i'th statement. |
JStatement[] |
getStatementArray()
Returns array of statements in this. |
ListIterator |
getStatementIterator()
Returns iterator of statements in this. |
List<JStatement> |
getStatements()
Returns INTERNAL list of statements in this. |
boolean |
isEmpty()
Tests whether the block is empty. |
void |
removeStatement(int i)
|
void |
setStatement(int i,
JStatement statement)
|
int |
size()
|
Methods inherited from class at.dms.kjc.JStatement |
---|
deepCloneInto, fail, getBreakLabel, getComments, getContinueLabel, setComments |
Methods inherited from class at.dms.kjc.JPhylum |
---|
assertMutable, check, check, check, check, deepCloneInto, setLineNumber |
Methods inherited from class at.dms.compiler.Phylum |
---|
deepCloneInto, getTokenReference, setTokenReference |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected LinkedList<JStatement> body
Constructor Detail |
---|
public JBlock(TokenReference where, JStatement[] body, JavaStyleComment[] comments)
where
- the line of this node in the source codebody
- the statements contained in the blockcomments
- other comments in the source codepublic JBlock(JStatement[] body)
public JBlock(TokenReference where, List<JStatement> body, JavaStyleComment[] comments)
where
- the line of this node in the source codebody
- a list of statements contained in the blockcomments
- other comments in the source codepublic JBlock(List<JStatement> body)
public JBlock()
Method Detail |
---|
public JBlock copy()
public boolean isEmpty()
public void addStatement(JStatement statement)
statementto this.
public void addStatementFirst(JStatement statement)
statementto front of this.
public void addAllStatementsFirst(List lst)
statementto front of this.
public void addStatement(int pos, JStatement statement)
public void addAllStatements(int pos, List lst)
lstto this, at the specified position.
public void addAllStatements(List lst)
lstto end of this.
public void addAllStatements(JBlock b)
blkto end of this.
public void analyse(CBodyContext context) throws PositionedError
analyse
in class JStatement
context
- the analysis context
PositionedError
- the analysis detected an errorpublic void accept(KjcVisitor p)
accept
in class JStatement
p
- the visitorpublic Object accept(AttributeVisitor p)
accept
in class JStatement
p
- the visitorpublic void genCode(CodeSequence code)
genCode
in class JStatement
code
- the code listpublic List<JStatement> getStatements()
public JStatement getStatement(int i)
public JStatement[] getStatementArray()
public ListIterator getStatementIterator()
public void removeStatement(int i)
public int size()
public void setStatement(int i, JStatement statement)
public Object deepClone()
deepClone
in interface DeepCloneable
deepClone
in class JStatement
protected void deepCloneInto(JBlock other)
other
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |