/[suikacvs]/webroot/gate/2007/html/WebHACC/Language/WebIDL.pm
Suika

Diff of /webroot/gate/2007/html/WebHACC/Language/WebIDL.pm

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

revision 1.1 by wakaba, Sun Jul 20 14:58:24 2008 UTC revision 1.4 by wakaba, Sat Aug 2 06:07:11 2008 UTC
# Line 14  sub generate_syntax_error_section ($) { Line 14  sub generate_syntax_error_section ($) {
14    require Whatpm::WebIDL;    require Whatpm::WebIDL;
15    
16    my $out = $self->output;    my $out = $self->output;
17    $out->start_section (id => 'parse-errors', title => 'Parse Errors');    $out->start_section (role => 'parse-errors');
18    $out->start_tag ('dl', id => 'parse-errors-list');    $out->start_error_list (role => 'parse-errors');
19    
20    my $input = $self->input;    my $input = $self->input;
21    my $result = $self->result;    my $result = $self->result;
22    
   my $onerror = sub {  
     my (%opt) = @_;  
     my ($type, $cls, $msg) = main::get_text ($opt{type}, $opt{level});  
     $out->html (qq[<dt class="$cls">] . $result->get_error_label ($input, \%opt));  
     $type =~ tr/ /-/;  
     $type =~ s/\|/%7C/g;  
     $out->html (qq[<dd class="$cls">], $result->get_error_level_label (\%opt) . $msg);  
     $out->text (' [');  
     $out->link ('Description', url => '../error-description#' . $type);  
     $out->text (']');  
   
     main::add_error ('syntax', \%opt => $result);  
   };  
   
23    require Encode;    require Encode;
24    my $s = $input->{is_char_string} ? $input->{s} : Encode::decode ($input->{charset} || 'utf-8', $input->{s}); ## TODO: charset    my $s = $input->{is_char_string} ? $input->{s} : Encode::decode ($input->{charset} || 'utf-8', $input->{s}); ## TODO: charset
25    my $parser = Whatpm::WebIDL::Parser->new;    my $parser = Whatpm::WebIDL::Parser->new;
26    
27    $self->{structure} = $parser->parse_char_string ($input->{s}, $onerror);    $self->{structure} = $parser->parse_char_string ($input->{s}, sub {
28        $result->add_error (@_, layer => 'syntax');
29      });
30    
31    $out->html ('</dl></div>');    $out->end_error_list (role => 'parse-errors');
32      $out->end_section;
33  } # generate_parse_error_section  } # generate_parse_error_section
34    
35  sub generate_structure_dump_section ($) {  sub generate_structure_dump_section ($) {
36    my $self = shift;    my $self = shift;
37        
38    my $out = $self->output;    my $out = $self->output;
39      
40    $out->start_section (id => 'dump-webidl', title => 'WebIDL');    $out->start_section (role => 'reformatted');
41    
42    $out->start_code_block;    $out->start_code_block;
43    $out->text ($self->{structure}->idl_text);    $out->text ($self->{structure}->idl_text);
44    $out->end_code_block;    $out->end_code_block;
45    
46    $out->end_section    $out->end_section
47  } # generate_structure_dump_section  } # generate_structure_dump_section
48    
49    sub generate_structure_error_section ($) {
50      my $self = shift;
51    
52      my $out = $self->output;
53      
54      $out->start_section (role => 'structure-errors');
55      $out->start_error_list (role => 'structure-errors');
56    
57      $self->{structure}->check (sub {
58        $self->result->add_error (@_, layer => 'structure');
59      });
60      
61      $out->end_error_list (role => 'structure-errors');
62      $out->end_section;
63    } # generate_structure_error_section
64    
65  1;  1;

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

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24