Sha256: 00fe7782ec47a1575cb4267d53bf36350ace0b5f3b695f6967bc269ea702b069

Contents?: true

Size: 1.48 KB

Versions: 4

Compression:

Stored size: 1.48 KB

Contents

module RipperRubyParser
  module SexpHandlers
    module MethodCalls
      def process_method_add_arg exp
        _, call, parens = exp.shift 3
        call = process(call)
        call[3] = process(parens) unless parens.empty?
        call
      end

      def process_call exp
        _, receiver, _, ident = exp.shift 4
        with_position_from_node_symbol(ident) {|method|
          s(:call, process(receiver), method, s(:arglist)) }
      end

      def process_command exp
        _, ident, arglist = exp.shift 3
        with_position_from_node_symbol(ident) {|method|
          s(:call, nil, method,
            handle_potentially_typeless_sexp_with_fallback_type(:arglist, arglist))
        }
      end

      def process_command_call exp
        _, receiver, _, ident, arguments = exp.shift 5
        with_position_from_node_symbol(ident) {|method|
          s(:call, process(receiver), method,
            handle_potentially_typeless_sexp_with_fallback_type(:arglist, arguments))
        }
      end

      def process_vcall exp
        _, ident = exp.shift 2
        with_position_from_node_symbol(ident) {|method|
          s(:call, nil, method, s(:arglist)) }
      end

      def process_fcall exp
        _, ident = exp.shift 2
        with_position_from_node_symbol(ident) {|method|
          s(:call, nil, method, s(:arglist)) }
      end

      def process_super exp
        _, args = exp.shift 2
        args = process(args)
        args.shift
        s(:super, *args)
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ripper_ruby_parser-0.0.8 lib/ripper_ruby_parser/sexp_handlers/method_calls.rb
ripper_ruby_parser-0.0.7 lib/ripper_ruby_parser/sexp_handlers/method_calls.rb
ripper_ruby_parser-0.0.6 lib/ripper_ruby_parser/sexp_handlers/method_calls.rb
ripper_ruby_parser-0.0.5 lib/ripper_ruby_parser/sexp_handlers/method_calls.rb