Package com.singularsys.jep.misc.javaops
Class JavaOperatorTable
java.lang.Object
com.singularsys.jep.EmptyOperatorTable
com.singularsys.jep.OperatorTable2
com.singularsys.jep.standard.StandardOperatorTable2
com.singularsys.jep.misc.bitwise.BitwiseOperatorTable
com.singularsys.jep.misc.javaops.JavaOperatorTable
- All Implemented Interfaces:
JepComponent
,OperatorTableI
,Serializable
An operator table which supports most of the operators which appear in Java. Includes ++x, x++, a?b:c, x+=y etc. and bitwise operators.
The full set added is:
a&b
,
a|b
,
~a
,
a^b
,
a>>b
,
a<<b
a<<<b
,
x?y:z
,
++x
, --x
, x++
, x--
,
x+=y
, x-=y
, x*=y
, x/=y
,
x%=y
, x&=y
, x|=y
, x^=y
,
x<<=y
, x>>=y
, x<<<=y
.
- Author:
- Richard Morris
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class com.singularsys.jep.misc.bitwise.BitwiseOperatorTable
BitwiseOperatorTable.BitwiseOperators
Nested classes/interfaces inherited from class com.singularsys.jep.OperatorTable2
OperatorTable2.BasicOperators, OperatorTable2.PsudoOperators, OperatorTable2.SpecialOperators
Nested classes/interfaces inherited from class com.singularsys.jep.EmptyOperatorTable
EmptyOperatorTable.OperatorKey
-
Constructor Summary
ModifierConstructorDescriptionA JavaOperatorTable with power represented as ** and xor as ^.JavaOperatorTable
(OperatorTable2 oldTable, String powerSymbol, String xorSymbol) A decorator constructor.JavaOperatorTable
(String powerSymbol) A JavaOperatorTable with xor represented as ^ and power as the argument.JavaOperatorTable
(String powerSymbol, String xorSymbol) A JavaOperatorTable with power and xor represented by the argumentsprotected
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
protected void
Create a new version of this OperatorTable.Methods inherited from class com.singularsys.jep.misc.bitwise.BitwiseOperatorTable
addBitOperators, getBitAnd, getBitComp, getBitOr, getBitXor, getLShift, getRShift, getURShift, setBasicPfmcs, setBitPfmcs, setPsudoPfmcs, setSpecialPfmcs
Methods inherited from class com.singularsys.jep.OperatorTable2
getAdd, getAnd, getAssign, getCross, getDivide, getDot, getEle, getEQ, getGE, getGT, getLE, getList, getLT, getMod, getMultiply, getNE, getNop, getNot, getOr, getPower, getRange, getSubtract, getUDivide, getUMinus, getUPlus
Methods inherited from class com.singularsys.jep.EmptyOperatorTable
addOperator, addOperator, addOperator, appendOperator, appendOperator, entrySet, getKey, getLightWeightInstance, getNumOps, getOperator, getOperatorMap, getOperators, getOperatorsByName, getOperatorsBySymbol, init, insertOperator, insertOperator, keySet, removeOperator, removeOperator, replaceOperator, replaceOperator, setBinaryInverseOp, setDistributiveOver, setGroupOperatorRelations, setGroupOperatorRelations, setInverseOp, setPrecedenceTable, setRootOp, setStandardOperatorRelations, threadSafeMapCopy, toString
-
Constructor Details
-
JavaOperatorTable
public JavaOperatorTable()A JavaOperatorTable with power represented as ** and xor as ^. -
JavaOperatorTable
A JavaOperatorTable with xor represented as ^ and power as the argument.- Parameters:
powerSymbol
- sequence used to represent power.
-
JavaOperatorTable
A JavaOperatorTable with power and xor represented by the arguments- Parameters:
powerSymbol
- string used to represent power.xorSymbol
- string used to represent xor.
-
JavaOperatorTable
A decorator constructor. Takes all the operators supplied in the oldTable and add extra bitwise and java operations.- Parameters:
oldTable
- table with most operators.powerSymbol
- string used to represent power.xorSymbol
- string used to represent xor.
-
JavaOperatorTable
-
-
Method Details
-
addJavaOps
protected void addJavaOps() -
setJavaPfmcs
protected void setJavaPfmcs() -
getPreInc
-
getPreDec
-
getPostInc
-
getPostDec
-
getTernCond
-
getPlusEquals
-
getMinusEquals
-
getTimesEquals
-
getDivideEquals
-
getModEquals
-
getAndEquals
-
getOrEquals
-
getXOrEquals
-
getLShiftEquals
-
getRShiftEquals
-
getURShiftEquals
-
shallowCopy
Description copied from class:EmptyOperatorTable
Create a new version of this OperatorTable. Operators are copied into new table. However, Operators whose pfmc implement JepComponent are duplicated. This means the table could be used in a separate thread without problem. Subclasses should override with method to return a table of the correct type, a typical implementation would be@Override public OperatorTableI shallowCopy() { Map<OperatorKey, Operator> map = this.threadSafeMapCopy(); return new MyOperatorTable(map); }
using theEmptyOperatorTable.threadSafeMapCopy()
method to return a copy of the map of operators and a constructor taking this map which uses theEmptyOperatorTable(Map)
constructor.- Specified by:
shallowCopy
in interfaceOperatorTableI
- Overrides:
shallowCopy
in classBitwiseOperatorTable
- Returns:
- a new Table
-