module Rips::Utils::StringVariableExtension

Public Instance Methods

address?(range) click to toggle source

Check if value is an address (0..127 | label)

# File lib/rips/utils/string_variable.rb, line 35
def address? (range)
  (self.is_a?(String)) || (number?(self.slice(1..-1)) && valid_range?(range))
end
inmediate?() click to toggle source

Check if value is a valid inmediate (…,-1,0,1…)

# File lib/rips/utils/string_variable.rb, line 20
def inmediate?
  number?(self)
end
number?(value) click to toggle source

Check if value is a valid number (…,-1,0,1…)

# File lib/rips/utils/string_variable.rb, line 6
def number? (value)
  /\A[-]?\d+\z/ === value
end
port?() click to toggle source

Check if value is a port (@0..3)

# File lib/rips/utils/string_variable.rb, line 30
def port?
  (self[0] == "@") && number?(self.slice(1..-1))
end
register?() click to toggle source

Check if value is a register ($0..15)

# File lib/rips/utils/string_variable.rb, line 25
def register?
  (self[0] == "$") && number?(self.slice(1..-1))
end
valid_range?(range) click to toggle source

Check if value is between in permitted range

# File lib/rips/utils/string_variable.rb, line 11
def valid_range? (range)
  if number?(self.slice(1..-1))
    self.to_i.between?(range[0], range[1])
  else 
    self.slice(1..-1).to_i.between?(range[0], range[1])
  end
end