class Archruby::Ruby::TypeInference::Ruby::ProcessMethodArguments
Public Class Methods
new(ast)
click to toggle source
Calls superclass method
# File lib/archruby/ruby/type_inference/ruby/process_method_arguments.rb, line 7 def initialize(ast) super() @ast = ast @params = {} @current_dependency_class = [] @current_dependency_class_name = nil end
Public Instance Methods
build_full_name(const_name)
click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_arguments.rb, line 69 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_arguments.rb, line 15 def parse process(@ast) @params end
process_args(exp)
click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_arguments.rb, line 20 def process_args(exp) _, *args = exp if !args.empty? if args.first.class == Symbol @params[args.first] ||= Set.new else args.map! {|sub_tree| process(sub_tree) if sub_tree.class == Sexp} end end end
process_array(exp)
click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_arguments.rb, line 92 def process_array(exp) _, *args = exp args.map! {|sub_tree| process(sub_tree)} end
process_call(exp)
click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_arguments.rb, line 43 def process_call(exp) _, receiver, method_name, *args = exp process(receiver) args.map! { |subtree| process(subtree) } end
process_colon2(exp)
click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_arguments.rb, line 58 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_arguments.rb, line 64 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_arguments.rb, line 49 def process_const(exp) _, const_name = exp if !@current_dependency_class.empty? @current_dependency_class_name = build_full_name(const_name) else @current_dependency_class_name = const_name.to_s end end
process_cvar(exp)
click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_arguments.rb, line 127 def process_cvar(exp) # class variable end
process_cvasgn(exp)
click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_arguments.rb, line 108 def process_cvasgn(exp) _, class_var_name, *value = exp value.map! {|sub_tree| process(sub_tree)} end
process_false(exp)
click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_arguments.rb, line 140 def process_false(exp) end
process_gvar(exp)
click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_arguments.rb, line 146 def process_gvar(exp) #global variables end
process_hash(exp)
click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_arguments.rb, line 76 def process_hash(exp) _, key, value = exp process(key) process(value) end
process_if(exp)
click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_arguments.rb, line 82 def process_if(exp) _, *args = exp args.map! {|sub_tree| process(sub_tree) if sub_tree.class == Sexp } end
process_iter(exp)
click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_arguments.rb, line 102 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_arguments.rb, line 97 def process_ivar(exp) _, var_name, *args = exp args.map! {|sub_tree| process(sub_tree)} end
process_kwarg(exp)
click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_arguments.rb, line 87 def process_kwarg(exp) _, *args = exp args.map! { |subtree| process(subtree) if subtree.class == Sexp} end
process_lasgn(exp)
click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_arguments.rb, line 31 def process_lasgn(exp) _, variable_name, *args = exp @params[variable_name] ||= Set.new args.map! {|sub_tree| process(sub_tree)} @params[variable_name].add(@current_dependency_class_name) @current_dependency_class_name = nil end
process_lit(exp)
click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_arguments.rb, line 39 def process_lit(exp) _, value = exp end
process_lvar(exp)
click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_arguments.rb, line 124 def process_lvar(exp) end
process_masgn(exp)
click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_arguments.rb, line 113 def process_masgn(exp) _, *args = exp args.map! {|sub_tree| process(sub_tree) if sub_tree.class == Sexp} end
process_nil(exp)
click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_arguments.rb, line 134 def process_nil(exp) end
process_or(exp)
click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_arguments.rb, line 118 def process_or(exp) _, left_side, right_side = exp process(left_side) process(right_side) end
process_self(exp)
click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_arguments.rb, line 143 def process_self(exp) end
process_str(exp)
click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_arguments.rb, line 137 def process_str(exp) end
process_true(exp)
click to toggle source
# File lib/archruby/ruby/type_inference/ruby/process_method_arguments.rb, line 131 def process_true(exp) end