require 'rake'
task :clean do
Dir['*.n'].each do |n|
puts "Removing #{n}"
FileUtils.rm_f(n)
end
end
task :record do
sh %{darcs record *.neko}
end
def build(name)
sh %{nekoc #{name}.neko}
end
def genexe(name)
sh %{nekotools boot #{name}.n}
end
def run(name)
sh %{neko #{name}}
end
dependencies = {
'lexer' => %w[file.n regexp.n lexer.n buffer.n stringscanner.n],
'hello' => %w[hello.n],
'readline' => %w[readline.n file.n buffer.n],
'stringscanner' => %w[file.n buffer.n regexp.n stringscanner.n string.n],
'oxidtuple' => %w[oxidtuple.n],
}
Dir['*.neko'].each do |neko|
name = File.basename(neko, '.neko')
desc "create #{name}.n via nekoc"
file("#{name}.n" => neko){ build(name) }
desc "create #{name} via nekotools from #{name}.n"
file(name => dependencies[name]){ genexe(name) }
end