|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectat.dms.kjc.EmptyAttributeVisitor
at.dms.kjc.ReplacingVisitor
at.dms.kjc.SLIRReplacingVisitor
at.dms.kjc.sir.lowering.StructDestroyer
public class StructDestroyer
This class breaks up structures as much as possible. The goal is to break up structure assignments and modifications into regular assignments on local variable.
Field Summary |
---|
Fields inherited from class at.dms.kjc.EmptyAttributeVisitor |
---|
forwards |
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 | |
---|---|
StructDestroyer()
Construct new StructDestroyer. |
Method Summary | |
---|---|
void |
addFields(SIRStream str)
Call after visiting all methods. |
Object |
visitAssignmentExpression(JAssignmentExpression self,
JExpression left,
JExpression right)
Visit assignment expression. |
Object |
visitBlockStatement(JBlock self,
JavaStyleComment[] comments)
Visit block. |
Object |
visitCastExpression(JCastExpression self,
JExpression expr,
CType type)
Visit cast expression. |
Object |
visitFieldExpression(JFieldAccessExpression self,
JExpression left,
String ident)
Visit field expression. |
Object |
visitInitStatement(SIRInitStatement self,
SIRStream target)
Visit Init Statements. |
Object |
visitLocalVariableExpression(JLocalVariableExpression self,
String ident)
Visit local variable expression. |
Object |
visitMethodDeclaration(JMethodDeclaration self,
int modifiers,
CType returnType,
String ident,
JFormalParameter[] parameters,
CClassType[] exceptions,
JBlock body)
Visit method declaration. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public StructDestroyer()
Method Detail |
---|
public void addFields(SIRStream str)
str
- The SIRStream containing the methods.public Object visitFieldExpression(JFieldAccessExpression self, JExpression left, String ident)
visitFieldExpression
in interface AttributeVisitor<Object>
visitFieldExpression
in class ReplacingVisitor
self
- Visiting this JFieldAccessExpression.left
- Left hand side JExpression.ident
- Identifier of field access.public Object visitLocalVariableExpression(JLocalVariableExpression self, String ident)
visitLocalVariableExpression
in interface AttributeVisitor<Object>
visitLocalVariableExpression
in class EmptyAttributeVisitor
self
- Visiting this JLocalVariableExpression.ident
- Identifier of variable access.public Object visitAssignmentExpression(JAssignmentExpression self, JExpression left, JExpression right)
visitAssignmentExpression
in interface AttributeVisitor<Object>
visitAssignmentExpression
in class ReplacingVisitor
self
- Visiting this JAssignmentExpression.left
- Left hand side JExpression.right
- Right hand side JExpression.public Object visitCastExpression(JCastExpression self, JExpression expr, CType type)
visitCastExpression
in interface AttributeVisitor<Object>
visitCastExpression
in class ReplacingVisitor
self
- Visiting this JCastExpression.expr
- Expression being cast.type
- Type being cast to.public Object visitBlockStatement(JBlock self, JavaStyleComment[] comments)
visitBlockStatement
in interface AttributeVisitor<Object>
visitBlockStatement
in class ReplacingVisitor
self
- Visiting this JBlock.comments
- Comments attached to this block.public Object visitInitStatement(SIRInitStatement self, SIRStream target)
visitInitStatement
in interface SLIRAttributeVisitor<Object>
visitInitStatement
in class SLIRReplacingVisitor
self
- The SIRInitStatement being visited.target
- The expanded SIRStream init statement refers to.public Object visitMethodDeclaration(JMethodDeclaration self, int modifiers, CType returnType, String ident, JFormalParameter[] parameters, CClassType[] exceptions, JBlock body)
visitMethodDeclaration
in interface AttributeVisitor<Object>
visitMethodDeclaration
in class EmptyAttributeVisitor
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |