/[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.91 by wakaba, Sat Mar 8 03:04:09 2008 UTC revision 1.94 by wakaba, Sat Mar 8 04:13:10 2008 UTC
# Line 4230  sub _tree_construction_main ($) { Line 4230  sub _tree_construction_main ($) {
4230                  while ($self->{open_elements}->[-1]->[1] ne 'table' and                  while ($self->{open_elements}->[-1]->[1] ne 'table' and
4231                         $self->{open_elements}->[-1]->[1] ne 'html') {                         $self->{open_elements}->[-1]->[1] ne 'html') {
4232                    !!!cp ('t201');                    !!!cp ('t201');
                   !!!parse-error (type => 'not closed:'.$self->{open_elements}->[-1]->[1]);  
4233                    pop @{$self->{open_elements}};                    pop @{$self->{open_elements}};
4234                  }                  }
4235                                    
# Line 4251  sub _tree_construction_main ($) { Line 4250  sub _tree_construction_main ($) {
4250                  }->{$self->{open_elements}->[-1]->[1]}) {                  }->{$self->{open_elements}->[-1]->[1]}) {
4251                    !!!cp ('t203');                    !!!cp ('t203');
4252                    ## ISSUE: Can this case be reached?                    ## ISSUE: Can this case be reached?
                   !!!parse-error (type => 'not closed:'.$self->{open_elements}->[-1]->[1]);  
4253                    pop @{$self->{open_elements}};                    pop @{$self->{open_elements}};
4254                  }                  }
4255                                    
# Line 4275  sub _tree_construction_main ($) { Line 4273  sub _tree_construction_main ($) {
4273                  tr => 1, html => 1,                  tr => 1, html => 1,
4274                }->{$self->{open_elements}->[-1]->[1]}) {                }->{$self->{open_elements}->[-1]->[1]}) {
4275                  !!!cp ('t207');                  !!!cp ('t207');
                 !!!parse-error (type => 'not closed:'.$self->{open_elements}->[-1]->[1]);  
4276                  pop @{$self->{open_elements}};                  pop @{$self->{open_elements}};
4277                }                }
4278                                
# Line 4326  sub _tree_construction_main ($) { Line 4323  sub _tree_construction_main ($) {
4323                  }->{$self->{open_elements}->[-1]->[1]}) {                  }->{$self->{open_elements}->[-1]->[1]}) {
4324                    !!!cp ('t211');                    !!!cp ('t211');
4325                    ## ISSUE: Can this case be reached?                    ## ISSUE: Can this case be reached?
                   !!!parse-error (type => 'not closed:'.$self->{open_elements}->[-1]->[1]);  
4326                    pop @{$self->{open_elements}};                    pop @{$self->{open_elements}};
4327                  }                  }
4328                                    
# Line 4375  sub _tree_construction_main ($) { Line 4371  sub _tree_construction_main ($) {
4371                  }->{$self->{open_elements}->[-1]->[1]}) {                  }->{$self->{open_elements}->[-1]->[1]}) {
4372                    !!!cp ('t217');                    !!!cp ('t217');
4373                    ## ISSUE: Can this state be reached?                    ## ISSUE: Can this state be reached?
                   !!!parse-error (type => 'not closed:'.$self->{open_elements}->[-1]->[1]);  
4374                    pop @{$self->{open_elements}};                    pop @{$self->{open_elements}};
4375                  }                  }
4376                                    
# Line 4399  sub _tree_construction_main ($) { Line 4394  sub _tree_construction_main ($) {
4394                         $self->{open_elements}->[-1]->[1] ne 'html') {                         $self->{open_elements}->[-1]->[1] ne 'html') {
4395                    !!!cp ('t219');                    !!!cp ('t219');
4396                    ## ISSUE: Can this state be reached?                    ## ISSUE: Can this state be reached?
                   !!!parse-error (type => 'not closed:'.$self->{open_elements}->[-1]->[1]);  
4397                    pop @{$self->{open_elements}};                    pop @{$self->{open_elements}};
4398                  }                  }
4399                                    
# Line 4417  sub _tree_construction_main ($) { Line 4411  sub _tree_construction_main ($) {
4411                         $self->{open_elements}->[-1]->[1] ne 'html') {                         $self->{open_elements}->[-1]->[1] ne 'html') {
4412                    !!!cp ('t220');                    !!!cp ('t220');
4413                    ## ISSUE: Can this state be reached?                    ## ISSUE: Can this state be reached?
                   !!!parse-error (type => 'not closed:'.$self->{open_elements}->[-1]->[1]);  
4414                    pop @{$self->{open_elements}};                    pop @{$self->{open_elements}};
4415                  }                  }
4416                                    
# Line 4529  sub _tree_construction_main ($) { Line 4522  sub _tree_construction_main ($) {
4522                }->{$self->{open_elements}->[-1]->[1]}) {                }->{$self->{open_elements}->[-1]->[1]}) {
4523                  !!!cp ('t231');                  !!!cp ('t231');
4524  ## ISSUE: Can this state be reached?  ## ISSUE: Can this state be reached?
                 !!!parse-error (type => 'not closed:'.$self->{open_elements}->[-1]->[1]);  
4525                  pop @{$self->{open_elements}};                  pop @{$self->{open_elements}};
4526                }                }
4527    
# Line 4570  sub _tree_construction_main ($) { Line 4562  sub _tree_construction_main ($) {
4562                  }->{$self->{open_elements}->[-1]->[1]}) {                  }->{$self->{open_elements}->[-1]->[1]}) {
4563                    !!!cp ('t236');                    !!!cp ('t236');
4564  ## ISSUE: Can this state be reached?  ## ISSUE: Can this state be reached?
                   !!!parse-error (type => 'not closed:'.$self->{open_elements}->[-1]->[1]);  
4565                    pop @{$self->{open_elements}};                    pop @{$self->{open_elements}};
4566                  }                  }
4567                                    
# Line 4610  sub _tree_construction_main ($) { Line 4601  sub _tree_construction_main ($) {
4601                    tbody => 1, tfoot => 1, thead => 1, html => 1,                    tbody => 1, tfoot => 1, thead => 1, html => 1,
4602                  }->{$self->{open_elements}->[-1]->[1]}) {                  }->{$self->{open_elements}->[-1]->[1]}) {
4603                    !!!cp ('t240');                    !!!cp ('t240');
                   !!!parse-error (type => 'not closed:'.$self->{open_elements}->[-1]->[1]);  
4604                    pop @{$self->{open_elements}};                    pop @{$self->{open_elements}};
4605                  }                  }
4606                                    
# Line 4626  sub _tree_construction_main ($) { Line 4616  sub _tree_construction_main ($) {
4616                  ## reprocess in the "in table" insertion mode...                  ## reprocess in the "in table" insertion mode...
4617                }                }
4618    
4619                  ## NOTE: </table> in the "in table" insertion mode.
4620                  ## When you edit the code fragment below, please ensure that
4621                  ## the code for <table> in the "in table" insertion mode
4622                  ## is synced with it.
4623    
4624                ## have a table element in table scope                ## have a table element in table scope
4625                my $i;                my $i;
4626                INSCOPE: for (reverse 0..$#{$self->{open_elements}}) {                INSCOPE: for (reverse 0..$#{$self->{open_elements}}) {
# Line 4648  sub _tree_construction_main ($) { Line 4643  sub _tree_construction_main ($) {
4643                  !!!next-token;                  !!!next-token;
4644                  redo B;                  redo B;
4645                }                }
   
               ## generate implied end tags  
               while ({  
                       dd => 1, dt => 1, li => 1, p => 1,  
                      }->{$self->{open_elements}->[-1]->[1]}) {  
                 !!!cp ('t244');  
 ## ISSUE: Can this case be reached?  
                 pop @{$self->{open_elements}};  
               }  
                 
               if ($self->{open_elements}->[-1]->[1] ne 'table') {  
                 !!!cp ('t245');  
                 !!!parse-error (type => 'not closed:'.$self->{open_elements}->[-1]->[1]);  
               } else {  
                 !!!cp ('t246');  
               }  
