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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (hide annotations) (download)
Mon Jul 21 08:39:12 2008 UTC (15 years, 9 months ago) by wakaba
Branch: MAIN
Changes since 1.2: +8 -5 lines
++ ChangeLog	21 Jul 2008 08:33:17 -0000
	* cc.cgi (print_table_section): Removed (now part of
	WebHACC::Language::DOM).

2008-07-21  Wakaba  <wakaba@suika.fam.cx>

++ html/WebHACC/Language/ChangeLog	21 Jul 2008 08:39:05 -0000
	* Base.pm (generate_source_string_section): Invoke
	|add_source_to_parse_error_list| method for generating a
	script fragment.

	* CSS.pm, CacheManifest.pm, DOM.pm, HTML.pm, WebIDL.pm,
	XML.pm: Use new methods for generating sections and error lists.

	* DOM.pm (generate_additional_sections, generate_table_section): New.

	* Default.pm: Pass |input| in place of |url| for unknown syntax
	error.

2008-07-21  Wakaba  <wakaba@suika.fam.cx>

++ html/WebHACC/ChangeLog	21 Jul 2008 08:36:01 -0000
	* Output.pm (start_section, end_section): "role" option
	implemented.  Automatical rank setting implemented.
	(start_error_list, end_error_list): New.
	(add_source_to_parse_error_list): New.

	* Result.pm: "Unknown location" message text changed.

2008-07-21  Wakaba  <wakaba@suika.fam.cx>

1 wakaba 1.1 package WebHACC::Language::WebIDL;
2     use strict;
3     require WebHACC::Language::Base;
4     push our @ISA, 'WebHACC::Language::Base';
5    
6     sub new ($) {
7     my $self = bless {}, shift;
8     return $self;
9     } # new
10    
11     sub generate_syntax_error_section ($) {
12     my $self = shift;
13    
14     require Whatpm::WebIDL;
15    
16     my $out = $self->output;
17 wakaba 1.3 $out->start_section (role => 'parse-errors');
18     $out->start_error_list (role => 'parse-errors');
19 wakaba 1.1
20     my $input = $self->input;
21     my $result = $self->result;
22    
23     require Encode;
24     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;
26    
27 wakaba 1.2 $self->{structure} = $parser->parse_char_string ($input->{s}, sub {
28     $result->add_error (@_, layer => 'syntax');
29     });
30 wakaba 1.1
31 wakaba 1.3 $out->end_error_list (role => 'parse-errors');
32     $out->end_section;
33 wakaba 1.1 } # generate_parse_error_section
34    
35     sub generate_structure_dump_section ($) {
36     my $self = shift;
37    
38     my $out = $self->output;
39 wakaba 1.3
40     $out->start_section (role => 'reformatted');
41    
42 wakaba 1.1 $out->start_code_block;
43     $out->text ($self->{structure}->idl_text);
44     $out->end_code_block;
45 wakaba 1.3
46 wakaba 1.1 $out->end_section
47     } # generate_structure_dump_section
48    
49     1;

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24