Sha256: 2489f3949336d1dfabd0bedbfeade4ed012260b15343d6fadb6303f6aa6b3532

Contents?: true

Size: 572 Bytes

Versions: 21

Compression:

Stored size: 572 Bytes

Contents

require 'ast'
module ATP
  module AST
    class Extractor
      include ::AST::Processor::Mixin

      attr_reader :types
      attr_reader :results

      def process(node, types = nil)
        if types
          @types = types
          @results = []
          # node = AST::Node.new(:wrapper, node) unless node.respond_to?(:to_ast)
        end
        super(node) if node.respond_to?(:to_ast)
        results
      end

      def handler_missing(node)
        @results << node if types.include?(node.type)
        process_all(node.children)
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
atp-1.1.3 lib/atp/ast/extractor.rb
atp-1.1.2 lib/atp/ast/extractor.rb
atp-1.1.1 lib/atp/ast/extractor.rb
atp-1.1.0 lib/atp/ast/extractor.rb
atp-1.0.0 lib/atp/ast/extractor.rb
atp-0.8.0 lib/atp/ast/extractor.rb
atp-0.7.0 lib/atp/ast/extractor.rb
atp-0.6.0 lib/atp/ast/extractor.rb
atp-0.5.4 lib/atp/ast/extractor.rb
atp-0.5.3 lib/atp/ast/extractor.rb
atp-0.5.0 lib/atp/ast/extractor.rb
atp-0.4.3 lib/atp/ast/extractor.rb
atp-0.4.2 lib/atp/ast/extractor.rb
atp-0.4.1 lib/atp/ast/extractor.rb
atp-0.4.0 lib/atp/ast/extractor.rb
atp-0.3.3 lib/atp/ast/extractor.rb
atp-0.3.2 lib/atp/ast/extractor.rb
atp-0.3.1 lib/atp/ast/extractor.rb
atp-0.3.0 lib/atp/ast/extractor.rb
atp-0.2.1 lib/atp/ast/extractor.rb