|
||||||||||
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.JNameExpression
public class JNameExpression
JLS 6.5.6 Expression Names.
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 |
JNameExpression()
|
|
JNameExpression(TokenReference where,
JExpression prefix,
String ident)
Construct a node in the parsing tree |
|
JNameExpression(TokenReference where,
String ident)
Construct a node in the parsing tree |
|
JNameExpression(TokenReference where,
String name,
boolean fullyQualified)
Construct a node in the parsing tree |
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). |
|
protected JFieldAccessExpression |
createClassField(TokenReference ref,
JExpression prefix,
String ident)
Since class field may be overloaded in sub compiler, this method allow you to specifie the type of class field without needed to touch the huge method above ! |
|
protected JFieldAccessExpression |
createClassField(TokenReference ref,
String ident)
Since class field may be overloaded in sub compiler, this method allow you to specifie the type of class field without needed to touch the huge method above ! |
|
Object |
deepClone()
Returns a deep clone of this object. |
|
protected void |
deepCloneInto(JNameExpression other)
Clones all fields of this into |
|
void |
genCode(CodeSequence code,
boolean discardValue)
Generates JVM bytecode to evaluate this expression. |
|
String |
getName()
|
|
JExpression |
getPrefix()
|
|
String |
getQualifiedName()
Returns the longest name available |
|
CType |
getType()
Compute the type of this expression (called after parsing) |
|
void |
setPrefix(JExpression p)
|
|
void |
setType(CType type)
Names do not have type (thus not really expressions). |
|
String |
toString()
Returns a string representation of this object. |
Methods inherited from class at.dms.kjc.JExpression |
---|
booleanValue, byteValue, charValue, convertType, convertType, deepCloneInto, doubleValue, fail, floatValue, genBranch, genEndStoreCode, genStartStoreCode, getIdent, getLiteral, intValue, isAssignableTo, isConstant, isDynamic, isFinal, isInitialized, isLValue, isStatementExpression, longValue, setInitialized, 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 JNameExpression()
public JNameExpression(TokenReference where, String ident)
where
- the line of this node in the source codepublic JNameExpression(TokenReference where, JExpression prefix, String ident)
where
- the line of this node in the source codepublic JNameExpression(TokenReference where, String name, boolean fullyQualified)
where
- the line of this node in the source codeMethod Detail |
---|
public CType getType()
getType
in class JExpression
public void setType(CType type)
setType
in class JExpression
type
- the CType to set.public String getName()
public void setPrefix(JExpression p)
public JExpression getPrefix()
public String getQualifiedName()
public String toString()
toString
in class Object
public JExpression analyse(CExpressionContext context) throws PositionedError
analyse
in class JExpression
context
- the analysis context
PositionedError
- the analysis detected an errorprotected JFieldAccessExpression createClassField(TokenReference ref, JExpression prefix, String ident)
protected JFieldAccessExpression createClassField(TokenReference ref, String ident)
public void accept(KjcVisitor p)
accept
in class JExpression
p
- the visitorpublic Object accept(AttributeVisitor p)
accept
in class JExpression
p
- the visitor
public <S,T> S accept(ExpressionVisitor<S,T> p, T o)
accept
in class JExpression
S
- 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 JExpression
code
- the bytecode sequencediscardValue
- discard the result of the evaluation ?public Object deepClone()
deepClone
in interface DeepCloneable
deepClone
in class JExpression
protected void deepCloneInto(JNameExpression other)
other
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |