Sha256: 4fe881216ed8f1442bac2e529a941a498c3e3d614455be18f6e8fbd0ad965997

Contents?: true

Size: 1.1 KB

Versions: 1

Compression:

Stored size: 1.1 KB

Contents

#! /usr/bin/env ruby

thisdir = File.dirname(__FILE__)
libpath = File.absolute_path(File.dirname(__FILE__))+"/../../../../lib"
$LOAD_PATH.unshift libpath

require_relative "./narray_def"

while true
  if ARGV[0] == "-l"
    require "erbpp/line_number"
    ARGV.shift
  elsif ARGV[0] == "-o"
    ARGV.shift
    $output = ARGV.shift
    require "fileutils"
    FileUtils.rm_f($output)
  else
    break
  end
end

if ARGV.size != 1
  puts "usage:\n  ruby #{$0} [-l] erb_base [type_file]"
  exit 1
end

type_file, = ARGV
type_name = File.basename(type_file,".rb")

erb_dir = ["tmpl"]
erb_dir.unshift("tmpl_bit") if (type_name == "bit")
erb_dir.map!{|d| File.join(thisdir,d)}

code = DefLib.new do
  set erb_dir: erb_dir
  set erb_suffix: ".c"
  set ns_var: "mCumo"

  set file_name: $output||""
  set type_name: type_name
  set lib_name: "cumo_"+type_name

  def_class do
    extend NArrayMethod
    extend NArrayType
    eval File.read(type_file), binding, type_file
    eval File.read(File.join(thisdir,"spec.rb")), binding, "spec.rb"
  end
end.result

if $output
  open($output,"w").write(code)
else
  $stdout.write(code)
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cumo-0.1.0 ext/cumo/narray/gen/cogen.rb