class Nydp::Builtin::RubyWrap::Coder
Public Instance Methods
arg_mapper_novm()
click to toggle source
# File lib/nydp/builtin/ruby_wrap.rb, line 11 def arg_mapper_novm case size when 0 ; "" when 1 ; "a0=nil" when 2 ; "a0=nil, a1=nil" when 3 ; "a0=nil, a1=nil, a2=nil" when 4 ; "a0=nil, a1=nil, a2=nil, a3=nil" when 5 ; "a0=nil, a1=nil, a2=nil, a3=nil, a4=nil" else ; raise "maximum 5 arguments!" end end
msize()
click to toggle source
# File lib/nydp/builtin/ruby_wrap.rb, line 9 def msize ; size + 1 ; end
to_ruby()
click to toggle source
# File lib/nydp/builtin/ruby_wrap.rb, line 23 def to_ruby generic_code = code. gsub(/a0/, "args.car"). gsub(/a1/, "args.cdr.car"). gsub(/a2/, "args.cdr.cdr.car"). gsub(/a3/, "args.cdr.cdr.cdr.car"). gsub(/a4/, "args.cdr.cdr.cdr.cdr.car") <<CODE class #{name} include Nydp::Builtin::Base, Singleton#{helpers} def builtin_call #{ arg_mapper_novm } (#{code}) end # return the ruby equivalent of this code if it was inlined inside another builtin def inline_code arg_expressions #{code.inspect}. gsub(/a0/, arg_expressions[0]). gsub(/a1/, arg_expressions[1]). gsub(/a2/, arg_expressions[2]). gsub(/a3/, arg_expressions[3]). gsub(/a4/, arg_expressions[4]) end end CODE end