/[suikacvs]/messaging/manakai/lib/Message/DOM/XMLParser.dis
Suika

Diff of /messaging/manakai/lib/Message/DOM/XMLParser.dis

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

revision 1.12 by wakaba, Wed Feb 8 08:18:29 2006 UTC revision 1.13 by wakaba, Wed Feb 8 09:49:58 2006 UTC
# Line 354  ClsDef: Line 354  ClsDef:
354            GETCHAR: {            GETCHAR: {
355              my $char = substr (${$self->{entity}->[-1]->{reptxt}},              my $char = substr (${$self->{entity}->[-1]->{reptxt}},
356                                 $self->{entity}->[-1]->{pos}, 1);                                 $self->{entity}->[-1]->{pos}, 1);
             $self->{entity}->[-1]->{pos}++;  
357    
358              if (defined $char and length $char) {              if (defined $char and length $char) {
359                  $self->{entity}->[-1]->{pos}++;
360                $r = ord $char;                $r = ord $char;
361                if ($r == 0x000A) {                if ($r == 0x000A) {
362                  $self->{entity}->[-1]->{line}++;                  $self->{entity}->[-1]->{line}++;
# Line 366  ClsDef: Line 366  ClsDef:
366                                          $self->{entity}->[-1]->{pos}, 1);                                          $self->{entity}->[-1]->{pos}, 1);
367                  if ($next_char eq "\x0A") {                  if ($next_char eq "\x0A") {
368                    $self->{entity}->[-1]->{pos}++;                    $self->{entity}->[-1]->{pos}++;
369                      $self->{entity}->[-1]->{line}++;
370                    $self->{entity}->[-1]->{column} = 1;                    $self->{entity}->[-1]->{column} = 1;
371                  } elsif ($next_char eq "\x85") {                  } elsif ($next_char eq "\x85") {
372                    if ($self->{xml_version} eq '1.1') {                    if ($self->{xml_version} eq '1.1') {
373                      $self->{entity}->[-1]->{pos}++;                      $self->{entity}->[-1]->{pos}++;
374                        $self->{entity}->[-1]->{line}++;
375                      $self->{entity}->[-1]->{column} = 1;                      $self->{entity}->[-1]->{column} = 1;
376                    } else {                    } else {
377                      $self->{entity}->[-1]->{column} = 0;                      $self->{entity}->[-1]->{column}++;
378                        ## Line number will be increased by next |shiftChar| call.
379                    }                    }
380                  } else {                  } else {
381                      $self->{entity}->[-1]->{line}++;
382                    $self->{entity}->[-1]->{column} = 1;                    $self->{entity}->[-1]->{column} = 1;
383                  }                  }
384                  $r = 0x000A;                  $r = 0x000A;
                 $self->{entity}->[-1]->{line}++;  
385                } elsif (                } elsif (
386                  not ((0x0020 <= $r and $r <= 0x007E) or                  not ((0x0020 <= $r and $r <= 0x007E) or
387                       (0x00A0 <= $r and $r <= 0xD7FF) or                       (0x00A0 <= $r and $r <= 0xD7FF) or
# Line 389  ClsDef: Line 392  ClsDef:
392                       (0x007F <= $r and $r <= 0x009F))                       (0x007F <= $r and $r <= 0x009F))
393                ) {                ) {
394                  my $location = {                  my $location = {
395                    utf32_offset => $self->{entity}->[-1]->{pos},                    utf32_offset => $self->{entity}->[-1]->{pos} - 1,
396                    line_number => $self->{entity}->[-1]->{line},                    line_number => $self->{entity}->[-1]->{line},
397                    column_number => $self->{entity}->[-1]->{column},                    column_number => $self->{entity}->[-1]->{column},
398                  };                  };
# Line 404  ClsDef: Line 407  ClsDef:
407                  $self->{entity}->[-1]->{column}++;                  $self->{entity}->[-1]->{column}++;
408                } elsif ($r == 0x0085 or $r == 0x2028) {                } elsif ($r == 0x0085 or $r == 0x2028) {
409                  $r = 0x000A if $self->{xml_version} eq '1.1';                  $r = 0x000A if $self->{xml_version} eq '1.1';
410                    ## Even in XML 1.0 it increases the line number.
411                  $self->{entity}->[-1]->{line}++;                  $self->{entity}->[-1]->{line}++;
412                  $self->{entity}->[-1]->{column} = 1;                  $self->{entity}->[-1]->{column} = 1;
413                } else {                } else {
414                  $self->{entity}->[-1]->{column}++;                  $self->{entity}->[-1]->{column}++;
415                }                }
 #            } elsif (@{$self->{entity}} > 1) {  
 #              pop @{$self->{entity}};  
 #              redo GETCHAR;  
 #              ## ISSUE: How cope with delimiter scanning &  
 #              ##        self-containedness constraints??  
416              } else {              } else {
417                $r = -1;                $r = -1;
418              }              }
# Line 805  ClsDef: Line 804  ClsDef:
804              }              }
805              $self->{has_error} = true;              $self->{has_error} = true;
806            }            }
807            $doc-><AS::Document.xmlStandalone> ($ver);            if ($ver eq 'yes') {
808            $self->{standalone} = true if $ver eq 'yes';              $doc-><AS::Document.xmlStandalone> (true);
809                $self->{standalone} = true;
810              }
811          }          }
812    
813          ~? (S) { }          ~? (S) { }
# Line 3863  _ Line 3864  _
3864      @@XMLTest:      @@XMLTest:
3865        @@@QName: xp.syntax.space.test        @@@QName: xp.syntax.space.test
3866        @@@DEnt:        @@@DEnt:
3867          @@@@test:value: \            @@@@test:value: \  
3868        @@@c:erred:        @@@c:erred:
3869          <[[xp:wf-syntax-error]]> { (1, 4); }          <[[xp:wf-syntax-error]]> { (1, 4); }
3870      @@XMLTest:      @@XMLTest:
# Line 3910  _ Line 3911  _
3911              text-content: '';              text-content: '';
3912            }            }
3913          }          }
3914    
3915        @@XMLTest:
3916          @@@QName: xp.xmldecl.version.1.0.test
3917          @@@DEnt:
3918            @@@@test:value:
3919              <?xml version="1.0"?>
3920              <p></p>
3921          @@@test:domTree:
3922            document {
3923              xml-version: '1.0';
3924              xml-encoding: null;
3925              xml-standalone: false;
3926              element { }
3927            }
3928        @@XMLTest:
3929          @@@QName: xp.xmldecl.version.1.0.lita.test
3930          @@@DEnt:
3931            @@@@test:value:
3932              <?xml version='1.0'?>
3933              <p></p>
3934          @@@test:domTree:
3935            document {
3936              xml-version: '1.0';
3937              xml-encoding: null;
3938              xml-standalone: false;
3939              element { }
3940            }
3941        @@XMLTest:
3942          @@@QName: xp.xmldecl.version.1.0.s.test
3943          @@@DEnt:
3944            @@@@test:value:
3945              <?xml  version  =  "1.0"  ?>
3946              <p></p>
3947          @@@test:domTree:
3948            document {
3949              xml-version: '1.0';
3950              xml-encoding: null;
3951              xml-standalone: false;
3952              element { }
3953            }
3954        @@XMLTest:
3955          @@@QName: xp.xmldecl.version.1.1.test
3956          @@@DEnt:
3957            @@@@test:value:
3958              <?xml version="1.1"?>
3959              <p></p>
3960          @@@test:domTree:
3961            document {
3962              xml-version: '1.1';
3963              xml-encoding: null;
3964              xml-standalone: false;
3965              element { }
3966            }
3967    
3968        @@XMLTest:
3969          @@@QName: xp.xmldecl.version.1.0.encoding.usascii.test
3970          @@@DEnt:
3971            @@@@test:value:
3972              <?xml version="1.0" encoding="US-ascii"?>
3973              <p></p>
3974          @@@test:domTree:
3975            document {
3976              xml-version: '1.0';
3977              xml-encoding: 'US-ascii';
3978              xml-standalone: false;
3979              element { }
3980            }
3981        @@XMLTest:
3982          @@@QName: xp.xmldecl.version.1.0.encoding.usascii.lita.test
3983          @@@DEnt:
3984            @@@@test:value:
3985              <?xml version="1.0" encoding='US-ascii'?>
3986              <p></p>
3987          @@@test:domTree:
3988            document {
3989              xml-version: '1.0';
3990              xml-encoding: 'US-ascii';
3991              xml-standalone: false;
3992              element { }
3993            }
3994        @@XMLTest:
3995          @@@QName: xp.xmldecl.version.1.0.encoding.usascii.s.test
3996          @@@DEnt:
3997            @@@@test:value:
3998              <?xml version="1.0" encoding  = "US-ascii" ?>
3999              <p></p>
4000          @@@test:domTree:
4001            document {
4002              xml-version: '1.0';
4003              xml-encoding: 'US-ascii';
4004              xml-standalone: false;
4005              element { }
4006            }
4007    
4008        @@XMLTest:
4009          @@@QName: xp.xmldecl.version.1.0.encoding.usascii.standalone.yes.test
4010          @@@DEnt:
4011            @@@@test:value:
4012              <?xml version="1.0" encoding="us-ascii" standalone="yes"?>
4013              <p></p>
4014          @@@test:domTree:
4015            document {
4016              xml-version: '1.0';
4017              xml-encoding: 'us-ascii';
4018              xml-standalone: true;
4019              element { }
4020            }
4021        @@XMLTest:
4022          @@@QName: xp.xmldecl.version.1.0.encoding.usascii.standalone.no.test
4023          @@@DEnt:
4024            @@@@test:value:
4025              <?xml version="1.0" encoding="us-ascii" standalone="no"?>
4026              <p></p>
4027          @@@test:domTree:
4028            document {
4029              xml-version: '1.0';
4030              xml-encoding: 'us-ascii';
4031              xml-standalone: false;
4032              element { }
4033            }
4034        @@XMLTest:
4035          @@@QName: xp.xmldecl.version.1.0.encoding.usascii.standalone.yes.lita.test
4036          @@@DEnt:
4037            @@@@test:value:
4038              <?xml version="1.0" encoding="us-ascii" standalone='yes'?>
4039              <p></p>
4040          @@@test:domTree:
4041            document {
4042              xml-version: '1.0';
4043              xml-encoding: 'us-ascii';
4044              xml-standalone: true;
4045              element { }
4046            }
4047        @@XMLTest:
4048          @@@QName: xp.xmldecl.version.1.0.encoding.usascii.standalone.yes.s.test
4049          @@@DEnt:
4050            @@@@test:value:
4051              <?xml version="1.0" encoding="us-ascii"  standalone  = "yes"  ?>
4052              <p></p>
4053          @@@test:domTree:
4054            document {
4055              xml-version: '1.0';
4056              xml-encoding: 'us-ascii';
4057              xml-standalone: true;
4058              element { }
4059            }
4060            
4061      @@XMLTest:      @@XMLTest:
4062        @@@QName: xp.doctype.empty.test        @@@QName: xp.doctype.empty.test
# Line 4975  _ Line 5122  _
5122                if (@$_) {                if (@$_) {
5123                  $test->failure_comment                  $test->failure_comment
5124                           (@$_.' |DOMError|s of type |'.                           (@$_.' |DOMError|s of type |'.
5125                            $_->[0]->{type}.'| are not reported');                            $_->[0]->{type}->{value}.'| are not reported');
5126                  $has_error = true;                  $has_error = true;
5127                }                }
5128              }              }
# Line 4999  _ Line 5146  _
5146              if (@$_) {              if (@$_) {
5147                $test->failure_comment                $test->failure_comment
5148                         (@$_.' |DOMError|s of type |'.                         (@$_.' |DOMError|s of type |'.
5149                          $_->[0]->{type}.'| are not reported');                          $_->[0]->{type}->{value}.'| are not reported');
5150                $has_error = true;                $has_error = true;
5151              }              }
5152            }            }
# Line 5054  ResourceDef: Line 5201  ResourceDef:
5201    @PerlDef:    @PerlDef:
5202      $result = {      $result = {
5203        utf32_offset => $self->{entity}->[-1]->{pos},        utf32_offset => $self->{entity}->[-1]->{pos},
5204          line_number => $self->{entity}->[-1]->{line},
5205          column_number => $self->{entity}->[-1]->{column},
5206      };      };
5207    @For: ManakaiDOM|ManakaiDOM3    @For: ManakaiDOM|ManakaiDOM3
5208    

Legend:
Removed from v.1.12  
changed lines
  Added in v.1.13

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24