class Archruby::Ruby::TypeInference::Ruby::ProcessMethodParams

Public Class Methods

new(ast, local_scope) click to toggle source
Calls superclass method
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 7
def initialize(ast, local_scope)
  super()
  @ast = ast
  @current_dependency_class = []
  @current_dependency_class_name = nil
  @local_scope = local_scope
  @params = []
end

Public Instance Methods

add_to_params(name) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 81
def add_to_params(name)
  @params << name
end
build_full_name(const_name) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 96
def build_full_name(const_name)
  @current_dependency_class.unshift(const_name)
  full_class_path = @current_dependency_class.join('::')
  @current_dependency_class = []
  full_class_path
end
parse() click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 16
def parse
  @ast.map! {|sub_tree| process(sub_tree)}
  @params
end
process_and(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 187
def process_and(exp)
  _, left_side, right_side = exp
  process(left_side)
  process(right_side)
end
process_array(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 145
def process_array(exp)
  _, *elements = exp
  elements.map! {|sub_tree| process(sub_tree)}
end
process_attrasgn(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 212
def process_attrasgn(exp)
  _, receiver, method, arg, value = exp
  process(receiver)
  process(value)
end
process_back_ref(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 235
def process_back_ref(exp)
end
process_block(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 30
def process_block(exp)
  _, *args = exp
  args.map! { |subtree| process(subtree) }
end
process_block_pass(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 76
def process_block_pass(exp)
  _, *args = exp
  args.map! { |subtree| process(subtree) }
end
process_call(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 71
def process_call(exp)
  _, receiver, method_name, *params = exp
  process(receiver)
end
process_case(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 193
def process_case(exp)
  _, condition, when_part, ensure_part = exp
  process(condition)
  process(when_part)
  process(ensure_part)
end
process_colon2(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 85
def process_colon2(exp)
  _, first_part, last_part = exp
  @current_dependency_class.unshift(last_part)
  process(first_part)
end
process_colon3(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 91
def process_colon3(exp)
  _, constant_name = exp
  @current_dependency_class_name = build_full_name("::#{constant_name}")
end
process_const(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 60
def process_const(exp)
  _, const_name = exp
  if !@current_dependency_class.empty?
    @current_dependency_class_name = build_full_name(const_name)
    add_to_params(@current_dependency_class_name)
    @current_dependency_class_name = nil
  else
    add_to_params(const_name)
  end
end
process_cvar(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 242
def process_cvar(exp)
  # class variable
end
process_defined(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 155
def process_defined(exp)
  _, *args = exp
  args.map! {|sub_tree| process(sub_tree)}
end
process_defn(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 21
def process_defn(exp)
  #estudar esse caso
end
process_dot2(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 170
def process_dot2(exp)
  _, left, right = exp
  process(left)
  process(right)
end
process_dot3(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 40
def process_dot3(exp)
  _, left, right = exp
  process(left)
  process(right)
end
process_dregx(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 165
def process_dregx(exp)
  _, str, *args = exp
  args.map! {|sub_tree| process(sub_tree) if sub_tree.class == Sexp }
end
process_dregx_once(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 25
def process_dregx_once(exp)
  _, start, *args = exp
  args.map! {|sub_tree| process(sub_tree) if sub_tree.class == Sexp}
end
process_dstr(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 132
def process_dstr(exp)
  _, init, *args = exp
  args.map! {|sub_tree| process(sub_tree)}
end
process_dsym(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 176
def process_dsym(exp)
  _, str, *args = exp
  args.map! {|sub_tree| process(sub_tree)}
end
process_dxstr(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 160
def process_dxstr(exp)
  _, str, *args = exp
  args.map! {|sub_tree| process(sub_tree)}
end
process_evstr(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 137
def process_evstr(exp)
  _, *args = exp
  args.map! {|sub_tree| process(sub_tree)}
end
process_false(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 258
def process_false(exp)
end
process_gvar(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 232
def process_gvar(exp)
end
process_hash(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 103
def process_hash(exp)
  _, key, value = exp
  process(key)
  process(value)
end
process_iasgn(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 114
def process_iasgn(exp)
  _, instance_varialbe_name, *value = exp
  value.map! { |subtree| process(subtree) }
end
process_if(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 119
def process_if(exp)
  _, condition, true_body, else_body = exp
  process(condition)
  process(true_body)
  process(else_body)
end
process_iter(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 126
def process_iter(exp)
  _, first_part, second_part, *body = exp
  process(first_part)
  body.map! {|sub_tree| process(sub_tree)}
end
process_ivar(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 264
def process_ivar(exp)
end
process_kwsplat(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 35
def process_kwsplat(exp)
  _, *args = exp
  args.map! { |subtree| process(subtree) }
end
process_lasgn(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 46
def process_lasgn(exp)
end
process_lit(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 238
def process_lit(exp)
  _, value = exp
end
process_lvar(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 49
def process_lvar(exp)
  _, lvar_name = exp
  type = @local_scope.var_type(lvar_name)
  if type
    add_to_params(type)
  else
    add_to_params(lvar_name)
  end
  #chamado para pegar o valor
end
process_match2(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 150
def process_match2(exp)
  _, rec, *args = exp
  args.map! {|sub_tree| process(sub_tree)}
end
process_match3(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 223
def process_match3(exp)
  _, first, second = exp
  process(first)
  process(second)
end
process_nil(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 249
def process_nil(exp)
end
process_nth_ref(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 229
def process_nth_ref(exp)
end
process_or(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 181
def process_or(exp)
  _, left_side, right_side = exp
  process(left_side)
  process(right_side)
end
process_rescue(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 206
def process_rescue(exp)
  _, body, rescbody = exp
  process(body)
  process(rescbody)
end
process_self(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 252
def process_self(exp)
end
process_splat(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 109
def process_splat(exp)
  _, *args = exp
  args.map! {|sub_tree| process(sub_tree)}
end
process_str(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 255
def process_str(exp)
end
process_super(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 246
def process_super(exp)
end
process_true(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 261
def process_true(exp)
end
process_when(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 200
def process_when(exp)
  _, condition, body = exp
  process(condition)
  process(body)
end
process_xstr(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 142
def process_xstr(exp)
end
process_yield(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 218
def process_yield(exp)
  _, *args = exp
  args.map! {|sub_tree| process(sub_tree)}
end
process_zsuper(exp) click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_params.rb, line 267
def process_zsuper(exp)
end