Class: Nydp::Builtin::IsEqual

Inherits:
Object
  • Object
show all
Includes:
Base, Singleton
Defined in:
lib/nydp/builtin/is_equal.rb

Instance Method Summary collapse

Methods included from Base

#handle_error, #inspect, #invoke, #invoke_1, #invoke_2, #invoke_3, #invoke_4, #nydp_type, #to_s

Methods included from Helper

#cons, #list, #literal?, #pair?, #sig, #sym, #sym?

Methods included from Converter

#n2r, #r2n

Instance Method Details

#_eq?(arg, args) ⇒ Boolean

Returns:

  • (Boolean)


11
# File 'lib/nydp/builtin/is_equal.rb', line 11

def _eq?  arg, args ; args.all? { |a| a == arg }   ; end

#builtin_invoke(vm, args) ⇒ Object



9
# File 'lib/nydp/builtin/is_equal.rb', line 9

def builtin_invoke   vm, args       ; vm.push_arg (eq?(args.to_a)    ? Nydp::T : Nydp::NIL) ; end

#builtin_invoke_1(vm) ⇒ Object



4
# File 'lib/nydp/builtin/is_equal.rb', line 4

def builtin_invoke_1 vm      ; raise "#{name} : requires at least two args"                    ; end

#builtin_invoke_2(vm, arg) ⇒ Object



5
# File 'lib/nydp/builtin/is_equal.rb', line 5

def builtin_invoke_2 vm, arg ; raise "#{name} : requires at least two args, got one: (#{arg})" ; end

#builtin_invoke_3(vm, a0, a1) ⇒ Object



7
# File 'lib/nydp/builtin/is_equal.rb', line 7

def builtin_invoke_3 vm, a0, a1     ; vm.push_arg ((a0 == a1)        ? Nydp::T : Nydp::NIL) ; end

#builtin_invoke_4(vm, a0, a1, a2) ⇒ Object



8
# File 'lib/nydp/builtin/is_equal.rb', line 8

def builtin_invoke_4 vm, a0, a1, a2 ; vm.push_arg (eq?([a0, a1, a2]) ? Nydp::T : Nydp::NIL) ; end

#eq?(args) ⇒ Boolean

Returns:

  • (Boolean)


12
# File 'lib/nydp/builtin/is_equal.rb', line 12

def eq?        args ; _eq? args.first, args[1..-1] ; end

#nameObject



13
# File 'lib/nydp/builtin/is_equal.rb', line 13

def name            ; "eq?"                        ; end