class Rip::Parser::Utilities::Normalizer

Public Class Methods

apply(origin, raw_tree) click to toggle source
# File source/rip/parser/utilities/normalizer.rb, line 9
def self.apply(origin, raw_tree)
  new.apply(raw_tree, origin: origin).tap do |tree|
    tree.traverse do |node|
      case
      when node.values.any? { |leaf| leaf.is_a?(Parslet::Slice) }
        raise Rip::Parser::NormalizeError.new('Unconverted parslet slice', origin, node)
      when node.key?(:expression_chain)
        shape = node.expression_chain.map do |key, value|
          [ key, value.class ]
        end.to_h
        warn shape
        raise Rip::Parser::NormalizeError.new('Unhandled expression_chain node', origin, node)
      else
        node
      end
    end
  end
end

Public Instance Methods

apply(raw_tree, context = nil) click to toggle source
Calls superclass method
# File source/rip/parser/utilities/normalizer.rb, line 5
def apply(raw_tree, context = nil)
  super(raw_tree, context)
end