25 lines
505 B
Ruby
25 lines
505 B
Ruby
|
#!/usr/bin/env ruby
|
||
|
|
||
|
SPECHELPER = File.join(File.dirname(__FILE__), "spechelper.m")
|
||
|
def octave_eval(str, type)
|
||
|
puts "evalling (#{type}): #{str}"
|
||
|
ret = `octave --quiet --eval 'source("#{SPECHELPER}"); spec_formatter(#{str}, "#{type}")'`
|
||
|
puts " = #{ret.strip}"
|
||
|
ret
|
||
|
end
|
||
|
|
||
|
|
||
|
ARGV.each do |fn|
|
||
|
str = File.read(fn)
|
||
|
str.gsub!(%r{(// octave (\w+):)(.*?)\n(.*?\n)}) do |match|
|
||
|
e = octave_eval($3, $2)
|
||
|
|
||
|
[$1, $3, "\n", e, "\n"].join
|
||
|
end
|
||
|
File.open(fn, "w") do |f|
|
||
|
f.write str
|
||
|
end
|
||
|
|
||
|
end
|
||
|
|