Sha256: a99f3800ddd7b3bd87da0fd3555b25027570284bdf8f0bbce9643b212d066f07

Contents?: true

Size: 436 Bytes

Versions: 2

Compression:

Stored size: 436 Bytes

Contents

require 'sexp_processor'

class CompositeSexpProcessor < SexpProcessor

  attr_reader :processors

  def initialize(*processors)
    super
    @processors = []
  end

  def <<(processor)
    raise ArgumentError, "Can only add sexp processors" unless
      SexpProcessor === processor
    @processors << processor
  end

  def process(exp)
    @processors.each do |processor|
      exp = processor.process(exp)
    end
    exp
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ParseTree-1.1.0 composite_sexp_processor.rb
ParseTree-1.1.1 composite_sexp_processor.rb