pegjs/Rakefile
David Majda c5cc545209 "rake metaparser" and "rake minify" now always generate the target files.
Until now, these tasks looked at the file times and generated the target files
only when they were older than the source files. This caused problems when I
mainupulated the lib/metagrammar.* files by hand sometimes, replaced them from
backups after screw-ups, etc.
2010-04-11 11:05:44 +02:00

29 lines
778 B
Ruby

require "net/http"
require "uri"
version = File.read("VERSION").strip
desc "Build the minified parser runtime"
task :minify do
response = Net::HTTP.post_form(
URI.parse("http://closure-compiler.appspot.com/compile"),
{
"js_code" => File.read("lib/runtime.js"),
"compilation_level" => "SIMPLE_OPTIMIZATIONS",
"output_format" => "text",
"output_info" => "compiled_code"
}
)
if response.code != "200"
abort "Error calling Google Closure Compiler API: #{response.message}"
end
File.open("lib/pegjs-runtime-#{version}.min.js", "w") { |f| f.write(response.body) }
end
desc "Generate the grammar parser"
task :metaparser do
system "bin/pegjs --start-rule grammar PEG.grammarParser lib/metagrammar.pegjs"
end