|
||||||||||
| 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
public abstract class JBinaryArithmeticExpression
This class is an abstract root class for binary expressions
| 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 |
JBinaryArithmeticExpression()
|
|
JBinaryArithmeticExpression(TokenReference where,
JExpression left,
JExpression right)
Construct a node in the parsing tree This method is directly called by the parser |
| Method Summary | |
|---|---|
abstract 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(String operator,
CType left,
CType right)
compute the type of this expression according to operands |
JExpression |
constantFolding()
Computes the result of the operation at compile-time (JLS 15.28). |
Object |
deepClone()
Returns a deep clone of this object. |
protected void |
deepCloneInto(JBinaryArithmeticExpression other)
Clones all fields of this into |
| Methods inherited from class at.dms.kjc.JBinaryExpression |
|---|
deepCloneInto, genBooleanResultCode, genBranch, genBranch, getLeft, getRight, getType, setLeft, setRight, setType |
| Methods inherited from class at.dms.kjc.JExpression |
|---|
accept, accept, accept, booleanValue, byteValue, charValue, convertType, convertType, deepCloneInto, doubleValue, fail, floatValue, genCode, 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, toString, wait, wait, wait |
| Constructor Detail |
|---|
protected JBinaryArithmeticExpression()
public JBinaryArithmeticExpression(TokenReference where,
JExpression left,
JExpression right)
where - the line of this node in the source codeleft - left operandright - right operand| Method Detail |
|---|
public abstract JExpression analyse(CExpressionContext context)
throws PositionedError
analyse in class JExpressioncontext - the analysis context
PositionedError - the analysis detected an error
public static CType computeType(String operator,
CType left,
CType right)
throws UnpositionedError
operator - the binary arithmetic operatorleft - the type of left operandright - the type of right operand
UnpositionedError - this error will be positioned soonpublic JExpression constantFolding()
constantFolding in class JBinaryExpression
public int compute(int left,
int right)
left - the first operandright - the seconds operand
public long compute(long left,
long right)
left - the first operandright - the seconds operand
public float compute(float left,
float right)
left - the first operandright - the seconds operand
public double compute(double left,
double right)
left - the first operandright - the seconds operand
public Object deepClone()
deepClone in interface DeepCloneabledeepClone in class JBinaryExpressionprotected void deepCloneInto(JBinaryArithmeticExpression other)
other
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||