4646                                    
4647                splice @{$self->{open_elements}}, $i;                splice @{$self->{open_elements}}, $i;
4648                                
# Line 4729  sub _tree_construction_main ($) { Line 4708  sub _tree_construction_main ($) {
4708                  }->{$self->{open_elements}->[-1]->[1]}) {                  }->{$self->{open_elements}->[-1]->[1]}) {
4709                    !!!cp ('t253');                    !!!cp ('t253');
4710  ## ISSUE: Can this case be reached?  ## ISSUE: Can this case be reached?
                   !!!parse-error (type => 'not closed:'.$self->{open_elements}->[-1]->[1]);  
4711                    pop @{$self->{open_elements}};                    pop @{$self->{open_elements}};
4712                  }                  }
4713                                    
# Line 4767  sub _tree_construction_main ($) { Line 4745  sub _tree_construction_main ($) {
4745                }->{$self->{open_elements}->[-1]->[1]}) {                }->{$self->{open_elements}->[-1]->[1]}) {
4746                  !!!cp ('t257');                  !!!cp ('t257');
4747  ## ISSUE: Can this case be reached?  ## ISSUE: Can this case be reached?
                 !!!parse-error (type => 'not closed:'.$self->{open_elements}->[-1]->[1]);  
4748                  pop @{$self->{open_elements}};                  pop @{$self->{open_elements}};
4749                }                }
4750    
# Line 6044  sub _tree_construction_main ($) { Line 6021  sub _tree_construction_main ($) {
6021          !!!next-token;          !!!next-token;
6022          redo B;          redo B;
6023        } elsif ($token->{tag_name} eq 'form') {        } elsif ($token->{tag_name} eq 'form') {
6024            undef $self->{form_element};
6025    
6026          ## has an element in scope          ## has an element in scope
6027            my $i;
6028          INSCOPE: for (reverse 0..$#{$self->{open_elements}}) {          INSCOPE: for (reverse 0..$#{$self->{open_elements}}) {
6029            my $node = $self->{open_elements}->[$_];            my $node = $self->{open_elements}->[$_];
6030            if ($node->[1] eq $token->{tag_name}) {            if ($node->[1] eq $token->{tag_name}) {
             ## generate implied end tags  
             while ({  
                     dd => 1, dt => 1, li => 1, p => 1,  
                    }->{$self->{open_elements}->[-1]->[1]}) {  
               !!!cp ('t417');  
               pop @{$self->{open_elements}};  
             }  
   
6031              !!!cp ('t418');              !!!cp ('t418');
6032                $i = $_;
6033              last INSCOPE;              last INSCOPE;
6034            } elsif ({            } elsif ({
6035                      table => 1, caption => 1, td => 1, th => 1,                      table => 1, caption => 1, td => 1, th => 1,
# Line 6066  sub _tree_construction_main ($) { Line 6039  sub _tree_construction_main ($) {
6039              last INSCOPE;              last INSCOPE;
6040            }            }
6041          } # INSCOPE          } # INSCOPE
6042            
6043          if ($self->{open_elements}->[-1]->[1] eq $token->{tag_name}) {          unless (defined $i) { # has an element in scope
           !!!cp ('t420');  
           pop @{$self->{open_elements}};  
         } else {  
6044            !!!cp ('t421');            !!!cp ('t421');
6045            !!!parse-error (type => 'unmatched end tag:'.$token->{tag_name});            !!!parse-error (type => 'unmatched end tag:'.$token->{tag_name});
6046            } else {
6047              ## Step 1. generate implied end tags
6048              while ({
6049                      dd => 1, dt => 1, li => 1, p => 1,
6050                     }->{$self->{open_elements}->[-1]->[1]}) {
6051                !!!cp ('t417');
6052                pop @{$self->{open_elements}};
6053              }
6054              
6055              ## Step 2.
6056              if ($self->{open_elements}->[-1]->[1] ne $token->{tag_name}) {
6057                !!!cp ('t417.1');
6058                !!!parse-error (type => 'not closed:'.$self->{open_elements}->[-1]->[1]);
6059              } else {
6060                !!!cp ('t420');
6061              }  
6062              
6063              ## Step 3.
6064              splice @{$self->{open_elements}}, $i;
6065          }          }
6066    
         undef $self->{form_element};  
6067          !!!next-token;          !!!next-token;
6068          redo B;          redo B;
6069        } elsif ({        } elsif ({
# Line 6088  sub _tree_construction_main ($) { Line 6076  sub _tree_construction_main ($) {
6076            if ({            if ({
6077                 h1 => 1, h2 => 1, h3 => 1, h4 => 1, h5 => 1, h6 => 1,                 h1 => 1, h2 => 1, h3 => 1, h4 => 1, h5 => 1, h6 => 1,
6078                }->{$node->[1]}) {                }->{$node->[1]}) {
             ## generate implied end tags  
             while ({  
                     dd => 1, dt => 1, li => 1, p => 1,  
                    }->{$self->{open_elements}->[-1]->[1]}) {  
               !!!cp ('t422');  
               pop @{$self->{open_elements}};  
             }  
   
6079              !!!cp ('t423');              !!!cp ('t423');
6080              $i = $_;              $i = $_;
6081              last INSCOPE;              last INSCOPE;
# Line 6107  sub _tree_construction_main ($) { Line 6087  sub _tree_construction_main ($) {
6087              last INSCOPE;              last INSCOPE;
6088            }            }
6089          } # INSCOPE          } # INSCOPE
6090            
6091          if ($self->{open_elements}->[-1]->[1] ne $token->{tag_name}) {          unless (defined $i) { # has an element in scope
6092            !!!cp ('t425');            !!!cp ('t425.1');
6093            !!!parse-error (type => 'unmatched end tag:'.$token->{tag_name});            !!!parse-error (type => 'unmatched end tag:'.$token->{tag_name});
6094          } else {          } else {
6095            !!!cp ('t426');            ## Step 1. generate implied end tags
6096              while ({
6097                      dd => 1, dt => 1, li => 1, p => 1,
6098                     }->{$self->{open_elements}->[-1]->[1]}) {
6099                !!!cp ('t422');
6100                pop @{$self->{open_elements}};
6101              }
6102              
6103              ## Step 2.
6104              if ($self->{open_elements}->[-1]->[1] ne $token->{tag_name}) {
6105                !!!cp ('t425');
6106                !!!parse-error (type => 'unmatched end tag:'.$token->{tag_name});
6107              } else {
6108                !!!cp ('t426');
6109              }
6110    
6111              ## Step 3.
6112              splice @{$self->{open_elements}}, $i;
6113          }          }
6114                    
         splice @{$self->{open_elements}}, $i if defined $i;  
6115          !!!next-token;          !!!next-token;
6116          redo B;          redo B;
6117        } elsif ($token->{tag_name} eq 'p') {        } elsif ($token->{tag_name} eq 'p') {

Legend:
Removed from v.1.91  
changed lines
  Added in v.1.94

[email protected]
ViewVC Help
Powered by ViewVC 1.1.24