Class TernaryOperator
java.lang.Object
com.singularsys.jep.Operator
com.singularsys.jep.configurableparser.TernaryOperator
- All Implemented Interfaces:
PrintVisitor.PrintRulesI
,Serializable
A class representing a ternary operator, for example x?y:z.
These are represented by a linked pair of operators, a
TernaryOperator
and the
inner class RhsTernaryOperator
.- Author:
- Richard Morris Since 4.0 implements PrintRulesI
- See Also:
-
Nested Class Summary
Modifier and TypeClassDescriptionclass
Inner class used to represent the right-hand operator. -
Field Summary
Fields inherited from class com.singularsys.jep.Operator
ASSOCIATIVE, BINARY, COMMUTATIVE, COMPOSITE, EQUIVALENCE, flags, key, LEFT, name, NARY, NO_ARGS, NOT_IN_PARSER, pfmc, precedence, PREFIX, printSymbol, REFLEXIVE, RIGHT, SELF_INVERSE, SUFFIX, symbol, SYMMETRIC, TERNARY, TRANSITIVE, UNARY, USE_BINDING_FOR_PRINT
-
Constructor Summary
ConstructorDescriptionTernaryOperator
(String name, String lhsSymbol, String rhsSymbol, PostfixMathCommandI pfmc, int flags) Create a Ternary operator.TernaryOperator
(String name, String lhsSymbol, String rhsSymbol, PostfixMathCommandI pfmc, int flags, int precedence) Create a Ternary operator -
Method Summary
Modifier and TypeMethodDescriptionvoid
append
(Node node, PrintVisitor pv) The method called to append data for the rule.Get symbol used to for right-hand operatorvoid
setPrecedence
(int i) Set the precedence of the operator.Methods inherited from class com.singularsys.jep.Operator
addAltSymbol, duplicate, getAltSymbols, getBinaryInverseOp, getBinding, getFlags, getInverseOp, getKey, getName, getPFMC, getPrecedence, getPrintSymbol, getRootOp, getSymbol, isAssociative, isBinary, isCommutative, isComposite, isDistributiveOver, isEquivalence, isLeftBinding, isNary, isPrefix, isReflexive, isRightBinding, isSelfInverse, isSuffix, isSymmetric, isTernary, isTransitive, isUnary, notInParser, numArgs, setBinaryInverseOp, setDistributiveOver, setFlag, setInverseOp, setKey, setPFMC, setPrintSymbol, setRootOp, setSymbol, toFullString, toString, useBindingForPrint
-
Constructor Details
-
TernaryOperator
public TernaryOperator(String name, String lhsSymbol, String rhsSymbol, PostfixMathCommandI pfmc, int flags) Create a Ternary operator. Precedence level set later.- Parameters:
name
- verbose name for operatorlhsSymbol
- symbol for left-hand operator, typically "?"rhsSymbol
- symbol for right-hand operator, typically ":"pfmc
- function implementing the operation, typicallyTernaryConditional
flags
- status flags, typicallyOperator.TERNARY
-
TernaryOperator
public TernaryOperator(String name, String lhsSymbol, String rhsSymbol, PostfixMathCommandI pfmc, int flags, int precedence) Create a Ternary operator- Parameters:
name
- verbose name for operatorlhsSymbol
- symbol for left-hand operator, typically "?"rhsSymbol
- symbol for right-hand operator, typically ":"pfmc
- function implementing the operation, typicallyTernaryConditional
flags
- status flags, typicallyOperator.TERNARY
precedence
- precedence level
-
-
Method Details
-
getRhsSymbol
Get symbol used to for right-hand operator- Returns:
- the symbol
-
getRhsOperator
-
setPrecedence
public void setPrecedence(int i) Description copied from class:Operator
Set the precedence of the operator. Lower values correspond to tighter binding, that is * gives a lower value than + and 1+2*3 is 1+(2*3).- Overrides:
setPrecedence
in classOperator
- Parameters:
i
- the precedence
-
append
Description copied from interface:PrintVisitor.PrintRulesI
The method called to append data for the rule.- Specified by:
append
in interfacePrintVisitor.PrintRulesI
- Parameters:
node
- the node to printpv
- the PrintVisitor- Throws:
JepException
- on error- Since:
- 4.0
-