|
||||||||||
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.JBinaryExpression
at.dms.kjc.JBinaryArithmeticExpression
at.dms.kjc.JMinusExpression
public class JMinusExpression
This class implements '-' specific operations Plus operand may be String, numbers
Field Summary |
---|
Fields inherited from class at.dms.kjc.JBinaryExpression |
---|
left, right, type |
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 |
JMinusExpression()
|
|
JMinusExpression(TokenReference where,
JExpression left,
JExpression right)
Construct a node in the parsing tree This method is directly called by the parser |
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). |
|
double |
compute(double left,
double right)
Computes the result of the operation at compile-time (JLS 15.28). |
|
float |
compute(float left,
float right)
Computes the result of the operation at compile-time (JLS 15.28). |
|
int |
compute(int left,
int right)
Computes the result of the operation at compile-time (JLS 15.28). |
|
long |
compute(long left,
long right)
Computes the result of the operation at compile-time (JLS 15.28). |
|
static CType |
computeType(CType leftType,
CType rightType)
compute the type of this expression according to operands |
|
Object |
deepClone()
Returns a deep clone of this object. |
|
protected void |
deepCloneInto(JMinusExpression other)
Clones all fields of this into |
|
void |
genCode(CodeSequence code,
boolean discardValue)
Generates JVM bytecode to evaluate this expression. |
|
static int |
getOpcode(CType type)
|
|
CType |
getType()
Returns the type of this expression (call after parsing only) |
|
String |
toString()
|
Methods inherited from class at.dms.kjc.JBinaryArithmeticExpression |
---|
computeType, constantFolding, deepCloneInto |
Methods inherited from class at.dms.kjc.JBinaryExpression |
---|
deepCloneInto, genBooleanResultCode, genBranch, genBranch, getLeft, getRight, setLeft, setRight, setType |
Methods inherited from class at.dms.kjc.JExpression |
---|
booleanValue, byteValue, charValue, convertType, convertType, deepCloneInto, doubleValue, fail, floatValue, 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 JMinusExpression()
public JMinusExpression(TokenReference where, JExpression left, JExpression right)
where
- the line of this node in the source codeleft
- the left operandright
- the right operandMethod Detail |
---|
public String toString()
toString
in class Object
public JExpression analyse(CExpressionContext context) throws PositionedError
analyse
in class JBinaryArithmeticExpression
context
- the analysis context
PositionedError
- the analysis detected an errorpublic static CType computeType(CType leftType, CType rightType) throws UnpositionedError
leftType
- the type of left operandrightType
- the type of right operand
UnpositionedError
- this error will be positioned soonpublic CType getType()
JExpression
getType
in class JBinaryExpression
public int compute(int left, int right)
compute
in class JBinaryArithmeticExpression
left
- the first operandright
- the seconds operand
public long compute(long left, long right)
compute
in class JBinaryArithmeticExpression
left
- the first operandright
- the seconds operand
public float compute(float left, float right)
compute
in class JBinaryArithmeticExpression
left
- the first operandright
- the seconds operand
public double compute(double left, double right)
compute
in class JBinaryArithmeticExpression
left
- the first operandright
- the seconds operand
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 static int getOpcode(CType type)
type
- the type of result
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 JBinaryArithmeticExpression
protected void deepCloneInto(JMinusExpression other)
other
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |