class Rips::RipsLauncher

Public Class Methods

new() click to toggle source

@argv: input's arguments @debug: switch to show trace in console @source: source file with Rips instructions @output: output file with binary instructions

# File lib/rips.rb, line 12
def initialize
  @argv = ARGV
  @debug = debug_mode?
  @source = source_file
  @output = output_file

  run
end

Private Instance Methods

debug_mode?() click to toggle source

Check debug mode

# File lib/rips.rb, line 24
def debug_mode?
  @argv.include?("-d") || @argv.include?("--debug")
end
output_file() click to toggle source

Check cmdline options (now only output)

# File lib/rips.rb, line 38
def output_file
  if @argv.include?("-o")
    out = @argv[(@argv.index("-o"))+1]  
    Error::message(9) if out.nil? || out == @source || out == "-d" || out == "--debug"
    return out
  else
    return "progfile.dat"
  end
end
read() click to toggle source

Read input file

# File lib/rips.rb, line 49
def read
  File.open(@source, "r") do |f|
    f.each_line do |line|
      @rips << line
    end
  end
end
run() click to toggle source

Launch Rips assembler

# File lib/rips.rb, line 58
def run
  @rips = Assembler.new(@debug)
  read
  @rips.run(@output)
end
source_file() click to toggle source

Check if it's a valid input file

# File lib/rips.rb, line 29
def source_file
  source = @argv.find{|x| /\.rips$/ =~ x }
  Error::message(1) if source.nil? 
  Error::message(2) if !File.exist?(source)
  Error::message(3) if !File.readable?(source)
  return source
end