Class: Eqn::Expression
- Defined in:
- lib/eqn/expression.rb
Overview
Node class for an expression.
Defined Under Namespace
Classes: ExprGroup
Instance Method Summary collapse
Methods inherited from EqnNode
Instance Method Details
#left_associative? ⇒ Boolean
4 5 6 |
# File 'lib/eqn/expression.rb', line 4 def left_associative? elements.any? && elements.last.left_associative? end |
#value(vars = {}) ⇒ Object
8 9 10 11 12 13 14 15 16 |
# File 'lib/eqn/expression.rb', line 8 def value(vars = {}) base = elements.shift.value(vars) # Aggressively consume left associative operators to maintain associativity. base = consume_while_left_associative(base, vars) # Apply next right-associative operator (if any) or return. apply_next_operator(base, vars) end |