Rev 255 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 255 | Rev 258 | ||
---|---|---|---|
1 | require 'rio' |
1 | require 'rio' |
2 | 2 | ||
3 | 3 | ||
4 | all_tabs=[] |
4 | all_tabs=[] |
5 | 5 | ||
6 | all_names=[] |
6 | all_names=[] |
7 | all_positions=[] |
7 | all_positions=[] |
8 | all_types=[] |
8 | all_types=[] |
9 | 9 | ||
10 | all_namestarts=[] |
10 | all_namestarts=[] |
11 | all_lengths=[] |
11 | all_lengths=[] |
12 | 12 | ||
13 | function_hash={} |
13 | function_hash={} |
14 | act_name="" |
14 | act_name="" |
15 | rio("definitions").read.each_line { |line| |
15 | rio("definitions").read.each_line { |line| |
16 | 16 | ||
17 | if line =~ /--/ |
17 | if line =~ /--/ |
18 | act_name=line.split("--")[1].delete!("\r\n") |
18 | act_name=line.split("--")[1].delete!("\r\n") |
19 | function_hash[act_name]="" |
19 | function_hash[act_name]="" |
20 | else |
20 | else |
21 | function_hash[act_name] << line |
21 | function_hash[act_name] << line |
22 | end |
22 | end |
23 | } |
23 | } |
24 | 24 | ||
25 | #puts function_hash.inspect |
25 | #puts function_hash.inspect |
26 | #exit |
26 | #exit |
27 | 27 | ||
28 | Dir["header_files/*.h"].sort.each { |e| |
28 | Dir["header_files/*.h"].sort.each { |e| |
29 | puts "----------------" + e |
29 | puts "----------------" + e |
30 | new="" |
30 | new="" |
31 | start=false |
31 | start=false |
32 | rio(e).each_line { |l| |
32 | rio(e).each_line { |l| |
33 | start=true if l =~ /struct\r/ |
33 | start=true if l =~ /struct\r/ |
34 | start=true if l =~ /struct\n/ |
34 | start=true if l =~ /struct\n/ |
35 | start=false if l =~ /\}/ |
35 | start=false if l =~ /\}/ |
36 | if (l =~ /;/ ) && start |
36 | if (l =~ /;/ ) && start |
37 | new << l |
37 | new << l |
38 | end |
38 | end |
39 | 39 | ||
40 | } |
40 | } |
41 | 41 | ||
42 | act_pos=0 |
42 | act_pos=0 |
43 | name_pos=0 |
43 | name_pos=0 |
44 | end_pos=0 |
44 | end_pos=0 |
45 | @categorys=[] |
45 | @categorys=[] |
46 | @category={} |
46 | @category={} |
47 | def to_cat(name,items) |
47 | def to_cat(name,items) |
48 | @categorys << name |
48 | @categorys << name |
49 | 49 | ||
50 | @category[name]=[] if !@category[name] |
50 | @category[name]=[] if !@category[name] |
51 | @category[name] |= items |
51 | @category[name] |= items |
52 | end |
52 | end |
53 | 53 | ||
54 | 54 | ||
55 | 55 | ||
56 | 56 | ||
57 | new.each_line { |l| |
57 | new.each_line { |l| |
58 | found=false |
58 | found=false |
59 | function_hash.each_pair { |k,v| |
59 | function_hash.each_pair { |k,v| |
60 | if l.scan(k)!=[] |
60 | if l.scan(k)!=[] |
61 | found=true |
61 | found=true |
62 | p "found" + k |
62 | p "found" + k |
63 | puts v |
63 | puts v |
64 | puts act_pos |
64 | puts act_pos |
65 | 65 | ||
66 | instance_eval(v) |
66 | instance_eval(v) |
67 | 67 | ||
68 | end |
68 | end |
69 | } |
69 | } |
70 | if !found |
70 | if !found |
71 | p "Fatal: line not found " + l |
71 | p "Fatal: line not found " + l |
72 | p "stopping process" |
72 | p "stopping process" |
73 | exit |
73 | exit |
74 | end |
74 | end |
75 | } |
75 | } |
76 | #p @category |
76 | #p @category |
77 | @categorys.uniq! |
77 | @categorys.uniq! |
78 | @categorys.sort! |
78 | @categorys.sort! |
79 | mod_cats=@categorys.map {|e| "STRINGID_"+e } |
79 | mod_cats=@categorys.map {|e| "STRINGID_"+e } |
80 | all_tabs << ["{" + mod_cats.join(",") + "}"] |
80 | all_tabs << ["{" + mod_cats.join(",") + "}"] |
81 | puts "[\"" + @categorys.join("\",\"") + "\"]" |
81 | puts "[\"" + @categorys.join("\",\"") + "\"]" |
82 | 82 | ||
83 | 83 | ||
84 | all_names << ["{"+@categorys.map { |c| |
84 | all_names << ["{"+@categorys.map { |c| |
85 | "{\"" + @category[c].map { |e| |
85 | "{" + @category[c].map { |e| |
86 | e[:name] |
86 | "STRINGID_" + e[:function] |
87 | }.join("\",\"") + "\"}" |
87 | }.join(",") + "}" |
88 | }.join(",")+"}"] |
88 | }.join(",")+"}"] |
89 | 89 | ||
90 | all_positions << ["{"+@categorys.map { |c| |
90 | all_positions << ["{"+@categorys.map { |c| |
91 | "{" + @category[c].map { |e| |
91 | "{" + @category[c].map { |e| |
92 | e[:pos] |
92 | e[:pos] |
93 | }.join(",") + "}" |
93 | }.join(",") + "}" |
94 | }.join(",")+"}"] |
94 | }.join(",")+"}"] |
95 | 95 | ||
96 | all_types << ["{"+ @categorys.map { |c| |
96 | all_types << ["{"+ @categorys.map { |c| |
97 | "{PARAMTYPE_" + @category[c].map { |e| |
97 | "{PARAMTYPE_" + @category[c].map { |e| |
98 | e[:typ] |
98 | e[:typ] |
99 | }.join(",PARAMTYPE_") + "}" |
99 | }.join(",PARAMTYPE_") + "}" |
100 | }.join(",") + "}"] |
100 | }.join(",") + "}"] |
101 | 101 | ||
102 | all_namestarts << name_pos |
102 | all_namestarts << name_pos |
103 | all_lengths << end_pos |
103 | all_lengths << end_pos |
104 | #rio(e+".new") <new |
104 | #rio(e+".new") <new |
105 | 105 | ||
106 | 106 | ||
107 | 107 | ||
108 | 108 | ||
109 | 109 | ||
110 | 110 | ||
111 | } |
111 | } |
112 | 112 | ||
113 | puts "// -- start generated code --" |
113 | puts "// -- start generated code --" |
114 | puts "public final static int[][] all_tab_stringids={"+all_tabs.join(",")+"};" |
114 | puts "public final static int[][] all_tab_stringids={"+all_tabs.join(",")+"};" |
115 | puts "public final static String[][][] all_field_names={"+all_names.join(",")+"};" |
115 | puts "public final static int[][][] all_field_stringids={"+all_names.join(",")+"};" |
116 | puts "public final static int[][][] all_field_positions={"+all_positions.join(",")+"};" |
116 | puts "public final static int[][][] all_field_positions={"+all_positions.join(",")+"};" |
117 | puts "public final static int[][][] all_field_types={"+all_types.join(",")+"};" |
117 | puts "public final static int[][][] all_field_types={"+all_types.join(",")+"};" |
118 | 118 | ||
119 | 119 | ||
120 | puts "public final static int[] all_name_positions={"+all_namestarts.join(",")+"};" |
120 | puts "public final static int[] all_name_positions={"+all_namestarts.join(",")+"};" |
121 | puts "public final static int[] all_lengths={"+all_lengths.join(",")+"};" |
121 | puts "public final static int[] all_lengths={"+all_lengths.join(",")+"};" |
122 | puts "// -- end generated code --" |
122 | puts "// -- end generated code --" |
123 | 123 |