Module: Chelsy::Operator
- Defined in:
- lib/chelsy/ast.rb,
lib/chelsy/ast.rb
Defined Under Namespace
Classes: Access, Add, Address, And, Assign, AssignAdd, AssignBitwiseAnd, AssignBitwiseLeftRight, AssignBitwiseLeftShift, AssignBitwiseOr, AssignBitwiseXor, AssignDiv, AssignMul, AssignRem, AssignSub, Base, Binary, BitwiseAnd, BitwiseLeftShift, BitwiseNot, BitwiseOr, BitwiseRightShift, BitwiseXor, Call, Cast, Comma, Conditional, Defined, Dereference, Div, Equal, GreaterThan, GreaterThanOrEqual, IndirectAccess, LessThan, LessThanOrEqual, Minus, Mul, Not, NotEqual, Or, Plus, Postfix, PostfixDecrement, PostfixIncrement, Prefix, PrefixDecrement, PrefixIncrement, Rem, SizeOf, Sub, Subscription, Unary
Constant Summary collapse
- PRECEDENCE_TABLE =
--- Operator precedence The following table lists the precedence of operators. Operators are listed top to bottom, in descending precedence.
[ # -- highest [ PostfixIncrement, PostfixDecrement, Call, Subscription, Access, # Compound Literal ], [ PrefixIncrement, PrefixDecrement, Plus, Minus, Not, BitwiseNot, Cast, Dereference, Address, SizeOf, Defined, ], [ Mul, Div, Rem, ], [ Add, Sub, ], [ BitwiseLeftShift, BitwiseRightShift, ], [ LessThan, LessThanOrEqual, GreaterThan, GreaterThanOrEqual, ], [ Equal, NotEqual, ], [ BitwiseAnd, ], [ BitwiseXor, ], [ BitwiseOr, ], [ And, ], [ Or, ], [ Conditional, ], [ Assign, AssignAdd, AssignSub, AssignMul, AssignDiv, AssignRem, AssignBitwiseLeftShift, AssignBitwiseLeftRight, AssignBitwiseAnd, AssignBitwiseXor, AssignBitwiseOr, ], [ Comma, ], ]
- OPERATOR_PRECEDENCE =
This hash contains precedence value (Fixnum) by Operator::Base classes. Higher precedence has higher value.
{}.tap do |table| PRECEDENCE_TABLE.reverse.each_with_index do |op_classes, precedence| op_classes.each do |klass| table[klass] = precedence end end end