class Nydp::FunctionInvocation

Attributes

argument_instructions[RW]
function_instruction[RW]

Public Class Methods

build(expression, bindings, ns) click to toggle source
# File lib/nydp/function_invocation.rb, line 114
def self.build expression, bindings, ns
  compiled   = Compiler.compile_each(expression, bindings, ns)

  Invocation::Base.new(compiled, expression)
end
new(function_instruction, argument_instructions, source, sig=nil) click to toggle source
# File lib/nydp/function_invocation.rb, line 120
def initialize function_instruction, argument_instructions, source, sig=nil
  @function_instruction, @argument_instructions, @source = function_instruction, argument_instructions, source
  @sig = sig
end

Public Instance Methods

compile_to_ruby(indent, srcs, opts=nil) click to toggle source
# File lib/nydp/function_invocation.rb, line 101
    def compile_to_ruby indent, srcs, opts=nil
      ra = argument_instructions.map { |e| e.compile_to_ruby "#{indent}  ", srcs, cando: true }.to_a
      if ra.length == 1
        "#{indent}#{ra.shift}._nydp_call()"
      else
        "#{indent}#{ra.shift}._nydp_call(
#{ra.join(",\n")}
#{indent})"
      end
    end
inspect() click to toggle source
# File lib/nydp/function_invocation.rb, line 125
def inspect ; @function_instruction._nydp_inspect ; end
lexical_reach(n) click to toggle source
# File lib/nydp/function_invocation.rb, line 97
def lexical_reach n
  function_instruction.lexical_reach(n)
end
to_s() click to toggle source
# File lib/nydp/function_invocation.rb, line 126
def to_s    ; @source.to_s                        ; end