|
||||||||||
| 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.JExpression
at.dms.kjc.JArrayAccessExpression
public class JArrayAccessExpression
15.12 Array Access Expressions This class implements an access through an array constant values may be folded at compile time
| Field Summary |
|---|
| Fields inherited from class at.dms.kjc.JExpression |
|---|
EMPTY |
| 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 | |
|---|---|
protected |
JArrayAccessExpression()
|
|
JArrayAccessExpression(JExpression prefix,
JExpression accessor)
|
|
JArrayAccessExpression(TokenReference where,
JExpression prefix,
JExpression accessor)
This version is the original kopi one; tries to resolve type automatically. |
|
JArrayAccessExpression(TokenReference where,
JExpression prefix,
JExpression accessor,
CType type)
|
| Method Summary | ||
|---|---|---|
Object |
accept(AttributeVisitor p)
Accepts the specified attribute visitor |
|
|
accept(ExpressionVisitor<S,T> p,
T o)
Accepts the specified visitor |
|
void |
accept(KjcVisitor p)
Accepts the specified visitor |
|
JExpression |
analyse(CExpressionContext context)
Analyses the expression (semantically). |
|
Object |
deepClone()
Returns a deep clone of this object. |
|
protected void |
deepCloneInto(JArrayAccessExpression other)
Clones all fields of this into |
|
void |
genCode(CodeSequence code,
boolean discardValue)
Generates JVM bytecode to evaluate this expression. |
|
void |
genEndStoreCode(CodeSequence code,
boolean discardValue)
Generates JVM bytecode to store a value into the storage location denoted by this expression. |
|
void |
genStartStoreCode(CodeSequence code)
Generates JVM bytecode to store a value into the storage location denoted by this expression. |
|
JExpression |
getAccessor()
|
|
String |
getIdent()
Used in field access expressions, local variable expression ... |
|
JExpression |
getPrefix()
|
|
CType |
getType()
Returns the type of this expression (call after parsing only) |
|
boolean |
isInitialized(CExpressionContext context)
|
|
boolean |
isLValue(CExpressionContext context)
Tests whether this expression can be at the left-hand side of an assignment, i.e. |
|
void |
setAccessor(JExpression a)
Set the accessor of this. |
|
void |
setInitialized(CExpressionContext context)
Declares this variable to be initialized. |
|
void |
setPrefix(JExpression p)
|
|
void |
setType(CType type)
Set the type of this expression. |
|
String |
toString()
|
|
| Methods inherited from class at.dms.kjc.JExpression |
|---|
booleanValue, byteValue, charValue, convertType, convertType, deepCloneInto, doubleValue, fail, floatValue, genBranch, getLiteral, intValue, isAssignableTo, isConstant, isDynamic, isFinal, isStatementExpression, longValue, shortValue, stringValue |
| 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, wait, wait, wait |
| Constructor Detail |
|---|
protected JArrayAccessExpression()
public JArrayAccessExpression(TokenReference where,
JExpression prefix,
JExpression accessor)
where - the line of this node in the source codeaccessor - a natural integer
public JArrayAccessExpression(JExpression prefix,
JExpression accessor)
public JArrayAccessExpression(TokenReference where,
JExpression prefix,
JExpression accessor,
CType type)
| Method Detail |
|---|
public String toString()
toString in class Objectpublic CType getType()
JExpression
getType in class JExpressionpublic JExpression getPrefix()
public JExpression getAccessor()
public boolean isInitialized(CExpressionContext context)
isInitialized in class JExpressionpublic void setInitialized(CExpressionContext context)
setInitialized in class JExpressionUnpositionedError - an error if this object can't actually
be assignated this may happen with final variables.public boolean isLValue(CExpressionContext context)
JExpression
isLValue in class JExpressionpublic String getIdent()
JExpression
getIdent in class JExpression
public JExpression analyse(CExpressionContext context)
throws PositionedError
analyse in class JExpressioncontext - the analysis context
PositionedError - the analysis detected an errorpublic void accept(KjcVisitor p)
accept in class JExpressionp - the visitorpublic Object accept(AttributeVisitor p)
accept in class JExpressionp - the visitor
public <S,T> S accept(ExpressionVisitor<S,T> p,
T o)
accept in class JExpressionS - output typeT - auxilliary input typep - the visitoro - object containing extra data to be passed to visitor
public void genCode(CodeSequence code,
boolean discardValue)
genCode in class JExpressioncode - the bytecode sequencediscardValue - discard the result of the evaluation ?public void genStartStoreCode(CodeSequence code)
genStartStoreCode in class JExpressioncode - the code list
public void genEndStoreCode(CodeSequence code,
boolean discardValue)
genEndStoreCode in class JExpressioncode - the code listdiscardValue - discard the result of the evaluation ?public void setAccessor(JExpression a)
public void setPrefix(JExpression p)
public void setType(CType type)
JExpression
setType in class JExpressiontype - the CType to set.public Object deepClone()
deepClone in interface DeepCloneabledeepClone in class JExpressionprotected void deepCloneInto(JArrayAccessExpression other)
other
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||