Operators/OperatorPrecedence.cs
namespace Expressive.Operators
{
// TODO: This is starting to feel wrong. Perhaps just a set of integers could be returned from IOperator?
/// <summary>
/// Enumeration of the different possible precedences of operators (basically the order in which operator gets chosen).
/// </summary>
public enum OperatorPrecedence
{
/// <summary>
/// The minimum precedence.
/// </summary>
Minimum = 0,
/// <summary>
/// The Or operator precedence.
/// </summary>
Or = 1,
/// <summary>
/// The And operator precedence.
/// </summary>
And = 2,
/// <summary>
/// The Equal operator precedence.
/// </summary>
Equal = 3,
/// <summary>
/// The NotEqual operator precedence.
/// </summary>
NotEqual = 4,
/// <summary>
/// The LessThan operator precedence.
/// </summary>
LessThan = 5,
/// <summary>
/// The GreaterThan operator precedence.
/// </summary>
GreaterThan = 6,
/// <summary>
/// The LessThanOrEqual operator precedence.
/// </summary>
LessThanOrEqual = 7,
/// <summary>
/// The GreaterThanOrEqual operator precedence.
/// </summary>
GreaterThanOrEqual = 8,
/// <summary>
/// The Not operator precedence.
/// </summary>
Not = 9,
/// <summary>
/// The BitwiseOr operator precedence.
/// </summary>
BitwiseOr = 10,
/// <summary>
/// The BitwiseXOr operator precedence.
/// </summary>
BitwiseXOr = 11,
/// <summary>
/// The BitwiseAnd operator precedence.
/// </summary>
BitwiseAnd = 12,
/// <summary>
/// The LeftShift operator precedence.
/// </summary>
LeftShift = 13,
/// <summary>
/// The RightShift operator precedence.
/// </summary>
RightShift = 14,
/// <summary>
/// The Add operator precedence.
/// </summary>
Add = 15,
/// <summary>
/// The Subtract operator precedence.
/// </summary>
Subtract = 16,
/// <summary>
/// The Multiply operator precedence.
/// </summary>
Multiply = 17,
/// <summary>
/// The Modulus operator precedence.
/// </summary>
Modulus = 18,
/// <summary>
/// The Divide operator precedence.
/// </summary>
Divide = 19,
/// <summary>
/// The NullCoalescing operator precedence.
/// </summary>
NullCoalescing = 20,
/// <summary>
/// The UnaryPlus operator precedence.
/// </summary>
UnaryPlus = 21,
/// <summary>
/// The UnaryMinus operator precedence.
/// </summary>
UnaryMinus = 22,
/// <summary>
/// The ParenthesisOpen operator precedence.
/// </summary>
ParenthesisOpen = 23,
/// <summary>
/// The ParenthesisClose operator precedence.
/// </summary>
ParenthesisClose = 24
}
}