farleyknight / ionize

Convert Php to Ruby (Will soon die and be reborn as something different..)

This URL has Read+Write access

ionize / Rakefile
965eebe3 » Robin Hoode 2008-08-20 Intermediate (probably brok... 1 # require 'config/requirements'
2 # require 'config/hoe' # setup Hoe + all gem configuration
44d8f0cf » butterflyeffect 2008-07-13 Initial commit before name ... 3
ec36a15e » Robin Hoode 2008-10-22 Fixed treetop parser.. 4 # Process.setrlimit(Process::RLIMIT_AS, (1024 ** 2) * 100)
5
6
166d4d71 » Robin Hoode 2008-08-01 Pushing gem version for bin 7 Dir['tasks/**/*.rake'].each { |rake| load rake }
8
f833ae57 » Robin Hoode 2008-09-01 Added experimental Treetop ... 9 require 'lib/ionize'
10 require 'spec/rake/spectask'
11
bfd559ae » Robin Hoode 2008-10-21 Friggin added joomla by acc... 12 module Joomla
13 def files
14 files = Dir["spec/fixtures/joomla/*.php"] + Dir["spec/fixtures/joomla/**/*.php"]
d6e6d9ef » Robin Hoode 2008-10-24 Making progress towards a T... 15 # The LICENSE and CHANGELONG is not an actual php file
bfd559ae » Robin Hoode 2008-10-21 Friggin added joomla by acc... 16 files = files.reject {|f| f =~ /LICENSE/ or f =~ /CHANGELOG/ }
17 files
18 end
19 end
20
f833ae57 » Robin Hoode 2008-09-01 Added experimental Treetop ... 21 namespace :joomla do
bfd559ae » Robin Hoode 2008-10-21 Friggin added joomla by acc... 22 include Joomla
23
f833ae57 » Robin Hoode 2008-09-01 Added experimental Treetop ... 24 task :init do
25 Ionize::Php::CharacterLimit = 999999999999
26 end
bfd559ae » Robin Hoode 2008-10-21 Friggin added joomla by acc... 27
28 namespace :download do
29 include Joomla
30
ec36a15e » Robin Hoode 2008-10-22 Fixed treetop parser.. 31 desc "Download Joomla 1.0"
bfd559ae » Robin Hoode 2008-10-21 Friggin added joomla by acc... 32 task "1_0" do
33 download("1_0")
34 end
35
ec36a15e » Robin Hoode 2008-10-22 Fixed treetop parser.. 36 desc "Download Joomla 1.5"
bfd559ae » Robin Hoode 2008-10-21 Friggin added joomla by acc... 37 task "1_5" do
38 download("1_5")
39 end
40 end
f833ae57 » Robin Hoode 2008-09-01 Added experimental Treetop ... 41
42 task :tokenize => :init do
43 files.each do |f|
44 puts "Tokenizing #{f}"
45 Ionize::Php.to_tokens(File.read(f))
46 GC.start
47 end
48 end
49
50 task :parse => :init do
bfd559ae » Robin Hoode 2008-10-21 Friggin added joomla by acc... 51 unparsed = []
f833ae57 » Robin Hoode 2008-09-01 Added experimental Treetop ... 52 files.each do |f|
53 puts "Parsing #{f}"
bfd559ae » Robin Hoode 2008-10-21 Friggin added joomla by acc... 54 begin
55 Ionize::Php.to_ast(File.read(f))
56 rescue => error
57 puts "Couldn't parse #{f}"
58 unparsed << f
59 end
f833ae57 » Robin Hoode 2008-09-01 Added experimental Treetop ... 60 GC.start
61 end
bfd559ae » Robin Hoode 2008-10-21 Friggin added joomla by acc... 62 puts "Couldn't parse #{unparsed.length} files"
f833ae57 » Robin Hoode 2008-09-01 Added experimental Treetop ... 63 end
64
65 task :sexpize => :init do
66 files.each do |f|
67 puts "Sexpizing #{f}"
68 Ionize::Php.to_sexp(File.read(f))
69 GC.start
70 end
71 end
72
73 end
74
a96ad053 » Robin Hoode 2008-09-02 Added new treetop based gra... 75 namespace :treetop do
76 task :init do
77 require 'treetop'
d6e6d9ef » Robin Hoode 2008-10-24 Making progress towards a T... 78 require 'etc/pre_parser'
a96ad053 » Robin Hoode 2008-09-02 Added new treetop based gra... 79 Treetop.load "etc/php"
80 end
81
bfd559ae » Robin Hoode 2008-10-21 Friggin added joomla by acc... 82 namespace :joomla do
83 include Joomla
84
ec36a15e » Robin Hoode 2008-10-22 Fixed treetop parser.. 85 desc "Parse Joomla with Treetop Php parser"
bfd559ae » Robin Hoode 2008-10-21 Friggin added joomla by acc... 86 task :parse => "treetop:init" do
87 parser = PhpParser.new
88 unparsed = []
89
90 files.each do |file|
91 puts "Parsing #{file}"
d6e6d9ef » Robin Hoode 2008-10-24 Making progress towards a T... 92 text = PreParser.new(File.read(file)).run
bfd559ae » Robin Hoode 2008-10-21 Friggin added joomla by acc... 93 result = parser.parse(text)
94 if result.nil?
95 puts "Couldn't parse #{file}"
96 unparsed << file
97 end
98 end
99
d6e6d9ef » Robin Hoode 2008-10-24 Making progress towards a T... 100 puts "Couldn't parse #{unparsed.length} files"
101 puts unparsed.inspect
bfd559ae » Robin Hoode 2008-10-21 Friggin added joomla by acc... 102 end
103 end
104
ec36a15e » Robin Hoode 2008-10-22 Fixed treetop parser.. 105 desc "Parse tests with Treetop Php parser"
a96ad053 » Robin Hoode 2008-09-02 Added new treetop based gra... 106 task :parse => :init do
d6e6d9ef » Robin Hoode 2008-10-24 Making progress towards a T... 107 require 'etc/pre_parser'
a96ad053 » Robin Hoode 2008-09-02 Added new treetop based gra... 108 parser = PhpParser.new
109 unparsed = []
110
bfd559ae » Robin Hoode 2008-10-21 Friggin added joomla by acc... 111 files = Dir["spec/fixtures/*.php"]
a96ad053 » Robin Hoode 2008-09-02 Added new treetop based gra... 112 files.each do |file|
bfd559ae » Robin Hoode 2008-10-21 Friggin added joomla by acc... 113 puts "Parsing #{file}"
d6e6d9ef » Robin Hoode 2008-10-24 Making progress towards a T... 114 text = PreParser.new(File.read(file)).run
ec36a15e » Robin Hoode 2008-10-22 Fixed treetop parser.. 115 result = parser.parse(text)
a96ad053 » Robin Hoode 2008-09-02 Added new treetop based gra... 116 if result.nil?
117 puts "Couldn't parse #{file}"
118 unparsed << file
119 end
120 end
121
d6e6d9ef » Robin Hoode 2008-10-24 Making progress towards a T... 122 if unparsed.empty?
123 puts "Parsed all the files"
124 else
125 puts "Couldn't parse #{unparsed.length} files"
126 end
a96ad053 » Robin Hoode 2008-09-02 Added new treetop based gra... 127 end
128 end
129
bfd559ae » Robin Hoode 2008-10-21 Friggin added joomla by acc... 130 desc "Run parser specs"
f833ae57 » Robin Hoode 2008-09-01 Added experimental Treetop ... 131 Spec::Rake::SpecTask.new do |t|
bfd559ae » Robin Hoode 2008-10-21 Friggin added joomla by acc... 132 t.name = "spec_parser"
133 t.spec_files = "spec/php_parser_spec.rb"
f833ae57 » Robin Hoode 2008-09-01 Added experimental Treetop ... 134 end
bfd559ae » Robin Hoode 2008-10-21 Friggin added joomla by acc... 135
136 desc "Run translator specs"
137 Spec::Rake::SpecTask.new do |t|
138 t.name = "spec_translator"
139 t.spec_files = "spec/php_translator_spec.rb"
140 end
141