#[derive(Eq, PartialEq, Debug, Copy, Clone)] pub enum PreOperator { Negative, Identity, Negation, Increment, Decrement, Complement, HandleOf, } #[derive(Eq, PartialEq, Debug, Copy, Clone)] pub enum PostOperator { Increment, Decrement, } #[derive(Eq, PartialEq, Debug, Copy, Clone)] pub enum BinaryOperator { // math op Addition, Subtraction, Multiplication, Division, Modulo, Exponentiation, // comp op Equality, Inequality, LessThan, LessThanEquals, GreaterThan, GreaterThanEquals, IdentityEquality, IdentityInequality, // logic op And, Or, Xor, // bit op BitwiseAnd, BitwiseOr, BitwiseXor, LeftShift, RightShift, ArithmeticRightShift, // assign op Assignment, AssignmentAddition, AssignmentSubtraction, AssignmentMultiplication, AssignmentDivision, AssignmentModulo, AssignmentExponentiation, AssignmentBitwiseAnd, AssignmentBitwiseOr, AssignmentBitwiseXor, AssignmentLeftShift, AssignmentRightShift, AssignmentArithmeticRightShift, } #[derive(Eq, PartialEq, Debug, Copy, Clone)] pub enum TernaryOperator { Conditional, }