Class: Eqn::EqnNode
- Inherits:
-
Treetop::Runtime::SyntaxNode
- Object
- Treetop::Runtime::SyntaxNode
- Eqn::EqnNode
- Defined in:
- lib/eqn/eqn_node.rb
Overview
Eqn parser node with helper methods for cleaning.
Direct Known Subclasses
Comparation, Comparation::CompGroup, Expression, Eqn::Expression::ExprGroup, Function::If, Function::RoundBase, Number, Number::Decimal, Number::Exponent, Number::SignedNumber, Terminal::CompOp, Terminal::Digits, Terminal::Op, Terminal::UnaryMinus, Terminal::Variable
Instance Method Summary collapse
Instance Method Details
#clean_tree! ⇒ Object
8 9 10 11 12 13 14 15 16 17 |
# File 'lib/eqn/eqn_node.rb', line 8 def clean_tree! # Return if node is a terminal. return if term? # Delete any cruft syntax nodes. elements.delete_if { |node| !node.is_a?(EqnNode) } # Recurse over any elements with their own children. elements.each(&:clean_tree!) end |
#term? ⇒ Boolean
4 5 6 |
# File 'lib/eqn/eqn_node.rb', line 4 def term? elements.nil? || elements.empty? end |