Class: SimpleLogic::PrecedenceTable::Operator
- Inherits:
-
Object
- Object
- SimpleLogic::PrecedenceTable::Operator
- Defined in:
- lib/simple_logic/precedence_table.rb
Instance Attribute Summary collapse
-
#associativity ⇒ Object
Returns the value of attribute associativity.
-
#precedence ⇒ Object
Returns the value of attribute precedence.
-
#symbol ⇒ Object
Returns the value of attribute symbol.
Instance Method Summary collapse
- #apply(l, r) ⇒ Object
-
#initialize(precedence, associativity, symbol) ⇒ Operator
constructor
A new instance of Operator.
- #left_associative? ⇒ Boolean
Constructor Details
#initialize(precedence, associativity, symbol) ⇒ Operator
Returns a new instance of Operator.
5 6 7 8 9 |
# File 'lib/simple_logic/precedence_table.rb', line 5 def initialize(precedence, associativity, symbol) @precedence = precedence @associativity = associativity @symbol = symbol end |
Instance Attribute Details
#associativity ⇒ Object
Returns the value of attribute associativity.
4 5 6 |
# File 'lib/simple_logic/precedence_table.rb', line 4 def associativity @associativity end |
#precedence ⇒ Object
Returns the value of attribute precedence.
4 5 6 |
# File 'lib/simple_logic/precedence_table.rb', line 4 def precedence @precedence end |
#symbol ⇒ Object
Returns the value of attribute symbol.
4 5 6 |
# File 'lib/simple_logic/precedence_table.rb', line 4 def symbol @symbol end |
Instance Method Details
#apply(l, r) ⇒ Object
15 16 17 18 19 20 21 22 23 |
# File 'lib/simple_logic/precedence_table.rb', line 15 def apply(l, r) if @symbol == "&&" l && r elsif @symbol == "||" l || r else raise "Invalid operator: #{@symbol}" end end |
#left_associative? ⇒ Boolean
11 12 13 |
# File 'lib/simple_logic/precedence_table.rb', line 11 def left_associative? @associativity == :left end |