Package org.glassfish.rmic.tools.tree
Class BinaryExpression
- java.lang.Object
-
- org.glassfish.rmic.tools.tree.Node
-
- org.glassfish.rmic.tools.tree.Expression
-
- org.glassfish.rmic.tools.tree.UnaryExpression
-
- org.glassfish.rmic.tools.tree.BinaryExpression
-
- All Implemented Interfaces:
java.lang.Cloneable
,Constants
,RuntimeConstants
- Direct Known Subclasses:
BinaryArithmeticExpression
,BinaryAssignExpression
,BinaryBitExpression
,BinaryCompareExpression
,BinaryEqualityExpression
,BinaryLogicalExpression
,BinaryShiftExpression
,CastExpression
,CommaExpression
,ConditionalExpression
,InstanceOfExpression
public class BinaryExpression extends UnaryExpression
WARNING: The contents of this source file are not part of any supported API. Code that depends on them does so at its own risk: they are subject to change or removal without notice.
-
-
Field Summary
Fields Modifier and Type Field Description (package private) Expression
left
-
Fields inherited from class org.glassfish.rmic.tools.tree.UnaryExpression
right
-
Fields inherited from class org.glassfish.rmic.tools.tree.Expression
type
-
Fields inherited from interface org.glassfish.rmic.tools.java.Constants
ABSTRACT, ACCM_CLASS, ACCM_FIELD, ACCM_INNERCLASS, ACCM_MEMBER, ACCM_METHOD, ADD, AND, ARRAY, ARRAYACCESS, ASGADD, ASGBITAND, ASGBITOR, ASGBITXOR, ASGDIV, ASGLSHIFT, ASGMUL, ASGREM, ASGRSHIFT, ASGSUB, ASGURSHIFT, ASSIGN, ATT_ALL, ATT_ALLCLASSES, ATT_CODE, BITAND, BITNOT, BITOR, BITXOR, BOOLEAN, BOOLEANVAL, BREAK, BYTE, BYTEVAL, CASE, CAST, CATCH, CHAR, CHARVAL, CLASS, COLON, COMMA, COMMENT, COND, CONST, CONTINUE, CONVERT, CS_BINARY, CS_CHECKED, CS_COMPILED, CS_NOTFOUND, CS_PARSED, CS_SOURCE, CS_UNDECIDED, CS_UNDEFINED, CT_BLOCK, CT_BRANCH_FALSE, CT_BRANCH_TRUE, CT_CASE, CT_FIKT_METHOD, CT_FIKT_RET, CT_FIRST_KIND, CT_LAST_KIND, CT_METHOD, CT_SWITH_WO_DEF, DEC, DECLARATION, DEFAULT, DIV, DO, DOUBLE, DOUBLEVAL, ELSE, EQ, ERROR, EXPR, EXPRESSION, EXTENDS, F_COVDATA, F_COVERAGE, F_DEBUG_LINES, F_DEBUG_SOURCE, F_DEBUG_VARS, F_DEPENDENCIES, F_DEPRECATION, F_DUMP, F_ERRORSREPORTED, F_OPT, F_OPT_INTERCLASS, F_PRINT_DEPENDENCIES, F_STRICTDEFAULT, F_VERBOSE, F_VERSION12, F_WARNINGS, FALSE, FIELD, FINAL, FINALLY, FLOAT, FLOATVAL, FOR, GE, GOTO, GT, idAppend, idClass, idClassInit, idClone, idCode, idConstantValue, idCoverageTable, idDeprecated, idDocumentation, IDENT, idExceptions, idFinallyReturnValue, idGetClass, idInit, idInnerClasses, idJavaIoSerializable, idJavaLang, idJavaLangClass, idJavaLangCloneable, idJavaLangError, idJavaLangException, idJavaLangObject, idJavaLangRuntimeException, idJavaLangString, idJavaLangStringBuffer, idJavaLangThrowable, idLength, idLineNumberTable, idLocalVariableTable, idNew, idNull, idSourceFile, idStar, idSuper, idSynthetic, idThis, idToString, idTYPE, idValueOf, IF, IMPLEMENTS, IMPORT, INC, INLINEMETHOD, INLINENEWINSTANCE, INLINERETURN, INSTANCEOF, INT, INTERFACE, INTVAL, LBRACE, LE, LENGTH, LONG, LONGVAL, LPAREN, LSHIFT, LSQBRACKET, LT, M_ABSTRACT, M_ANONYMOUS, M_DEPRECATED, M_FINAL, M_INLINEABLE, M_INTERFACE, M_LOCAL, M_NATIVE, M_PRIVATE, M_PROTECTED, M_PUBLIC, M_STATIC, M_STRICTFP, M_SYNCHRONIZED, M_SYNTHETIC, M_TRANSIENT, M_VOLATILE, MAXFILESIZE, MAXLINENUMBER, METHOD, MM_CLASS, MM_FIELD, MM_MEMBER, MM_METHOD, MUL, NATIVE, NE, NEG, NEW, NEWARRAY, NEWFROMNAME, NEWINSTANCE, NOT, NULL, opNames, opPrecedence, OR, PACKAGE, paraDeprecated, POS, POSTDEC, POSTINC, PREDEC, prefixAccess, prefixArray, prefixClass, prefixLoc, prefixThis, prefixVal, PREINC, PRIVATE, PROTECTED, PUBLIC, QUESTIONMARK, RBRACE, REM, RETURN, RPAREN, RSHIFT, RSQBRACKET, SEMICOLON, SHORT, SHORTVAL, SIG_INNERCLASS, SIGC_INNERCLASS, STAT, STATIC, STRICTFP, STRINGVAL, SUB, SUPER, SWITCH, SYNCHRONIZED, TC_ARRAY, TC_BOOLEAN, TC_BYTE, TC_CHAR, TC_CLASS, TC_DOUBLE, TC_ERROR, TC_FLOAT, TC_INT, TC_LONG, TC_METHOD, TC_NULL, TC_SHORT, TC_VOID, THIS, THROW, THROWS, TM_ARRAY, TM_BOOLEAN, TM_BYTE, TM_CHAR, TM_CLASS, TM_DOUBLE, TM_ERROR, TM_FLOAT, TM_INT, TM_INT32, TM_INTEGER, TM_LONG, TM_METHOD, TM_NULL, TM_NUM32, TM_NUM64, TM_NUMBER, TM_REAL, TM_REFERENCE, TM_SHORT, TM_VOID, tracing, TRANSIENT, TRUE, TRY, TYPE, URSHIFT, VARDECLARATION, VOID, VOLATILE, WHEREOFFSETBITS, WHILE
-
Fields inherited from interface org.glassfish.rmic.tools.java.RuntimeConstants
ACC_ABSTRACT, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_TRANSIENT, ACC_VOLATILE, CONSTANT_CLASS, CONSTANT_DOUBLE, CONSTANT_FIELD, CONSTANT_FLOAT, CONSTANT_INTEGER, CONSTANT_INTERFACEMETHOD, CONSTANT_INVOKEDYNAMIC, CONSTANT_LONG, CONSTANT_METHOD, CONSTANT_METHODHANDLE, CONSTANT_METHODTYPE, CONSTANT_NAMEANDTYPE, CONSTANT_STRING, CONSTANT_UNICODE, CONSTANT_UTF8, JAVA_DEFAULT_MINOR_VERSION, JAVA_DEFAULT_VERSION, JAVA_MAGIC, JAVA_MAX_SUPPORTED_MINOR_VERSION, JAVA_MAX_SUPPORTED_VERSION, JAVA_MIN_SUPPORTED_VERSION, 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_breakpoint, 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_dead, 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_invokedynamic, 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_label, 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_try, opc_wide, opcLengths, opcNames, SIG_ARRAY, SIG_BOOLEAN, SIG_BYTE, SIG_CHAR, SIG_CLASS, SIG_DOUBLE, SIG_ENDCLASS, SIG_ENDMETHOD, SIG_FLOAT, SIG_INT, SIG_LONG, SIG_METHOD, SIG_PACKAGE, SIG_SHORT, SIG_VOID, SIGC_ARRAY, SIGC_BOOLEAN, SIGC_BYTE, SIGC_CHAR, SIGC_CLASS, SIGC_DOUBLE, SIGC_ENDCLASS, SIGC_ENDMETHOD, SIGC_FLOAT, SIGC_INT, SIGC_LONG, SIGC_METHOD, SIGC_PACKAGE, SIGC_SHORT, SIGC_VOID, T_BOOLEAN, T_BYTE, T_CHAR, T_CLASS, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT
-
-
Constructor Summary
Constructors Constructor Description BinaryExpression(int op, long where, Type type, Expression left, Expression right)
Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Vset
checkValue(Environment env, Context ctx, Vset vset, java.util.Hashtable<java.lang.Object,java.lang.Object> exp)
Check a binary expression(package private) void
codeOperation(Environment env, Context ctx, Assembler asm)
Codevoid
codeValue(Environment env, Context ctx, Assembler asm)
Expression
copyInline(Context ctx)
Create a copy of the expression for method inliningint
costInline(int thresh, Environment env, Context ctx)
The cost of inlining this expression(package private) Expression
eval()
Evaluate.(package private) Expression
eval(boolean a, boolean b)
(package private) Expression
eval(double a, double b)
(package private) Expression
eval(float a, float b)
(package private) Expression
eval(int a, int b)
Evaluate(package private) Expression
eval(long a, long b)
(package private) Expression
eval(java.lang.String a, java.lang.String b)
Expression
inline(Environment env, Context ctx)
InlineExpression
inlineValue(Environment env, Context ctx)
boolean
isConstant()
Check if constantExpression
order()
Order the expression based on precedencevoid
print(java.io.PrintStream out)
Print-
Methods inherited from class org.glassfish.rmic.tools.tree.UnaryExpression
eval, eval, eval, eval, eval, eval, selectType
-
Methods inherited from class org.glassfish.rmic.tools.tree.Expression
check, checkAmbigName, checkAssignOp, checkCondition, checkCondition, checkInitializer, checkLHS, code, codeAppend, codeBranch, codeConversion, codeDup, codeLoad, codeLValue, codeStore, ensureString, equals, equals, equals, equals, equalsDefault, firstConstructor, fitsType, fitsType, getAssigner, getImplementation, getType, getUpdater, getValue, inlineLHS, inlineValueSB, isNonNull, isNull, precedence, simplify, toType
-
-
-
-
Field Detail
-
left
Expression left
-
-
Constructor Detail
-
BinaryExpression
BinaryExpression(int op, long where, Type type, Expression left, Expression right)
Constructor
-
-
Method Detail
-
order
public Expression order()
Order the expression based on precedence- Overrides:
order
in classUnaryExpression
-
checkValue
public Vset checkValue(Environment env, Context ctx, Vset vset, java.util.Hashtable<java.lang.Object,java.lang.Object> exp)
Check a binary expression- Overrides:
checkValue
in classUnaryExpression
-
isConstant
public boolean isConstant()
Check if constant- Overrides:
isConstant
in classUnaryExpression
-
eval
Expression eval(int a, int b)
Evaluate
-
eval
Expression eval(long a, long b)
-
eval
Expression eval(float a, float b)
-
eval
Expression eval(double a, double b)
-
eval
Expression eval(boolean a, boolean b)
-
eval
Expression eval(java.lang.String a, java.lang.String b)
-
eval
Expression eval()
Description copied from class:Expression
Evaluate. Attempt to compute the value of an expression node. If all operands are literal constants of the same kind (e.g., IntegerExpression nodes), a new constant node of the proper type is returned representing the value as computed at compile-time. Otherwise, the original node 'this' is returned.- Overrides:
eval
in classUnaryExpression
-
inline
public Expression inline(Environment env, Context ctx)
Inline- Overrides:
inline
in classUnaryExpression
-
inlineValue
public Expression inlineValue(Environment env, Context ctx)
- Overrides:
inlineValue
in classUnaryExpression
-
copyInline
public Expression copyInline(Context ctx)
Create a copy of the expression for method inlining- Overrides:
copyInline
in classUnaryExpression
-
costInline
public int costInline(int thresh, Environment env, Context ctx)
The cost of inlining this expression- Overrides:
costInline
in classUnaryExpression
-
codeOperation
void codeOperation(Environment env, Context ctx, Assembler asm)
Code
-
codeValue
public void codeValue(Environment env, Context ctx, Assembler asm)
- Overrides:
codeValue
in classExpression
-
print
public void print(java.io.PrintStream out)
Print- Overrides:
print
in classUnaryExpression
-
-