Sha256: 4d36a9bff20934020c14c7be26a72f34c35a7363607363fa03a14f93160896e5

Contents?: true

Size: 753 Bytes

Versions: 7

Compression:

Stored size: 753 Bytes

Contents

module RipperRubyParser
  module SexpHandlers
    module Hashes
      def process_hash exp
        _, elems = exp.shift 2
        s(:hash, *process(elems))
      end

      def process_assoclist_from_args exp
        _, elems = exp.shift 2
        make_hash_items elems
      end

      def process_assoc_new exp
        _, left, right = exp.shift 3
        s(process(left), process(right))
      end

      def process_bare_assoc_hash exp
        _, elems = exp.shift 2
        s(:hash, *make_hash_items(elems))
      end

      private

      def make_hash_items elems
        result = s()
        elems.each {|sub_exp|
          process(sub_exp).each {|elm|
            result << elm
          }
        }
        result
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
ripper_ruby_parser-1.0.0 lib/ripper_ruby_parser/sexp_handlers/hashes.rb
ripper_ruby_parser-0.0.8 lib/ripper_ruby_parser/sexp_handlers/hashes.rb
ripper_ruby_parser-0.0.7 lib/ripper_ruby_parser/sexp_handlers/hashes.rb
ripper_ruby_parser-0.0.6 lib/ripper_ruby_parser/sexp_handlers/hashes.rb
ripper_ruby_parser-0.0.5 lib/ripper_ruby_parser/sexp_handlers/hashes.rb
ripper_ruby_parser-0.0.4 lib/ripper_ruby_parser/sexp_handlers/hashes.rb
ripper_ruby_parser-0.0.3 lib/ripper_ruby_parser/sexp_handlers/hashes.rb