Class InfixOPToken
- java.lang.Object
-
- com.tangosol.coherence.dsltools.precedence.OPToken
-
- com.tangosol.coherence.dsltools.precedence.InfixOPToken
-
- Direct Known Subclasses:
LikeOPToken
public class InfixOPToken extends OPToken
InfixOPToken is used to implement infix operators. If enabled it will also do the right thing for unary operators such as + and - which are typically overloaded.- Author:
- djl 2009.03.14
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
m_fPrefixAllowed
Flag that control whether the operator can be used as a prefix.-
Fields inherited from class com.tangosol.coherence.dsltools.precedence.OPToken
BINARY_OPERATOR_NODE, BINDING_NODE, CALL_NODE, DEREF_NODE, FIELD_LIST, IDENTIFIER_NODE, LIST_NODE, LITERAL_NODE, m_nBindingPower, m_sLedASTName, m_sNudASTName, m_sValue, PRECEDENCE_ASSIGNMENT, PRECEDENCE_BITWISE, PRECEDENCE_EXPONENT, PRECEDENCE_IDENTIFIER, PRECEDENCE_KEYWORD, PRECEDENCE_LOGICAL, PRECEDENCE_LOGICAL_BITWISE, PRECEDENCE_PARENTHESES, PRECEDENCE_PRODUCT, PRECEDENCE_RELATIONAL, PRECEDENCE_SUM, PRECEDENCE_UNARY, PRECEDENCE_UNARY_POST, UNARY_OPERATOR_NODE
-
-
Constructor Summary
Constructors Constructor Description InfixOPToken(String sId, int nBp)
Construct a new InfixOPToken with the given parameters.InfixOPToken(String sId, int nBp, String sASTName)
Construct a new InfixOPToken with the given parameters.InfixOPToken(String sId, int nBP, String sLedASTName, String sNudASTName)
Construct a new InfixOPToken with the given parameters.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
isPrefixAllowed()
Get the flag that control whether the operator can be used as a prefix.Term
led(OPParser p, Term leftNode)
Process this token and possibly the given leftNodein the context of a parser with the left denotation.Term
nud(OPParser p)
Process this token in the context of parser p with the null denotation.void
setPrefixAllowed(boolean fIsPrefix)
Set the flag that control whether the operator may be used as a prefix.-
Methods inherited from class com.tangosol.coherence.dsltools.precedence.OPToken
equals, getBindingPower, getId, getLedASTName, getNudASTName, getValue, hashCode, leftBindingPower, newAST, newAST, newAST, newAST, newAST, setBindingPower, setId, setLedASTName, setNudASTName, setValue, toString
-
-
-
-
Constructor Detail
-
InfixOPToken
public InfixOPToken(String sId, int nBp)
Construct a new InfixOPToken with the given parameters.- Parameters:
sId
- string identifier for this tokennBp
- the binding power for this token
-
InfixOPToken
public InfixOPToken(String sId, int nBp, String sASTName)
Construct a new InfixOPToken with the given parameters.- Parameters:
sId
- string representation of the tokennBp
- the binding power for this tokensASTName
- the name for this tokens AST
-
InfixOPToken
public InfixOPToken(String sId, int nBP, String sLedASTName, String sNudASTName)
Construct a new InfixOPToken with the given parameters.- Parameters:
sId
- string representation of the tokennBP
- the binding power for this tokensLedASTName
- the name for this tokens ASTsNudASTName
- the name for this tokens AST
-
-
Method Detail
-
led
public Term led(OPParser p, Term leftNode)
Process this token and possibly the given leftNodein the context of a parser with the left denotation. A led method typically will be interested t in the token to the left. The processing results in an Abstract Syntax Tree Node that captures the meaning
-
nud
public Term nud(OPParser p)
Process this token in the context of parser p with the null denotation. A nud method typically will have no interest in the token to the left. The processing results in an Abstract Syntax Tree Node that captures the meaning
-
isPrefixAllowed
public boolean isPrefixAllowed()
Get the flag that control whether the operator can be used as a prefix.- Returns:
- the string representation
-
setPrefixAllowed
public void setPrefixAllowed(boolean fIsPrefix)
Set the flag that control whether the operator may be used as a prefix.- Parameters:
fIsPrefix
- the string representation for the token
-
-