Package ru.ispras.fortress.expression
Enum StandardOperation
- java.lang.Object
-
- java.lang.Enum<StandardOperation>
-
- ru.ispras.fortress.expression.StandardOperation
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Comparable<StandardOperation>
,TypeRule
public enum StandardOperation extends java.lang.Enum<StandardOperation> implements TypeRule
The StandardOperation.java enumeration contains identifiers that specify particular operations used in expressions.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
StandardOperation.Family
Describes the family of operands the operation manipulates with.
-
Enum Constant Summary
Enum Constants Enum Constant Description ABS
Group: Logic, Operation: Absolute value.ADD
Group: Logic, Operation: Addition.AND
Group: Logic, Operation: AND.BOOL2BV
Group: Bit Vector Cast, Operation: Cast boolean to bit vector of size 1.BV2BOOL
Group: Bit Vector Cast, Operation: Cast to boolean.BV2INT
Group: Bit Vector Cast, Operation: Cast bit vector to integer.BVADD
Group: Bitvector, Operation: Addition.BVAND
Group: Bitvector, Operation: Bitwise AND.BVANDR
Group: Bit Vector Reduction, Operation: Reduction AND (&).BVASHL
Group: Bitvector, Operation: Arithmetical shift left.BVASHR
Group: Bitvector, Operation: Signed (arithmetical) shift right.BVCONCAT
Group: Bitvector, Operation: Concatenation (expected operand order is from HIGH to LOW).BVEXTRACT
Group: Bitvector, Operation: Extraction of subvector.BVLSHL
Group: Bitvector, Operation: Logical shift left.BVLSHR
Group: Bitvector, Operation: Unsigned (BitVectorOperational) shift right.BVMUL
Group: Bitvector, Operation: Multiplication.BVNAND
Group: Bitvector, Operation: Bitwise NAND.BVNANDR
Group: Bit Vector Reduction, Operation: Reduction NAND (~&).BVNEG
Group: Bitvector, Operation: Unary minus.BVNOR
Group: Bitvector, Operation: Bitwise NOR.BVNORR
Group: Bit Vector Reduction, Operation: Reduction NOR (~|).BVNOT
Group: Bitvector, Operation: Bitwise NOT.BVOR
Group: Bitvector, Operation: Bitwise OR.BVORR
Group: Bit Vector Reduction, Operation: Reduction OR (|).BVREPEAT
Group: Bitvector, Operation: Replication (concatenation of several copies of bitvector).BVROL
Group: Bitvector, Operation: Rotate left.BVROR
Group: Bitvector, Operation: Rotate right.BVSDIV
Group: Bitvector, Operation: Signed division.BVSGE
Group: Bitvector, Operation: Signed greater or equal.BVSGT
Group: Bitvector, Operation: Signed greater than.BVSIGNEXT
Group: Bitvector, Operation: Extension to the signed equivalent.BVSLE
Group: Bitvector, Operation: Signed less or equal.BVSLT
Group: Bitvector, Operation: Signed less than.BVSMOD
Group: Bitvector, Operation: Signed modulo.BVSREM
Group: Bitvector, Operation: Signed remainder.BVSUB
Group: Bitvector, Operation: Subtraction.BVUDIV
Group: Bitvector, Operation: Unsigned division.BVUGE
Group: Bitvector, Operation: Unsigned greater or equal.BVUGT
Group: Bitvector, Operation: Unsigned greater than.BVULE
Group: Bitvector, Operation: Unsigned less or equal.BVULT
Group: Bitvector, Operation: Unsigned less than.BVUREM
Group: Bitvector, Operation: Unsigned remainder.BVXNOR
Group: Bitvector, Operation: Bitwise XNOR.BVXNORR
Group: Bit Vector Reduction, Operation: Reduction XNOR (~^).BVXOR
Group: Bitvector, Operation: Bitwise XOR.BVXORR
Group: Bit Vector Reduction, Operation: Reduction XOR (^).BVZEROEXT
Group: Bitvector, Operation: Extension by zeros.DIV
Group: Logic, Operation: Division.EQ
Group: Logic, Operation: Equality.EQCASE
Group: Logic, Operation: Case equality.FUNCTION
Group: Function Call.GREATER
Group: Logic, Operation: Greater.GREATEREQ
Group: Logic, Operation: Greater or equal.IMPL
Group: Logic, Operation: Implication.INT2BV
Group: Bit Vector Cast, Operation: Conversion to integer.ITE
Group: Logic, Operation: Conditional expression aka if-then-else.LESS
Group: Logic, Operation: Less.LESSEQ
Group: Logic, Operation: Less or equal.MAX
Group: Logic, Operation: Maximum.MIN
Group: Logic, Operation: Minimum.MINUS
Group: Logic, Operation: Unary minus.MOD
Group: Logic, Operation: Modulo.MUL
Group: Logic, Operation: Multiplication.NOT
Group: Logic, Operation: NOT.NOTEQ
Group: Logic, Operation: Not Equal.NOTEQCASE
Group: Logic, Operation: Case not equality.OR
Group: Logic, Operation: OR.PLUS
Group: Logic, Operation: Unary plus.POWER
Group: Logic, Operation: Power.REM
Group: Logic, Operation: Remainder.SELECT
Group: Array, Operation: Get stored value.STORE
Group: Array, Operation: Store value.SUB
Group: Logic, Operation: Subtraction.XOR
Group: Logic, Operation: XOR.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static java.util.Collection<java.lang.Enum<?>>
getBoolOperandOperations()
Returns the collection of operations are defined on operands of boolean type.static java.util.Collection<java.lang.Enum<?>>
getBvOperandOperations()
Returns the collection of operations are defined on operands of bit vector type.static java.util.Collection<java.lang.Enum<?>>
getDifferentBvOperandOperations()
Returns the collection of operations are defined on operands of different bit vector types.static java.util.Collection<java.lang.Enum<?>>
getIntOperandOperations()
Returns the collection of operations are defined on operands of integer type.static java.util.Collection<java.lang.Enum<?>>
getLogicOperandOperations()
Returns the collection of operations are defined on operands of logic types.static java.util.Collection<java.lang.Enum<?>>
getOneIntParamBvOperandOperations()
Returns the collection of operations are defined on operands of following types - one integer parameter and one bit vector operand.static int
getParameterCount(java.lang.Enum<?> operationId)
Returns the parameter number for the specified operation or0
if it is not parametric.static java.util.Collection<java.lang.Enum<?>>
getParamOperations()
Returns the collection of parametric operation identifiers.DataType
getResultType(DataType[] operandTypes, int[] params)
static java.util.Collection<java.lang.Enum<?>>
getSameBvOperandOperations()
Returns the collection of operations are defined on same bit vector type operands.static java.util.Collection<java.lang.Enum<?>>
getSameLogicNumOperandOperations()
Returns the collection of operations are defined on operands of logic numeric type.static java.util.Collection<java.lang.Enum<?>>
getSameOperandOperations()
Returns the collection of operations are defined on same type operands.static java.util.Collection<java.lang.Enum<?>>
getTwoIntParamBvOperandOperations()
Returns the collection of operations are defined on operands of following types - two integer parameters and one bit vector operand.static boolean
isFamily(java.lang.Enum<?> operationId, StandardOperation.Family family)
Checks whether the specified operation manipulates with operands belonging to the specified family.static boolean
isParametric(java.lang.Enum<?> operationId)
Checks whether the specified enumeration item represents a parametric operation.static StandardOperation
valueOf(java.lang.String name)
Returns the enum constant of this type with the specified name.static StandardOperation[]
values()
Returns an array containing the constants of this enum type, in the order they are declared.
-
-
-
Enum Constant Detail
-
FUNCTION
public static final StandardOperation FUNCTION
Group: Function Call.
-
EQ
public static final StandardOperation EQ
Group: Logic, Operation: Equality.
-
NOTEQ
public static final StandardOperation NOTEQ
Group: Logic, Operation: Not Equal.
-
EQCASE
public static final StandardOperation EQCASE
Group: Logic, Operation: Case equality.
-
NOTEQCASE
public static final StandardOperation NOTEQCASE
Group: Logic, Operation: Case not equality.
-
AND
public static final StandardOperation AND
Group: Logic, Operation: AND.
-
OR
public static final StandardOperation OR
Group: Logic, Operation: OR.
-
NOT
public static final StandardOperation NOT
Group: Logic, Operation: NOT.
-
XOR
public static final StandardOperation XOR
Group: Logic, Operation: XOR.
-
IMPL
public static final StandardOperation IMPL
Group: Logic, Operation: Implication.
-
ITE
public static final StandardOperation ITE
Group: Logic, Operation: Conditional expression aka if-then-else.
-
MINUS
public static final StandardOperation MINUS
Group: Logic, Operation: Unary minus.
-
PLUS
public static final StandardOperation PLUS
Group: Logic, Operation: Unary plus.
-
ADD
public static final StandardOperation ADD
Group: Logic, Operation: Addition.
-
SUB
public static final StandardOperation SUB
Group: Logic, Operation: Subtraction.
-
DIV
public static final StandardOperation DIV
Group: Logic, Operation: Division.
-
MUL
public static final StandardOperation MUL
Group: Logic, Operation: Multiplication.
-
REM
public static final StandardOperation REM
Group: Logic, Operation: Remainder.
-
MOD
public static final StandardOperation MOD
Group: Logic, Operation: Modulo.
-
LESS
public static final StandardOperation LESS
Group: Logic, Operation: Less.
-
LESSEQ
public static final StandardOperation LESSEQ
Group: Logic, Operation: Less or equal.
-
GREATER
public static final StandardOperation GREATER
Group: Logic, Operation: Greater.
-
GREATEREQ
public static final StandardOperation GREATEREQ
Group: Logic, Operation: Greater or equal.
-
POWER
public static final StandardOperation POWER
Group: Logic, Operation: Power.
-
ABS
public static final StandardOperation ABS
Group: Logic, Operation: Absolute value.
-
MIN
public static final StandardOperation MIN
Group: Logic, Operation: Minimum.
-
MAX
public static final StandardOperation MAX
Group: Logic, Operation: Maximum.
-
BVADD
public static final StandardOperation BVADD
Group: Bitvector, Operation: Addition.
-
BVSUB
public static final StandardOperation BVSUB
Group: Bitvector, Operation: Subtraction.
-
BVNEG
public static final StandardOperation BVNEG
Group: Bitvector, Operation: Unary minus.
-
BVMUL
public static final StandardOperation BVMUL
Group: Bitvector, Operation: Multiplication.
-
BVUDIV
public static final StandardOperation BVUDIV
Group: Bitvector, Operation: Unsigned division.
-
BVSDIV
public static final StandardOperation BVSDIV
Group: Bitvector, Operation: Signed division.
-
BVUREM
public static final StandardOperation BVUREM
Group: Bitvector, Operation: Unsigned remainder.
-
BVSREM
public static final StandardOperation BVSREM
Group: Bitvector, Operation: Signed remainder.
-
BVSMOD
public static final StandardOperation BVSMOD
Group: Bitvector, Operation: Signed modulo.
-
BVLSHL
public static final StandardOperation BVLSHL
Group: Bitvector, Operation: Logical shift left.
-
BVASHL
public static final StandardOperation BVASHL
Group: Bitvector, Operation: Arithmetical shift left.
-
BVLSHR
public static final StandardOperation BVLSHR
Group: Bitvector, Operation: Unsigned (BitVectorOperational) shift right.
-
BVASHR
public static final StandardOperation BVASHR
Group: Bitvector, Operation: Signed (arithmetical) shift right.
-
BVCONCAT
public static final StandardOperation BVCONCAT
Group: Bitvector, Operation: Concatenation (expected operand order is from HIGH to LOW).
-
BVREPEAT
public static final StandardOperation BVREPEAT
Group: Bitvector, Operation: Replication (concatenation of several copies of bitvector).
-
BVROL
public static final StandardOperation BVROL
Group: Bitvector, Operation: Rotate left.
-
BVROR
public static final StandardOperation BVROR
Group: Bitvector, Operation: Rotate right.
-
BVZEROEXT
public static final StandardOperation BVZEROEXT
Group: Bitvector, Operation: Extension by zeros.
-
BVSIGNEXT
public static final StandardOperation BVSIGNEXT
Group: Bitvector, Operation: Extension to the signed equivalent.
-
BVEXTRACT
public static final StandardOperation BVEXTRACT
Group: Bitvector, Operation: Extraction of subvector.
-
BVOR
public static final StandardOperation BVOR
Group: Bitvector, Operation: Bitwise OR.
-
BVXOR
public static final StandardOperation BVXOR
Group: Bitvector, Operation: Bitwise XOR.
-
BVAND
public static final StandardOperation BVAND
Group: Bitvector, Operation: Bitwise AND.
-
BVNOT
public static final StandardOperation BVNOT
Group: Bitvector, Operation: Bitwise NOT.
-
BVNAND
public static final StandardOperation BVNAND
Group: Bitvector, Operation: Bitwise NAND.
-
BVNOR
public static final StandardOperation BVNOR
Group: Bitvector, Operation: Bitwise NOR.
-
BVXNOR
public static final StandardOperation BVXNOR
Group: Bitvector, Operation: Bitwise XNOR.
-
BVULE
public static final StandardOperation BVULE
Group: Bitvector, Operation: Unsigned less or equal.
-
BVULT
public static final StandardOperation BVULT
Group: Bitvector, Operation: Unsigned less than.
-
BVUGE
public static final StandardOperation BVUGE
Group: Bitvector, Operation: Unsigned greater or equal.
-
BVUGT
public static final StandardOperation BVUGT
Group: Bitvector, Operation: Unsigned greater than.
-
BVSLE
public static final StandardOperation BVSLE
Group: Bitvector, Operation: Signed less or equal.
-
BVSLT
public static final StandardOperation BVSLT
Group: Bitvector, Operation: Signed less than.
-
BVSGE
public static final StandardOperation BVSGE
Group: Bitvector, Operation: Signed greater or equal.
-
BVSGT
public static final StandardOperation BVSGT
Group: Bitvector, Operation: Signed greater than.
-
BVANDR
public static final StandardOperation BVANDR
Group: Bit Vector Reduction, Operation: Reduction AND (&).
-
BVNANDR
public static final StandardOperation BVNANDR
Group: Bit Vector Reduction, Operation: Reduction NAND (~&).
-
BVORR
public static final StandardOperation BVORR
Group: Bit Vector Reduction, Operation: Reduction OR (|).
-
BVNORR
public static final StandardOperation BVNORR
Group: Bit Vector Reduction, Operation: Reduction NOR (~|).
-
BVXORR
public static final StandardOperation BVXORR
Group: Bit Vector Reduction, Operation: Reduction XOR (^).
-
BVXNORR
public static final StandardOperation BVXNORR
Group: Bit Vector Reduction, Operation: Reduction XNOR (~^).
-
BV2BOOL
public static final StandardOperation BV2BOOL
Group: Bit Vector Cast, Operation: Cast to boolean.
-
BOOL2BV
public static final StandardOperation BOOL2BV
Group: Bit Vector Cast, Operation: Cast boolean to bit vector of size 1.
-
BV2INT
public static final StandardOperation BV2INT
Group: Bit Vector Cast, Operation: Cast bit vector to integer.
-
INT2BV
public static final StandardOperation INT2BV
Group: Bit Vector Cast, Operation: Conversion to integer.
-
SELECT
public static final StandardOperation SELECT
Group: Array, Operation: Get stored value.
-
STORE
public static final StandardOperation STORE
Group: Array, Operation: Store value.
-
-
Method Detail
-
values
public static StandardOperation[] values()
Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:for (StandardOperation c : StandardOperation.values()) System.out.println(c);
- Returns:
- an array containing the constants of this enum type, in the order they are declared
-
valueOf
public static StandardOperation valueOf(java.lang.String name)
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)- Parameters:
name
- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
java.lang.IllegalArgumentException
- if this enum type has no constant with the specified namejava.lang.NullPointerException
- if the argument is null
-
isParametric
public static boolean isParametric(java.lang.Enum<?> operationId)
Checks whether the specified enumeration item represents a parametric operation.- Parameters:
operationId
- Operation identifier.- Returns:
true
is the specified enumeration item represents a parametric operation orfalse
otherwise.
-
getParameterCount
public static int getParameterCount(java.lang.Enum<?> operationId)
Returns the parameter number for the specified operation or0
if it is not parametric.- Parameters:
operationId
- Operation identifier.- Returns:
- Parameter number for the specified operation or
0
if it is not parametric.
-
isFamily
public static boolean isFamily(java.lang.Enum<?> operationId, StandardOperation.Family family)
Checks whether the specified operation manipulates with operands belonging to the specified family.- Parameters:
operationId
- Operation identifier.family
- Family identifier.- Returns:
true
if the specified operation manipulates with operands belonging to the specified family orfalse
otherwise.
-
getSameOperandOperations
public static java.util.Collection<java.lang.Enum<?>> getSameOperandOperations()
Returns the collection of operations are defined on same type operands.- Returns:
- The collection of operations are defined on same type operands.
-
getSameBvOperandOperations
public static java.util.Collection<java.lang.Enum<?>> getSameBvOperandOperations()
Returns the collection of operations are defined on same bit vector type operands.- Returns:
- The collection of operations are defined on same bit vector type operands.
-
getLogicOperandOperations
public static java.util.Collection<java.lang.Enum<?>> getLogicOperandOperations()
Returns the collection of operations are defined on operands of logic types.- Returns:
- The collection of operations are defined on operands of logic types.
-
getSameLogicNumOperandOperations
public static java.util.Collection<java.lang.Enum<?>> getSameLogicNumOperandOperations()
Returns the collection of operations are defined on operands of logic numeric type.- Returns:
- The collection of operations are defined on operands of logic numeric type.
-
getIntOperandOperations
public static java.util.Collection<java.lang.Enum<?>> getIntOperandOperations()
Returns the collection of operations are defined on operands of integer type.- Returns:
- The collection of operations are defined on operands of integer type.
-
getBoolOperandOperations
public static java.util.Collection<java.lang.Enum<?>> getBoolOperandOperations()
Returns the collection of operations are defined on operands of boolean type.- Returns:
- The collection of operations are defined on operands of boolean type.
-
getDifferentBvOperandOperations
public static java.util.Collection<java.lang.Enum<?>> getDifferentBvOperandOperations()
Returns the collection of operations are defined on operands of different bit vector types.- Returns:
- The collection of operations are defined on operands of different bit vector types.
-
getOneIntParamBvOperandOperations
public static java.util.Collection<java.lang.Enum<?>> getOneIntParamBvOperandOperations()
Returns the collection of operations are defined on operands of following types - one integer parameter and one bit vector operand.- Returns:
- The collection of operations are defined on operands of following types - one integer parameter and one bit vector operand.
-
getTwoIntParamBvOperandOperations
public static java.util.Collection<java.lang.Enum<?>> getTwoIntParamBvOperandOperations()
Returns the collection of operations are defined on operands of following types - two integer parameters and one bit vector operand.- Returns:
- The collection of operations are defined on operands of following types - two integer parameters and one bit vector operand.
-
getBvOperandOperations
public static java.util.Collection<java.lang.Enum<?>> getBvOperandOperations()
Returns the collection of operations are defined on operands of bit vector type.- Returns:
- The collection of operations are defined on operands of bit vector type.
-
getParamOperations
public static java.util.Collection<java.lang.Enum<?>> getParamOperations()
Returns the collection of parametric operation identifiers.- Returns:
- The collection of parametric operation identifiers.
-
getResultType
public final DataType getResultType(DataType[] operandTypes, int[] params)
- Specified by:
getResultType
in interfaceTypeRule
-
-