/[suikacvs]/markup/html/whatpm/Whatpm/HTML.pm.src
Suika

Diff of /markup/html/whatpm/Whatpm/HTML.pm.src

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

revision 1.113 by wakaba, Sun Mar 16 07:07:59 2008 UTC revision 1.114 by wakaba, Sun Mar 16 11:40:19 2008 UTC
# Line 108  sub parse_byte_string ($$$$;$) { Line 108  sub parse_byte_string ($$$$;$) {
108    $self->{change_encoding} = sub {    $self->{change_encoding} = sub {
109      my $self = shift;      my $self = shift;
110      my $charset = lc shift;      my $charset = lc shift;
111        my $token = shift;
112      ## TODO: if $charset is supported      ## TODO: if $charset is supported
113      ## TODO: normalize charset name      ## TODO: normalize charset name
114    
# Line 126  sub parse_byte_string ($$$$;$) { Line 127  sub parse_byte_string ($$$$;$) {
127      }      }
128    
129      !!!parse-error (type => 'charset label detected:'.$self->{input_encoding}.      !!!parse-error (type => 'charset label detected:'.$self->{input_encoding}.
130          ':'.$charset, level => 'w');          ':'.$charset, level => 'w', token => $token);
131    
132      ## Step 3      ## Step 3
133      # if (can) {      # if (can) {
# Line 1651  sub _get_next_token ($) { Line 1652  sub _get_next_token ($) {
1652          redo A;          redo A;
1653        } elsif ($self->{next_char} == 0x002D) { # -        } elsif ($self->{next_char} == 0x002D) { # -
1654          !!!cp (152);          !!!cp (152);
1655          !!!parse-error (type => 'dash in comment');          !!!parse-error (type => 'dash in comment',
1656                            line => $self->{line_prev},
1657                            column => $self->{column_prev});
1658          $self->{current_token}->{data} .= '-'; # comment          $self->{current_token}->{data} .= '-'; # comment
1659          ## Stay in the state          ## Stay in the state
1660          !!!next-input-character;          !!!next-input-character;
# Line 1667  sub _get_next_token ($) { Line 1670  sub _get_next_token ($) {
1670          redo A;          redo A;
1671        } else {        } else {
1672          !!!cp (154);          !!!cp (154);
1673          !!!parse-error (type => 'dash in comment');          !!!parse-error (type => 'dash in comment',
1674                            line => $self->{line_prev},
1675                            column => $self->{column_prev});
1676          $self->{current_token}->{data} .= '--' . chr ($self->{next_char}); # comment          $self->{current_token}->{data} .= '--' . chr ($self->{next_char}); # comment
1677          $self->{state} = COMMENT_STATE;          $self->{state} = COMMENT_STATE;
1678          !!!next-input-character;          !!!next-input-character;
# Line 3535  sub _tree_construction_main ($) { Line 3540  sub _tree_construction_main ($) {
3540                  if ($token->{attributes}->{charset}) { ## TODO: And if supported                  if ($token->{attributes}->{charset}) { ## TODO: And if supported
3541                    !!!cp ('t106');                    !!!cp ('t106');
3542                    $self->{change_encoding}                    $self->{change_encoding}
3543                        ->($self, $token->{attributes}->{charset}->{value});                        ->($self, $token->{attributes}->{charset}->{value},
3544                             $token);
3545                                        
3546                    $meta_el->[0]->get_attribute_node_ns (undef, 'charset')                    $meta_el->[0]->get_attribute_node_ns (undef, 'charset')
3547                        ->set_user_data (manakai_has_reference =>                        ->set_user_data (manakai_has_reference =>
# Line 3550  sub _tree_construction_main ($) { Line 3556  sub _tree_construction_main ($) {
3556                            ([^"'\x09-\x0D\x20][^\x09-\x0D\x20]*))/x) {                            ([^"'\x09-\x0D\x20][^\x09-\x0D\x20]*))/x) {
3557                      !!!cp ('t107');                      !!!cp ('t107');
3558                      $self->{change_encoding}                      $self->{change_encoding}
3559                          ->($self, defined $1 ? $1 : defined $2 ? $2 : $3);                          ->($self, defined $1 ? $1 : defined $2 ? $2 : $3,
3560                               $token);
3561                      $meta_el->[0]->get_attribute_node_ns (undef, 'content')                      $meta_el->[0]->get_attribute_node_ns (undef, 'content')
3562                          ->set_user_data (manakai_has_reference =>                          ->set_user_data (manakai_has_reference =>
3563                                               $token->{attributes}->{content}                                               $token->{attributes}->{content}
# Line 3947  sub _tree_construction_main ($) { Line 3954  sub _tree_construction_main ($) {
3954    
3955                      ## Close the cell                      ## Close the cell
3956                      !!!back-token; # <?>                      !!!back-token; # <?>
3957                      $token = {type => END_TAG_TOKEN, tag_name => $node->[1]};                      $token = {type => END_TAG_TOKEN, tag_name => $node->[1],
3958                                  line => $token->{line},
3959                                  column => $token->{column}};
3960                      redo B;                      redo B;
3961                    } elsif ({                    } elsif ({
3962                              table => 1, html => 1,                              table => 1, html => 1,
# Line 4160  sub _tree_construction_main ($) { Line 4169  sub _tree_construction_main ($) {
4169    
4170                      ## Close the cell                      ## Close the cell
4171                      !!!back-token; # </?>                      !!!back-token; # </?>
4172                      $token = {type => END_TAG_TOKEN, tag_name => $tn};                      $token = {type => END_TAG_TOKEN, tag_name => $tn,
4173                                  line => $token->{line},
4174                                  column => $token->{column}};
4175                      redo B;                      redo B;
4176                    } elsif ($node->[1] eq 'td' or $node->[1] eq 'th') {                    } elsif ($node->[1] eq 'td' or $node->[1] eq 'th') {
4177                      !!!cp ('t180');                      !!!cp ('t180');
# Line 5557  sub _tree_construction_main ($) { Line 5568  sub _tree_construction_main ($) {
5568            if ($token->{attributes}->{charset}) { ## TODO: And if supported            if ($token->{attributes}->{charset}) { ## TODO: And if supported
5569              !!!cp ('t335');              !!!cp ('t335');
5570              $self->{change_encoding}              $self->{change_encoding}
5571                  ->($self, $token->{attributes}->{charset}->{value});                  ->($self, $token->{attributes}->{charset}->{value}, $token);
5572                            
5573              $meta_el->[0]->get_attribute_node_ns (undef, 'charset')              $meta_el->[0]->get_attribute_node_ns (undef, 'charset')
5574                  ->set_user_data (manakai_has_reference =>                  ->set_user_data (manakai_has_reference =>
# Line 5572  sub _tree_construction_main ($) { Line 5583  sub _tree_construction_main ($) {
5583                      ([^"'\x09-\x0D\x20][^\x09-\x0D\x20]*))/x) {                      ([^"'\x09-\x0D\x20][^\x09-\x0D\x20]*))/x) {
5584                !!!cp ('t336');                !!!cp ('t336');
5585                $self->{change_encoding}                $self->{change_encoding}
5586                    ->($self, defined $1 ? $1 : defined $2 ? $2 : $3);                    ->($self, defined $1 ? $1 : defined $2 ? $2 : $3, $token);
5587                $meta_el->[0]->get_attribute_node_ns (undef, 'content')                $meta_el->[0]->get_attribute_node_ns (undef, 'content')
5588                    ->set_user_data (manakai_has_reference =>                    ->set_user_data (manakai_has_reference =>
5589                                         $token->{attributes}->{content}                                         $token->{attributes}->{content}
# Line 5646  sub _tree_construction_main ($) { Line 5657  sub _tree_construction_main ($) {
5657            if ($_->[1] eq 'p') {            if ($_->[1] eq 'p') {
5658              !!!cp ('t344');              !!!cp ('t344');
5659              !!!back-token;              !!!back-token;
5660              $token = {type => END_TAG_TOKEN, tag_name => 'p'};              $token = {type => END_TAG_TOKEN, tag_name => 'p',
5661                          line => $token->{line}, column => $token->{column}};
5662              redo B;              redo B;
5663            } elsif ({            } elsif ({
5664                      applet => 1, table => 1, caption => 1, td => 1, th => 1,                      applet => 1, table => 1, caption => 1, td => 1, th => 1,
# Line 5699  sub _tree_construction_main ($) { Line 5711  sub _tree_construction_main ($) {
5711            if ($_->[1] eq 'p') {            if ($_->[1] eq 'p') {
5712              !!!cp ('t353');              !!!cp ('t353');
5713              !!!back-token;              !!!back-token;
5714              $token = {type => END_TAG_TOKEN, tag_name => 'p'};              $token = {type => END_TAG_TOKEN, tag_name => 'p',
5715                          line => $token->{line}, column => $token->{column}};
5716              redo B;              redo B;
5717            } elsif ({            } elsif ({
5718                      applet => 1, table => 1, caption => 1, td => 1, th => 1,                      applet => 1, table => 1, caption => 1, td => 1, th => 1,
# Line 5758  sub _tree_construction_main ($) { Line 5771  sub _tree_construction_main ($) {
5771            if ($_->[1] eq 'p') {            if ($_->[1] eq 'p') {
5772              !!!cp ('t367');              !!!cp ('t367');
5773              !!!back-token;              !!!back-token;
5774              $token = {type => END_TAG_TOKEN, tag_name => 'p'};              $token = {type => END_TAG_TOKEN, tag_name => 'p',
5775                          line => $token->{line}, column => $token->{column}};
5776              redo B;              redo B;
5777            } elsif ({            } elsif ({
5778                      applet => 1, table => 1, caption => 1, td => 1, th => 1,                      applet => 1, table => 1, caption => 1, td => 1, th => 1,
# Line 5783  sub _tree_construction_main ($) { Line 5797  sub _tree_construction_main ($) {
5797              !!!parse-error (type => 'in a:a', token => $token);              !!!parse-error (type => 'in a:a', token => $token);
5798                            
5799              !!!back-token;              !!!back-token;
5800              $token = {type => END_TAG_TOKEN, tag_name => 'a'};              $token = {type => END_TAG_TOKEN, tag_name => 'a',
5801                          line => $token->{line}, column => $token->{column}};
5802              $formatting_end_tag->($token);              $formatting_end_tag->($token);
5803                            
5804              AFE2: for (reverse 0..$#$active_formatting_elements) {              AFE2: for (reverse 0..$#$active_formatting_elements) {
# Line 5824  sub _tree_construction_main ($) { Line 5839  sub _tree_construction_main ($) {
5839              !!!cp ('t376');              !!!cp ('t376');
5840              !!!parse-error (type => 'in nobr:nobr', token => $token);              !!!parse-error (type => 'in nobr:nobr', token => $token);
5841              !!!back-token;              !!!back-token;
5842              $token = {type => END_TAG_TOKEN, tag_name => 'nobr'};              $token = {type => END_TAG_TOKEN, tag_name => 'nobr',
5843                          line => $token->{line}, column => $token->{column}};
5844              redo B;              redo B;
5845            } elsif ({            } elsif ({
5846                      applet => 1, table => 1, caption => 1, td => 1, th => 1,                      applet => 1, table => 1, caption => 1, td => 1, th => 1,
# Line 5848  sub _tree_construction_main ($) { Line 5864  sub _tree_construction_main ($) {
5864              !!!cp ('t378');              !!!cp ('t378');
5865              !!!parse-error (type => 'in button:button', token => $token);              !!!parse-error (type => 'in button:button', token => $token);
5866              !!!back-token;              !!!back-token;
5867              $token = {type => END_TAG_TOKEN, tag_name => 'button'};              $token = {type => END_TAG_TOKEN, tag_name => 'button',
5868                          line => $token->{line}, column => $token->{column}};
5869              redo B;              redo B;
5870            } elsif ({            } elsif ({
5871                      applet => 1, table => 1, caption => 1, td => 1, th => 1,                      applet => 1, table => 1, caption => 1, td => 1, th => 1,
# Line 5903  sub _tree_construction_main ($) { Line 5920  sub _tree_construction_main ($) {
5920            delete $at->{prompt};            delete $at->{prompt};
5921            my @tokens = (            my @tokens = (
5922                          {type => START_TAG_TOKEN, tag_name => 'form',                          {type => START_TAG_TOKEN, tag_name => 'form',
5923                           attributes => $form_attrs},                           attributes => $form_attrs,
5924                          {type => START_TAG_TOKEN, tag_name => 'hr'},                           line => $token->{line}, column => $token->{column}},
5925                          {type => START_TAG_TOKEN, tag_name => 'p'},                          {type => START_TAG_TOKEN, tag_name => 'hr',
5926                          {type => START_TAG_TOKEN, tag_name => 'label'},                           line => $token->{line}, column => $token->{column}},
5927                            {type => START_TAG_TOKEN, tag_name => 'p',
5928                             line => $token->{line}, column => $token->{column}},
5929                            {type => START_TAG_TOKEN, tag_name => 'label',
5930                             line => $token->{line}, column => $token->{column}},
5931                         );                         );
5932            if ($prompt_attr) {            if ($prompt_attr) {
5933              !!!cp ('t390');              !!!cp ('t390');
5934              push @tokens, {type => CHARACTER_TOKEN, data => $prompt_attr->{value}};              push @tokens, {type => CHARACTER_TOKEN, data => $prompt_attr->{value},
5935                               line => $token->{line}, column => $token->{column}};
5936            } else {            } else {
5937              !!!cp ('t391');              !!!cp ('t391');
5938              push @tokens, {type => CHARACTER_TOKEN,              push @tokens, {type => CHARACTER_TOKEN,
5939                             data => 'This is a searchable index. Insert your search keywords here: '}; # SHOULD                             data => 'This is a searchable index. Insert your search keywords here: ',
5940                               line => $token->{line}, column => $token->{column}}; # SHOULD
5941              ## TODO: make this configurable              ## TODO: make this configurable
5942            }            }
5943            push @tokens,            push @tokens,
5944                          {type => START_TAG_TOKEN, tag_name => 'input', attributes => $at},                          {type => START_TAG_TOKEN, tag_name => 'input', attributes => $at,
5945                             line => $token->{line}, column => $token->{column}},
5946                          #{type => CHARACTER_TOKEN, data => ''}, # SHOULD                          #{type => CHARACTER_TOKEN, data => ''}, # SHOULD
5947                          {type => END_TAG_TOKEN, tag_name => 'label'},                          {type => END_TAG_TOKEN, tag_name => 'label',
5948                          {type => END_TAG_TOKEN, tag_name => 'p'},                           line => $token->{line}, column => $token->{column}},
5949                          {type => START_TAG_TOKEN, tag_name => 'hr'},                          {type => END_TAG_TOKEN, tag_name => 'p',
5950                          {type => END_TAG_TOKEN, tag_name => 'form'};                           line => $token->{line}, column => $token->{column}},
5951                            {type => START_TAG_TOKEN, tag_name => 'hr',
5952                             line => $token->{line}, column => $token->{column}},
5953                            {type => END_TAG_TOKEN, tag_name => 'form',
5954                             line => $token->{line}, column => $token->{column}};
5955            $token = shift @tokens;            $token = shift @tokens;
5956            !!!back-token (@tokens);            !!!back-token (@tokens);
5957            redo B;            redo B;

Legend:
Removed from v.1.113  
changed lines
  Added in v.1.114

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24