Class: Op

Inherits:
Object
  • Object
show all
Defined in:
lib/jop.rb

Instance Method Summary collapse

Instance Method Details

#apply_monad_deep(element, &block) ⇒ Object



21
22
23
24
# File 'lib/jop.rb', line 21

def apply_monad_deep element, &block
  return yield element unless element.kind_of? Array
  element.map {|e| apply_monad_deep(e, &block) }
end

#integer_args(interpreter) ⇒ Object



14
15
16
17
18
19
# File 'lib/jop.rb', line 14

def integer_args interpreter
  interpreter.tokens
             .take_while {|n| numeric_literal?(n) }
             .reverse
             .map(&:to_i)
end

#numeric_literal?(text) ⇒ Boolean

Returns:

  • (Boolean)


5
6
7
# File 'lib/jop.rb', line 5

def numeric_literal? text
  text =~ /^_?\d+/
end

#to_numeric(text) ⇒ Object



9
10
11
12
# File 'lib/jop.rb', line 9

def to_numeric text
   return text.to_i if text =~ /^\d+/
   -(text[1...text.length]).to_i
end