at.dms.kjc
Class JDoubleLiteral

java.lang.Object
  extended by at.dms.util.Utils
      extended by at.dms.compiler.Phylum
          extended by at.dms.kjc.JPhylum
              extended by at.dms.kjc.JExpression
                  extended by at.dms.kjc.JLiteral
                      extended by at.dms.kjc.JDoubleLiteral
All Implemented Interfaces:
Constants, DeepCloneable, Finalizable, Serializable

public class JDoubleLiteral
extends JLiteral

JLS 3.10.2 Floating-Point Literals. This class represents double literals.

See Also:
Serialized Form

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
 
Fields inherited from interface at.dms.classfile.Constants
ACC_ABSTRACT, ACC_FINAL, ACC_INLINE, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_TRANSIENT, ACC_VOLATILE, ATT_CODE, ATT_CONSTANTVALUE, ATT_DEPRECATED, ATT_EXCEPTIONS, ATT_GENERIC, ATT_INNERCLASSES, ATT_LINENUMBERTABLE, ATT_LOCALVARIABLETABLE, ATT_SOURCEFILE, ATT_SYNTHETIC, CST_CLASS, CST_DOUBLE, CST_FIELD, CST_FLOAT, CST_INTEGER, CST_INTERFACEMETHOD, CST_LONG, CST_METHOD, CST_NAMEANDTYPE, CST_STRING, CST_UTF8, ENV_DEBUG_MODE, ENV_USE_CACHE, JAVA_MAGIC, JAVA_MAJOR, JAVA_MINOR, MAX_CODE_PER_METHOD, opc_aaload, opc_aastore, opc_aconst_null, opc_aload, opc_aload_0, opc_aload_1, opc_aload_2, opc_aload_3, opc_anewarray, opc_areturn, opc_arraylength, opc_astore, opc_astore_0, opc_astore_1, opc_astore_2, opc_astore_3, opc_athrow, opc_baload, opc_bastore, opc_bipush, opc_caload, opc_castore, opc_checkcast, opc_d2f, opc_d2i, opc_d2l, opc_dadd, opc_daload, opc_dastore, opc_dcmpg, opc_dcmpl, opc_dconst_0, opc_dconst_1, opc_ddiv, opc_dload, opc_dload_0, opc_dload_1, opc_dload_2, opc_dload_3, opc_dmul, opc_dneg, opc_drem, opc_dreturn, opc_dstore, opc_dstore_0, opc_dstore_1, opc_dstore_2, opc_dstore_3, opc_dsub, opc_dup, opc_dup_x1, opc_dup_x2, opc_dup2, opc_dup2_x1, opc_dup2_x2, opc_f2d, opc_f2i, opc_f2l, opc_fadd, opc_faload, opc_fastore, opc_fcmpg, opc_fcmpl, opc_fconst_0, opc_fconst_1, opc_fconst_2, opc_fdiv, opc_fload, opc_fload_0, opc_fload_1, opc_fload_2, opc_fload_3, opc_fmul, opc_fneg, opc_frem, opc_freturn, opc_fstore, opc_fstore_0, opc_fstore_1, opc_fstore_2, opc_fstore_3, opc_fsub, opc_getfield, opc_getstatic, opc_goto, opc_goto_w, opc_i2b, opc_i2c, opc_i2d, opc_i2f, opc_i2l, opc_i2s, opc_iadd, opc_iaload, opc_iand, opc_iastore, opc_iconst_0, opc_iconst_1, opc_iconst_2, opc_iconst_3, opc_iconst_4, opc_iconst_5, opc_iconst_m1, opc_idiv, opc_if_acmpeq, opc_if_acmpne, opc_if_icmpeq, opc_if_icmpge, opc_if_icmpgt, opc_if_icmple, opc_if_icmplt, opc_if_icmpne, opc_ifeq, opc_ifge, opc_ifgt, opc_ifle, opc_iflt, opc_ifne, opc_ifnonnull, opc_ifnull, opc_iinc, opc_iload, opc_iload_0, opc_iload_1, opc_iload_2, opc_iload_3, opc_imul, opc_ineg, opc_instanceof, opc_invokeinterface, opc_invokespecial, opc_invokestatic, opc_invokevirtual, opc_ior, opc_irem, opc_ireturn, opc_ishl, opc_ishr, opc_istore, opc_istore_0, opc_istore_1, opc_istore_2, opc_istore_3, opc_isub, opc_iushr, opc_ixor, opc_jsr, opc_jsr_w, opc_l2d, opc_l2f, opc_l2i, opc_ladd, opc_laload, opc_land, opc_lastore, opc_lcmp, opc_lconst_0, opc_lconst_1, opc_ldc, opc_ldc_w, opc_ldc2_w, opc_ldiv, opc_lload, opc_lload_0, opc_lload_1, opc_lload_2, opc_lload_3, opc_lmul, opc_lneg, opc_lookupswitch, opc_lor, opc_lrem, opc_lreturn, opc_lshl, opc_lshr, opc_lstore, opc_lstore_0, opc_lstore_1, opc_lstore_2, opc_lstore_3, opc_lsub, opc_lushr, opc_lxor, opc_monitorenter, opc_monitorexit, opc_multianewarray, opc_new, opc_newarray, opc_nop, opc_pop, opc_pop2, opc_putfield, opc_putstatic, opc_ret, opc_return, opc_saload, opc_sastore, opc_sipush, opc_swap, opc_tableswitch, opc_wide, opc_xxxunusedxxx, POO_ASCII_CONSTANT, POO_CLASS_CONSTANT, POO_DOUBLE_CONSTANT, POO_FLOAT_CONSTANT, POO_INTEGER_CONSTANT, POO_LONG_CONSTANT, POO_NAT_CONSTANT, POO_REF_CONSTANT, POO_STRING_CONSTANT, TYP_ADDRESS, TYP_DOUBLE, TYP_FLOAT, TYP_INT, TYP_LONG, TYP_REFERENCE, TYP_VOID
 
