stardiv.js.comp
Class ExprOperator
java.lang.Object
|
+--stardiv.js.comp.BaseNode
|
+--stardiv.js.comp.ExprNode
|
+--stardiv.js.comp.ExprOperator
- All Implemented Interfaces:
- stardiv.js.ip.BaseNodeAccess
- public synchronized class ExprOperator
- extends stardiv.js.comp.ExprNode
Field Summary |
static int |
ADDSUB_OP
|
static int |
ARRAY_CALL_OP
|
static int |
ASSIGNMENT_OP
|
static int |
BITSHIFT_OP
|
static int |
BIT_AND_OP
|
static int |
BIT_OR_OP
|
static int |
BIT_XOR_OP
|
static int |
COMMA_OP
|
static int |
CONDITIONAL_OP
|
static int |
ELEM_OP
|
static int |
EQUAL_OP
|
static int |
GREATERLESS_OP
|
private static byte |
INVALID
|
static int |
LOGICAL_AND_OP
|
static int |
LOGICAL_OR_OP
|
static int |
MULTDIV_OP
|
static int |
UNARY_OP
|
private static byte[] |
aTIDtoPCodes
|
private stardiv.js.comp.ExprNode |
lExpr
|
private int |
nOpId
|
private int |
nOpPrec
|
private stardiv.js.comp.ExprNode |
optExpr
|
private stardiv.js.comp.ExprNode |
rExpr
|
private java.lang.String |
sOpStrg
|
Fields inherited from class stardiv.js.comp.ExprNode |
aParentNode, nShiftValue, sSrc |
Fields inherited from class stardiv.js.comp.BaseNode |
iEndPos, iStartPos |
Constructor Summary |
ExprOperator(int i1,
java.lang.String s1,
int i2,
int i3,
java.lang.String s2)
|
Method Summary |
private int |
calculatePrecedence(int i)
|
private boolean |
checkForLValue(stardiv.js.comp.ExprNode en)
|
private boolean |
checkLValueForPostOpNode()
|
private boolean |
checkLValueForPreOpNode()
|
void |
genCode(stardiv.js.ip.CodeBlock cb,
stardiv.js.comp.CodeGenParam cgp,
boolean b1,
boolean b2,
boolean b3)
|
private void |
genCodeForCondOperator(stardiv.js.ip.CodeBlock cb,
stardiv.js.comp.CodeGenParam cgp)
|
private void |
genCodeForNode(stardiv.js.ip.CodeBlock cb,
stardiv.js.comp.CodeGenParam cgp,
boolean b1,
boolean b2,
boolean b3,
stardiv.js.comp.ExprNode en,
int i)
|
private void |
genCodeForPostOpNode(stardiv.js.ip.CodeBlock cb,
stardiv.js.comp.CodeGenParam cgp,
boolean b1,
boolean b2)
|
private void |
genCodeForPreOpNode(stardiv.js.ip.CodeBlock cb,
stardiv.js.comp.CodeGenParam cgp,
boolean b1,
boolean b2)
|
private void |
genCodeForTwoNodes(stardiv.js.ip.CodeBlock cb,
stardiv.js.comp.CodeGenParam cgp,
boolean b1,
boolean b2,
boolean b3)
|
private void |
genLValueCodeForNode(stardiv.js.ip.CodeBlock cb,
stardiv.js.comp.CodeGenParam cgp,
stardiv.js.comp.ExprNode en,
int i)
|
stardiv.js.comp.ExprNode |
getLeftExpr()
|
int |
getOpId()
|
stardiv.js.comp.ExprNode |
getOptExpr()
|
private int |
getParamCount(stardiv.js.comp.ExprNode en)
|
int |
getPrecedence()
|
stardiv.js.comp.ExprNode |
getRightExpr()
|
boolean |
hasCorrectOperands()
|
boolean |
hasEqualLowerPrecedenceThan(stardiv.js.comp.ExprOperator eo)
|
boolean |
hasLowerPrecedenceThan(stardiv.js.comp.ExprOperator eo)
|
private boolean |
hasNoParentOtherThanCallOrIndex()
|
void |
insertLeftExpr(stardiv.js.comp.ExprNode en)
|
void |
insertOptExpr(stardiv.js.comp.ExprNode en)
|
void |
insertRightExpr(stardiv.js.comp.ExprNode en)
|
boolean |
isAssignmentOperator()
|
boolean |
isCallOperator()
|
boolean |
isCallOrIndexOperator()
|
boolean |
isCommaOperator()
|
boolean |
isConditionalOperator()
|
boolean |
isConstant()
|
boolean |
isElemOperator()
|
boolean |
isIndexOperator()
|
boolean |
isLValue()
|
private boolean |
isNewOperator()
|
private boolean |
isSingleCall()
|
boolean |
isUnaryPostOperatorWithOperand()
|
boolean |
isUnaryPreOperatorWithOperand()
|
boolean |
isValidUnaryPostOperator()
|
boolean |
isValidUnaryPreOperator()
|
protected void |
releaseMem(stardiv.js.comp.Tokenizer t)
|
void |
setPrecedence(int i)
|
(package private) void |
show(java.io.PrintStream ps,
int i)
|
Methods inherited from class stardiv.js.comp.ExprNode |
getParent, getRoot, handleError, hasParent, insertParent, isSingleIdentifier, levelShift, levelShift, show, showTotalTree, showTree, showTree |
Methods inherited from class stardiv.js.comp.BaseNode |
getSrcEndPos, getSrcStartPos |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ADDSUB_OP
public static final int ADDSUB_OP
ARRAY_CALL_OP
public static final int ARRAY_CALL_OP
ASSIGNMENT_OP
public static final int ASSIGNMENT_OP
BITSHIFT_OP
public static final int BITSHIFT_OP
BIT_AND_OP
public static final int BIT_AND_OP
BIT_OR_OP
public static final int BIT_OR_OP
BIT_XOR_OP
public static final int BIT_XOR_OP
COMMA_OP
public static final int COMMA_OP
CONDITIONAL_OP
public static final int CONDITIONAL_OP
ELEM_OP
public static final int ELEM_OP
EQUAL_OP
public static final int EQUAL_OP
GREATERLESS_OP
public static final int GREATERLESS_OP
INVALID
private static byte INVALID
LOGICAL_AND_OP
public static final int LOGICAL_AND_OP
LOGICAL_OR_OP
public static final int LOGICAL_OR_OP
MULTDIV_OP
public static final int MULTDIV_OP
UNARY_OP
public static final int UNARY_OP
aTIDtoPCodes
private static byte[] aTIDtoPCodes
lExpr
private stardiv.js.comp.ExprNode lExpr
nOpId
private int nOpId
nOpPrec
private int nOpPrec
optExpr
private stardiv.js.comp.ExprNode optExpr
rExpr
private stardiv.js.comp.ExprNode rExpr
sOpStrg
private java.lang.String sOpStrg
ExprOperator
public ExprOperator(int i1,
java.lang.String s1,
int i2,
int i3,
java.lang.String s2)
calculatePrecedence
private final int calculatePrecedence(int i)
checkForLValue
private final boolean checkForLValue(stardiv.js.comp.ExprNode en)
checkLValueForPostOpNode
private final boolean checkLValueForPostOpNode()
checkLValueForPreOpNode
private final boolean checkLValueForPreOpNode()
genCode
public void genCode(stardiv.js.ip.CodeBlock cb,
stardiv.js.comp.CodeGenParam cgp,
boolean b1,
boolean b2,
boolean b3)
throws stardiv.js.base.ParserException
genCodeForCondOperator
private final void genCodeForCondOperator(stardiv.js.ip.CodeBlock cb,
stardiv.js.comp.CodeGenParam cgp)
throws stardiv.js.base.ParserException
genCodeForNode
private final void genCodeForNode(stardiv.js.ip.CodeBlock cb,
stardiv.js.comp.CodeGenParam cgp,
boolean b1,
boolean b2,
boolean b3,
stardiv.js.comp.ExprNode en,
int i)
throws stardiv.js.base.ParserException
genCodeForPostOpNode
private final void genCodeForPostOpNode(stardiv.js.ip.CodeBlock cb,
stardiv.js.comp.CodeGenParam cgp,
boolean b1,
boolean b2)
throws stardiv.js.base.ParserException
genCodeForPreOpNode
private final void genCodeForPreOpNode(stardiv.js.ip.CodeBlock cb,
stardiv.js.comp.CodeGenParam cgp,
boolean b1,
boolean b2)
throws stardiv.js.base.ParserException
genCodeForTwoNodes
private final void genCodeForTwoNodes(stardiv.js.ip.CodeBlock cb,
stardiv.js.comp.CodeGenParam cgp,
boolean b1,
boolean b2,
boolean b3)
throws stardiv.js.base.ParserException
genLValueCodeForNode
private final void genLValueCodeForNode(stardiv.js.ip.CodeBlock cb,
stardiv.js.comp.CodeGenParam cgp,
stardiv.js.comp.ExprNode en,
int i)
throws stardiv.js.base.ParserException
getLeftExpr
public stardiv.js.comp.ExprNode getLeftExpr()
getOpId
public final int getOpId()
getOptExpr
public stardiv.js.comp.ExprNode getOptExpr()
getParamCount
private final int getParamCount(stardiv.js.comp.ExprNode en)
getPrecedence
public final int getPrecedence()
getRightExpr
public stardiv.js.comp.ExprNode getRightExpr()
hasCorrectOperands
public boolean hasCorrectOperands()
hasEqualLowerPrecedenceThan
public final boolean hasEqualLowerPrecedenceThan(stardiv.js.comp.ExprOperator eo)
hasLowerPrecedenceThan
public final boolean hasLowerPrecedenceThan(stardiv.js.comp.ExprOperator eo)
hasNoParentOtherThanCallOrIndex
private final boolean hasNoParentOtherThanCallOrIndex()
insertLeftExpr
public void insertLeftExpr(stardiv.js.comp.ExprNode en)
insertOptExpr
public void insertOptExpr(stardiv.js.comp.ExprNode en)
insertRightExpr
public void insertRightExpr(stardiv.js.comp.ExprNode en)
isAssignmentOperator
public final boolean isAssignmentOperator()
isCallOperator
public final boolean isCallOperator()
isCallOrIndexOperator
public final boolean isCallOrIndexOperator()
isCommaOperator
public final boolean isCommaOperator()
isConditionalOperator
public final boolean isConditionalOperator()
isConstant
public boolean isConstant()
isElemOperator
public final boolean isElemOperator()
isIndexOperator
public final boolean isIndexOperator()
isLValue
public boolean isLValue()
isNewOperator
private final boolean isNewOperator()
isSingleCall
private final boolean isSingleCall()
isUnaryPostOperatorWithOperand
public final boolean isUnaryPostOperatorWithOperand()
isUnaryPreOperatorWithOperand
public final boolean isUnaryPreOperatorWithOperand()
isValidUnaryPostOperator
public final boolean isValidUnaryPostOperator()
isValidUnaryPreOperator
public final boolean isValidUnaryPreOperator()
releaseMem
protected void releaseMem(stardiv.js.comp.Tokenizer t)
setPrecedence
public final void setPrecedence(int i)
show
void show(java.io.PrintStream ps,
int i)