diff options
Diffstat (limited to 'mrbgems/mruby-compiler/mrbgem.rake')
| -rw-r--r-- | mrbgems/mruby-compiler/mrbgem.rake | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/mrbgems/mruby-compiler/mrbgem.rake b/mrbgems/mruby-compiler/mrbgem.rake index e2a50fb89..9df846abb 100644 --- a/mrbgems/mruby-compiler/mrbgem.rake +++ b/mrbgems/mruby-compiler/mrbgem.rake @@ -21,15 +21,23 @@ MRuby::Gem::Specification.new 'mruby-compiler' do |spec| # Parser file "#{dir}/core/y.tab.c" => ["#{dir}/core/parse.y", lex_def] do |t| yacc.run t.name, t.prerequisites.first - content = File.read(t.name).gsub(/^#line +\d+ +"\K.*$/){$&.relative_path} - File.write(t.name, content) + replace_line_directive(t.name) end # Lexical analyzer file lex_def => "#{dir}/core/keywords" do |t| gperf.run t.name, t.prerequisites.first + replace_line_directive(t.name) end file build.libmruby_core_static => core_objs build.libmruby << core_objs + + def replace_line_directive(path) + content = File.read(path).gsub(%r{ + ^\#line\s+\d+\s+"\K.*$ | # #line directive + ^/\*\s+Command-line:.*\s\K\S+(?=\s+\*/$) # header comment in lex.def + }x, &:relative_path) + File.write(path, content) + end end |
