/[suikacvs]/test/html-webhacc/WebHACC/Language/RegExpJS.pm
Suika

Diff of /test/html-webhacc/WebHACC/Language/RegExpJS.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by wakaba, Thu Dec 11 03:22:57 2008 UTC revision 1.2 by wakaba, Thu Dec 11 05:11:11 2008 UTC
# Line 60  sub generate_syntax_error_section ($) { Line 60  sub generate_syntax_error_section ($) {
60    $out->end_section;    $out->end_section;
61  } # generate_parse_error_section  } # generate_parse_error_section
62    
63  sub generate_structure_dump_section ($) { }  sub generate_structure_dump_section ($) {
64      my $self = shift;
65      
66      my $parser = $self->{structure};
67      return if $parser->errnum;
68    
69      my $out = $self->output;
70      $out->start_section (id => 'graph-', title => 'Graph');
71    
72      require Regexp::Visualize::Simple;
73      my $v = Regexp::Visualize::Simple->new;
74      $v->push_regexp_node ($parser->root);
75    
76      require Encode;
77      require MIME::Base64;
78    
79      while ($v->has_regexp_node) {
80        my ($g, $i) = $v->next_graph;
81    
82        my $index = $out->input->full_subdocument_index;
83        $index = $index ? $index . '.' . $i : $i;
84    
85        $out->start_section (id => 'graph-' . $i,
86                             title => 'Regexp #', text => $index,
87                             notab => 1);
88    
89        ## If browsers supported SVG in text/html!
90    
91        my $svg = $g->as_svg;
92        my $width = '';
93        my $height = '';
94        $width = int $1 + 1 if $svg =~ /width="([\d.]+)"/;
95        $height = int $1 + 1 if $svg =~ /height="([\d.]+)"/;
96    
97        my $data_url = Encode::encode ('utf8', $svg);
98        $data_url = MIME::Base64::encode_base64 ($data_url);
99        $data_url =~ s/\s+//g;
100        $data_url = 'data:image/svg+xml;base64,' . $data_url;
101    
102        $out->start_tag ('iframe',
103                         src => $data_url,
104                         width => $width, height => $height,
105                         seamless => 1);
106        $out->end_tag ('iframe');
107    
108        $out->end_section;
109      }
110    
111      $out->end_section
112    
113    } # generate_structure_dump_section
114    
115  sub generate_structure_error_section ($) { }  sub generate_structure_error_section ($) { }
116    

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24