Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / perl-5.8.0 / lib / site_perl / 5.8.0 / Pastel / Tools / Writer.pm
CommitLineData
86530b38
AT
1package Pastel::Tools::Writer;\r
2use strict;\r
3\r
4sub new {\r
5 my $class = shift;\r
6 my $self = {};\r
7 bless $self, ref($class) || $class;\r
8 $self->_init(@_);\r
9 return $self;\r
10}\r
11\r
12sub _init {\r
13 my $self = shift;\r
14 $self->{_indent} = 0;\r
15 $self->{_temp_buffer} = "";\r
16 $self->{_inside_flag} = "";\r
17 return $self;\r
18}\r
19\r
20sub print_svg {\r
21 my $self = shift;\r
22 my $xml = shift;\r
23\r
24 # print "Inside writer\n";\r
25 my @xml = split (//, $xml); #Split the whole string in characters\r
26\r
27 for (my $i=0; $i < @xml ; $i++) {\r
28# print "Inside for loop\n";\r
29 $self->{_temp_buffer} .= $xml[$i];\r
30 \r
31 if ($xml[$i] eq "<") {\r
32 $self->{_inside_flag} = "true";\r
33 $self->{_indent}++;\r
34#print "START**\n";\r
35 if ($xml[$i+1] eq "?"){\r
36 $self->{_indent}--;\r
37 }\r
38\r
39 if ($xml[$i+1] eq "!" && $xml[$i+2] eq "D"){\r
40 $self->{_indent}--;\r
41 }\r
42 \r
43 if ($xml[$i+1] eq "/"){\r
44 $self->{_indent}--;\r
45 }\r
46\r
47 # if ($xml[$i+1] =~ /s/i){\r
48# $self->{_indent}--;\r
49\r
50# }\r
51# print "Indent $self->{_indent}\n"; \r
52 }\r
53\r
54 if ($xml[$i] eq ">") {\r
55 $self->{_inside_flag} = "";\r
56 # print "Inside end tag\n";\r
57 my $tab = $self->{_indent};\r
58 my $gap = " " x $tab;\r
59 print "$gap","$self->{_temp_buffer}","\n";\r
60 $self->{_temp_buffer} ="";\r
61 \r
62 }\r
63\r
64 if ($xml[$i] eq "/"){\r
65\r
66 if($xml[$i +1] eq ">"){ # && $self->{_inside_flag} eq "true") {\r
67 $self->{_indent}--;\r
68 }\r
69 if($xml[$i +1] =~ /s/i && $self->{_inside_flag} eq "true") {\r
70 $self->{indent}--;\r
71 }\r
72 } \r
73# print "***********$self->{_indent}\n";\r
74 }\r
75}\r
76 \r
77sub set_indent {\r
78 my $self = shift;\r
79 my $indent = shift;\r
80 $self->{_indent} = $indent;\r
81}\r
82\r
83sub get_indent {\r
84 my $self = shift;\r
85 return $self->{_indent};\r
86}\r
87\r
88\r
891;\r