Class: Nydp::Builtin::IsEqual
- Inherits:
-
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
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
12
|
# File 'lib/nydp/builtin/is_equal.rb', line 12
def eq? args ; _eq? args.first, args[1..-1] ; end
|
13
|
# File 'lib/nydp/builtin/is_equal.rb', line 13
def name ; "eq?" ; end
|