OpenCores
URL https://opencores.org/ocsvn/core_arm/core_arm/trunk

Subversion Repositories core_arm

[/] [core_arm/] [trunk/] [soft/] [doc/] [doc3.pl] - Blame information for rev 6

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 tarookumic
@d3_files = ();
2
%d3_partfn = ();
3
%d3_usedby_set = ();
4
%d3_templates = ();
5
%d3_pathreplace = ();
6
$d3_header = "";
7
$d3_maintemplate = "";
8
$d3_frame = "";
9
$d3_framebase = "";
10
 
11
$cf = $ARGV[0];
12
if (!(-f $cf)) { die("$cf does not exist\n");}
13
open $CF,"$cf" or die ("Unable to open $cf\n");
14
$cfs = "";
15
$state = 0;
16
while (<$CF>) {
17
    s/[[:space:]\n\r]*//g;
18
    if (!($_ eq "")) {
19
        if (/\[files\]/) {
20
            $state = 1;
21
        }
22
        elsif (/\[templates\]/) {
23
            $state = 2;
24
        }
25
        elsif (/\[main\]/) {
26
            $state = 3;
27
        }
28
        elsif (/\[header\]/) {
29
            $state = 4;
30
        }
31
        elsif (/\[frames\]/) {
32
            $state = 5;
33
        }
34
        elsif (/\[out-fileselect\]/) {
35
            $state = 6;
36
        }
37
        elsif (/\[out-base\]/) {
38
            $state = 7;
39
        }
40
        elsif ($state == 1) {
41
            print ("Adding file $_\n");
42
            push (@d3_files,$_);
43
        }
44
        elsif ($state == 2) {
45
            if (/(%[^%]*%)=readfile\("([^"]*)"\)/) {
46
                print ("Adding template $1=$2\n");
47
                $d3_templates{$1} = d3_readfile($2);
48
            } elsif (/(%[^%]*%)=pathreplace\("([^"]*)"\)/) {
49
                $d3_pathreplace{$1} = $2;
50
            }
51
        }
52
        elsif ($state == 3) {
53
            $d3_maintemplate = $_;
54
        }
55
        elsif ($state == 4) {
56
            $d3_header = $_;
57
        }
58
        elsif ($state == 5) {
59
            $d3_frame = $_;
60
            $d3_frame = d3_readfile($d3_frame,0);
61
        }
62
        elsif ($state == 6) {
63
            $d3_fileselect = $_;
64
        }
65
        elsif ($state == 7) {
66
            $d3_framebase = $_;
67
        }
68
    }
69
    $d3_templates{"%date%"} = `date`;
70
}
71
close $CF;
72
 
73
sub d3_dumpfilelist
74
{
75
    my @ar = @d3_files;
76
    my $i = 0;
77
    if ($dbgon == 1) {
78
        foreach(@ar) {
79
            print ("$i:$_\n");
80
            $i++;
81
        }
82
    }
83
}
84
 
85
sub d3_template_replace
86
{
87
    my ($body) = @_;
88
    my $a = 0;
89
 
90
    foreach $a (keys %d3_templates) {
91
        $body =~ s/$a/$d3_templates{$a}/gi;
92
    }
93
    return $body;
94
}
95
 
96
$d3_pathreplaceid = 0;
97
 
98
sub d3_template_pathreplace
99
{
100
    my ($body,$path) = @_;
101
    my $a = "";
102
    my $tmp = "", my $fn = "";
103
 
104
    foreach $a (keys %d3_pathreplace) {
105
        $fn = $d3_pathreplace{$a};
106
        $fn = d3_relpath($path,$fn);
107
        $body =~ s/$a/$fn/gi;
108
    }
109
 
110
    return $body;
111
}
112
 
