Sha256: a2e0a9c2eef39739329e45dd197f6330c78a5ea832a17e8ad0084f534bf2f5ae

Contents?: true

Size: 1.17 KB

Versions: 2

Compression:

Stored size: 1.17 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"

$line_number = false

while true
  if ARGV[0] == "-l"
    $line_number = true
    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 line_number: $line_number
  set erb_dir: erb_dir
  set erb_suffix: ".c"
  set ns_var: "mNumo"

  set file_name: $output||""
  set include_files: ["numo/types/#{type_name}.h"]
  set lib_name: "numo_"+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

2 entries across 2 versions & 1 rubygems

Version Path
numo-narray-0.9.1.2 ext/numo/narray/gen/cogen.rb
numo-narray-0.9.1.1 ext/numo/narray/gen/cogen.rb