Constructor Summary
protected JDoubleLiteral()
           
  JDoubleLiteral(TokenReference where, double value)
          Constructs a literal expression from a constant value.
  JDoubleLiteral(TokenReference where, String image)
          Constructs a literal expression from a textual representation.
 
Method Summary
 Object accept(AttributeVisitor p)
          Accepts the specified attribute visitor
<S,T> S
accept(ExpressionVisitor<S,T> p, T o)
          Accepts the specified visitor
 void accept(KjcVisitor p)
          Accepts the specified visitor
 String convertToString()
          For up-casting into a string type.
 JExpression convertType(CType dest, CExpressionContext context)
          convertType changes the type of this expression to an other
 Object deepClone()
          Returns a deep clone of this object.
protected  void deepCloneInto(JDoubleLiteral other)
          Clones all fields of this into
 double doubleValue()
          Returns the constant value of the expression.
 boolean equals(Object o)
          Returns whether or
 void genCode(CodeSequence code, boolean discardValue)
          Generates JVM bytecode to evaluate this expression.
 CType getType()
          Returns the type of this expression.
 boolean isDefault()
          Returns true iff the value of this literal is the default value for this type (JLS 4.5.5).
 String toString()
           
 
Methods inherited from class at.dms.kjc.JLiteral
analyse, deepCloneInto, getLiteral, isConstant, parseInteger, parseReal, setType
 
Methods inherited from class at.dms.kjc.JExpression
booleanValue, byteValue, charValue, convertType, deepCloneInto, fail, floatValue, genBranch, genEndStoreCode, genStartStoreCode, getIdent, intValue, isAssignableTo, 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 at.dms.util.Utils
asPercent, cellMathEquivalent, cMathEquivalent, cppMathEquivalent, deepCloneInto, equalArrays, fail, getEnvironmentVariable, getExpression, hasPeeks, initArray, initArray, initLiteralArray, intArrayToList, isMathMethod, isUniform, kopi_assert, kopi_assert, makeCountdownForLoop, makeDotFileName, makeForLoop, makeForLoop, makeForLoop, makeForLoopFieldIndex, makeForLoopLocalIndex, nextPow2, passThruParens, peelMarkers, popBeforePeek, readFile, removeUnusedPops, replaceAll, setupDotFileName, simplifyMathMethod, splitQualifiedName, splitQualifiedName, toArray, toIntArray, toVector, voidToInt, writeFile
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

JDoubleLiteral

protected JDoubleLiteral()

JDoubleLiteral

public JDoubleLiteral(TokenReference where,
                      String image)
               throws PositionedError
Constructs a literal expression from a textual representation.

Parameters:
where - the line of this node in the source code
image - the textual representation of this literal
Throws:
PositionedError

JDoubleLiteral

public JDoubleLiteral(TokenReference where,
                      double value)
Constructs a literal expression from a constant value.

Parameters:
where - the line of this node in the source code
value - the constant value
Method Detail

toString

public String toString()
Overrides:
toString in class Object

getType

public CType getType()
Returns the type of this expression.

Specified by:
getType in class JExpression

doubleValue

public double doubleValue()
Returns the constant value of the expression.

Overrides:
doubleValue in class JExpression

isDefault

public boolean isDefault()
Returns true iff the value of this literal is the default value for this type (JLS 4.5.5).

Specified by:
isDefault in class JLiteral

convertToString

public String convertToString()
Description copied from class: JLiteral
For up-casting into a string type.

Specified by:
convertToString in class JLiteral

convertType

public JExpression convertType(CType dest,
                               CExpressionContext context)
convertType changes the type of this expression to an other

Specified by:
convertType in class JLiteral
Parameters:
dest - the destination type

accept

public void accept(KjcVisitor p)
Accepts the specified visitor

Specified by:
accept in class JExpression
Parameters:
p - the visitor

accept

public Object accept(AttributeVisitor p)
Accepts the specified attribute visitor

Specified by:
accept in class JExpression
Parameters:
p - the visitor
Returns:
data to pass back up

accept

public <S,T> S accept(ExpressionVisitor<S,T> p,
                      T o)
Accepts the specified visitor

Specified by:
accept in class JExpression
Type Parameters:
S - output type
T - auxilliary input type
Parameters:
p - the visitor
o - object containing extra data to be passed to visitor
Returns:
object containing data generated by visitor

genCode

public void genCode(CodeSequence code,
                    boolean discardValue)
Generates JVM bytecode to evaluate this expression.

Specified by:
genCode in class JExpression
Parameters:
code - the bytecode sequence
discardValue - discard the result of the evaluation ?

equals

public boolean equals(Object o)
Returns whether or
o
this represents a literal with the same value as this.

Overrides:
equals in class Object

deepClone

public Object deepClone()
Returns a deep clone of this object.

Specified by:
deepClone in interface DeepCloneable
Overrides:
deepClone in class JLiteral

deepCloneInto

protected void deepCloneInto(JDoubleLiteral other)
Clones all fields of this into
other