113
sub d3_relpath
114
{
115
    my ($src,$dest) = @_;
116
    my @src = split("[\\/]",$src);
117
    my @dest = split("[\\/]",$dest);
118
    my $a,my $i,my $r = "";
119
    for ($i=0;($i <= $#src-1) && ($#dest > 0);$i++) {
120
        if ($src[$i] eq $dest[0]) {
121
            splice (@dest,0,1);
122
        } else {
123
            last;
124
        }
125
    }
126
 
127
    for (;$i <= $#src-1;$i++) {
128
        $r .= "../";
129
    }
130
    foreach $a (@dest) {
131
        if ((!($r eq "")) and ! (substr($r,length($r)-1,1) eq "/")) {
132
            $r .= "/"
133
        }
134
        $r .= $a
135
    }
136
 
137
    return $r;
138
}
139
 
140
sub d3_readfile
141
{
142
    my ($fn,$replace) = @_;
143
    my $F,my $body = "";
144
    open $F,"$fn" or die ("Unable to open $fn\n");
145
    while (<$F>) {
146
        s/\r\n$]*/\n/g;
147
        if ($replace == 1) {
148
            s/</&lt;/g;
149
            s/>/&gt;/g;
150
        }
151
        $body .= $_;
152
    }
153
    close $F;
154
    return $body;
155
}
156
 
157
sub d3_readallfiles
158
{
159
    my @ar = @d3_files;
160
    my $body = "";
161
    my $off = 0,my %tmp,my $fn;
162
    foreach(@ar) {
163
        $fn = $_;
164
        $d3_partfn{$off} = $_;
165
        $body .= d3_readfile($_,1);
166
        $off = length($body);
167
    }
168
    return $body;
169
}
170
 
171
sub d3_createusage
172
{
173
    my ($compbody) = @_;
174
    my @ar = @d3_files;
175
    my ($usagereg,$pos,$fn,$cfn,$pfn,$body);
176
    my $reg = "($id)\\.vhd\$";
177
    my (@usage,$htmlname,$vhdlname);
178
    %d3_usedby_set = ();
179
    foreach(@ar) {
180
        $pfn = $_;
181
        print ("Create usage for $_\n");
182
        if (/$reg/) {
183
            $cfn = $1;
184
 
185
            $usagereg = "use".$sp."work".$sp."\\.".$sp."$cfn".$sp."\\.".$sp."all".$sp.";";
186
            if ($dbgon == 1) {
187
                print ("Creating usage for $cfn: $usagereg\n");
188
            }
189
            $pos = 0;
190
            $body = $compbody;
191
            @usage = ();
192
            while (length($body) != 0) {
193
                ($body,@match) = d2_scannext($body,$usagereg);
194
                if ($#match != -1) {
195
                    $fn = d3_filename($pos + $match[6]);
196
                    if ($dbgon == 1) {
197
                        print ("Found using file:$fn\n");
198
                    }
199
                    push (@usage,$fn);
200
                    $pos = $pos + $match[6] + $match[0];
201
                }
202
            }
203
            $html = "";
204
            foreach(@usage) {
205
                $vhdlname = $_;
206
                $htmlname = d3_gethtmlname($vhdlname);
207
                $d3_pathreplace{"%$d3_pathreplaceid%"} = $htmlname;
208
                $html .= "used by <a href=\"%$d3_pathreplaceid%\">$_</a>\n<br>";
209
                $d3_pathreplaceid++;
210
            }
211
 
212
            $vhdlname = $pfn;
213
            $htmlname = d3_gethtmlname($vhdlname);
214
 
215
            $d3_pathreplace{"%$d3_pathreplaceid%"} = $htmlname;
216
 
217
            $title = "&nbsp;&nbsp;&nbsp;File <b><a href=\"%$d3_pathreplaceid%\">$vhdlname</a></b> ";
218
            $title = $d5_divstart."$title<br>";
219
            $title =~ s/%id%/$d2_id/g;
220
 
221
            $d3_pathreplaceid++;
222
 
223
            $html = $title.$html.$d5_divend;
224
 
225
            %tmp = ( id   => $d2_id++,
226
                     html => $html
227
                     );
228
            $d3_usedby_set{$cfn} = [%tmp];
229
        }
230
    }
231
}
232
 
233
sub d3_gethtmlname
234
{
235
    my ($fn) = @_;
236
    $fn =~ s/vhd$/html/i;
237
    return $fn;
238
}
239
 
240
sub d3_filename
241
{
242
    my ($off) = @_;
243
    my $ke;
244
    my $filename = $d3_partfn{0};
245
    for $ke (sort { $a <=> $b } keys (%d3_partfn)) {
246
        if ($ke>$off) {
247
            last;
248
        }
249
        $filename = $d3_partfn{$ke};
250
    }
251
    return $filename;
252
}
253
 
254
1;

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.