Class: Eqn::EqnNode

Inherits:
Treetop::Runtime::SyntaxNode
  • Object
show all
Defined in:
lib/eqn/eqn_node.rb

Overview

Eqn parser node with helper methods for cleaning.

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

Returns:

  • (Boolean)


4
5
6
# File 'lib/eqn/eqn_node.rb', line 4

def term?
  elements.nil? || elements.empty?
end