lib/nydp/builtin/ruby_wrap.rb in nydp-0.4.5 vs lib/nydp/builtin/ruby_wrap.rb in nydp-0.4.6
- old
+ new
@@ -13,20 +13,22 @@
when 0 ; ""
when 1 ; ", a0"
when 2 ; ", a0, a1"
when 3 ; ", a0, a1, a2"
when 4 ; ", a0, a1, a2, a3"
- else ; raise "maximum 4 arguments!"
+ when 5 ; ", a0, a1, a2, a3, a4"
+ else ; raise "maximum 5 arguments!"
end
end
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(/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_invoke_#{msize} vm#{ arg_mapper }
@@ -61,9 +63,10 @@
def self.builder includes
WrapperBuilder.new(includes)
end
core_builder = builder ""
- core_builder.build(:Cons, 2, %{ Nydp::Pair.new(a0, a1) })
- core_builder.build(:Car , 1, %{ a0.car })
- core_builder.build(:Cdr , 1, %{ a0.cdr })
+ core_builder.build(:Cons, 2, %{ Nydp::Pair.new(a0, a1) } )
+ core_builder.build(:Car , 1, %{ a0.car } )
+ core_builder.build(:Cdr , 1, %{ a0.cdr } )
+ core_builder.build(:Log , 1, %{ r2n Nydp.logger.info(a0.to_s) } )
end