@@ -214,7 +214,7 @@ where
214
214
curr_elem : RefCell :: new ( None ) ,
215
215
namespace_stack : RefCell :: new ( NamespaceMapStack :: new ( ) ) ,
216
216
current_namespace : RefCell :: new ( NamespaceMap :: empty ( ) ) ,
217
- phase : Cell :: new ( Start ) ,
217
+ phase : Cell :: new ( XmlPhase :: Start ) ,
218
218
}
219
219
}
220
220
@@ -415,13 +415,13 @@ where
415
415
return ProcessResult :: Done ;
416
416
} ,
417
417
418
- tokenizer:: DoctypeToken ( d) => Doctype ( d) ,
419
- tokenizer:: PIToken ( x ) => Pi ( x ) ,
420
- tokenizer:: TagToken ( x) => Tag ( x) ,
421
- tokenizer:: CommentToken ( x) => Comment ( x) ,
422
- tokenizer:: NullCharacterToken => NullCharacter ,
423
- tokenizer:: EOFToken => Eof ,
424
- tokenizer:: CharacterTokens ( x) => Characters ( x) ,
418
+ tokenizer:: DoctypeToken ( d) => Token :: Doctype ( d) ,
419
+ tokenizer:: PIToken ( instruction ) => Token :: Pi ( instruction ) ,
420
+ tokenizer:: TagToken ( x) => Token :: Tag ( x) ,
421
+ tokenizer:: CommentToken ( x) => Token :: Comment ( x) ,
422
+ tokenizer:: NullCharacterToken => Token :: NullCharacter ,
423
+ tokenizer:: EOFToken => Token :: Eof ,
424
+ tokenizer:: CharacterTokens ( x) => Token :: Characters ( x) ,
425
425
} ;
426
426
427
427
self . process_to_completion ( token)
@@ -466,7 +466,7 @@ where
466
466
let child = create_element ( & self . sink , tag. name , tag. attrs ) ;
467
467
self . insert_appropriately ( AppendNode ( child. clone ( ) ) ) ;
468
468
self . sink . pop ( & child) ;
469
- Done
469
+ XmlProcessResult :: Done
470
470
}
471
471
472
472
fn append_tag_to_doc ( & self , tag : Tag ) -> Handle {
@@ -480,21 +480,21 @@ where
480
480
fn add_to_open_elems ( & self , el : Handle ) -> XmlProcessResult < Handle > {
481
481
self . open_elems . borrow_mut ( ) . push ( el) ;
482
482
483
- Done
483
+ XmlProcessResult :: Done
484
484
}
485
485
486
486
fn append_comment_to_doc ( & self , text : StrTendril ) -> XmlProcessResult < Handle > {
487
487
let comment = self . sink . create_comment ( text) ;
488
488
self . sink . append ( & self . doc_handle , AppendNode ( comment) ) ;
489
- Done
489
+ XmlProcessResult :: Done
490
490
}
491
491
492
492
fn append_comment_to_tag ( & self , text : StrTendril ) -> XmlProcessResult < Handle > {
493
493
let open_elems = self . open_elems . borrow ( ) ;
494
494
let target = current_node ( & open_elems) ;
495
495
let comment = self . sink . create_comment ( text) ;
496
496
self . sink . append ( target, AppendNode ( comment) ) ;
497
- Done
497
+ XmlProcessResult :: Done
498
498
}
499
499
500
500
fn append_doctype_to_doc ( & self , doctype : Doctype ) -> XmlProcessResult < Handle > {
@@ -509,26 +509,26 @@ where
509
509
get_tendril ( doctype. public_id ) ,
510
510
get_tendril ( doctype. system_id ) ,
511
511
) ;
512
- Done
512
+ XmlProcessResult :: Done
513
513
}
514
514
515
515
fn append_pi_to_doc ( & self , pi : Pi ) -> XmlProcessResult < Handle > {
516
516
let pi = self . sink . create_pi ( pi. target , pi. data ) ;
517
517
self . sink . append ( & self . doc_handle , AppendNode ( pi) ) ;
518
- Done
518
+ XmlProcessResult :: Done
519
519
}
520
520
521
521
fn append_pi_to_tag ( & self , pi : Pi ) -> XmlProcessResult < Handle > {
522
522
let open_elems = self . open_elems . borrow ( ) ;
523
523
let target = current_node ( & open_elems) ;
524
524
let pi = self . sink . create_pi ( pi. target , pi. data ) ;
525
525
self . sink . append ( target, AppendNode ( pi) ) ;
526
- Done
526
+ XmlProcessResult :: Done
527
527
}
528
528
529
529
fn append_text ( & self , chars : StrTendril ) -> XmlProcessResult < Handle > {
530
530
self . insert_appropriately ( AppendText ( chars) ) ;
531
- Done
531
+ XmlProcessResult :: Done
532
532
}
533
533
534
534
fn tag_in_open_elems ( & self , tag : & Tag ) -> bool {
@@ -578,7 +578,7 @@ where
578
578
self . pop ( ) ;
579
579
}
580
580
581
- Done
581
+ XmlProcessResult :: Done
582
582
}
583
583
584
584
fn no_open_elems ( & self ) -> bool {
@@ -598,7 +598,7 @@ where
598
598
599
599
fn stop_parsing ( & self ) -> XmlProcessResult < Handle > {
600
600
warn ! ( "stop_parsing for XML5 not implemented, full speed ahead!" ) ;
601
- Done
601
+ XmlProcessResult :: Done
602
602
}
603
603
}
604
604
@@ -617,8 +617,8 @@ where
617
617
self . debug_step ( mode, & token) ;
618
618
619
619
match mode {
620
- Start => match token {
621
- Tag ( Tag {
620
+ XmlPhase :: Start => match token {
621
+ Token :: Tag ( Tag {
622
622
kind : StartTag ,
623
623
name,
624
624
attrs,
@@ -632,11 +632,11 @@ where
632
632
self . process_namespaces ( & mut tag) ;
633
633
tag
634
634
} ;
635
- self . phase . set ( Main ) ;
635
+ self . phase . set ( XmlPhase :: Main ) ;
636
636
let handle = self . append_tag_to_doc ( tag) ;
637
637
self . add_to_open_elems ( handle)
638
638
} ,
639
- Tag ( Tag {
639
+ Token :: Tag ( Tag {
640
640
kind : EmptyTag ,
641
641
name,
642
642
attrs,
@@ -650,32 +650,34 @@ where
650
650
self . process_namespaces ( & mut tag) ;
651
651
tag
652
652
} ;
653
- self . phase . set ( End ) ;
653
+ self . phase . set ( XmlPhase :: End ) ;
654
654
let handle = self . append_tag_to_doc ( tag) ;
655
655
self . sink . pop ( & handle) ;
656
- Done
656
+ XmlProcessResult :: Done
657
657
} ,
658
- Comment ( comment) => self . append_comment_to_doc ( comment) ,
659
- Pi ( pi) => self . append_pi_to_doc ( pi) ,
660
- Characters ( ref chars) if !any_not_whitespace ( chars) => Done ,
661
- Eof => {
658
+ Token :: Comment ( comment) => self . append_comment_to_doc ( comment) ,
659
+ Token :: Pi ( pi) => self . append_pi_to_doc ( pi) ,
660
+ Token :: Characters ( ref chars) if !any_not_whitespace ( chars) => {
661
+ XmlProcessResult :: Done
662
+ } ,
663
+ Token :: Eof => {
662
664
self . sink
663
665
. parse_error ( Borrowed ( "Unexpected EOF in start phase" ) ) ;
664
- Reprocess ( End , Eof )
666
+ XmlProcessResult :: Reprocess ( XmlPhase :: End , Token :: Eof )
665
667
} ,
666
- Doctype ( d) => {
668
+ Token :: Doctype ( d) => {
667
669
self . append_doctype_to_doc ( d) ;
668
- Done
670
+ XmlProcessResult :: Done
669
671
} ,
670
672
_ => {
671
673
self . sink
672
674
. parse_error ( Borrowed ( "Unexpected element in start phase" ) ) ;
673
- Done
675
+ XmlProcessResult :: Done
674
676
} ,
675
677
} ,
676
- Main => match token {
677
- Characters ( chs) => self . append_text ( chs) ,
678
- Tag ( Tag {
678
+ XmlPhase :: Main => match token {
679
+ Token :: Characters ( chs) => self . append_text ( chs) ,
680
+ Token :: Tag ( Tag {
679
681
kind : StartTag ,
680
682
name,
681
683
attrs,
@@ -691,7 +693,7 @@ where
691
693
} ;
692
694
self . insert_tag ( tag)
693
695
} ,
694
- Tag ( Tag {
696
+ Token :: Tag ( Tag {
695
697
kind : EmptyTag ,
696
698
name,
697
699
attrs,
@@ -714,7 +716,7 @@ where
714
716
self . append_tag ( tag)
715
717
}
716
718
} ,
717
- Tag ( Tag {
719
+ Token :: Tag ( Tag {
718
720
kind : EndTag ,
719
721
name,
720
722
attrs,
@@ -732,41 +734,45 @@ where
732
734
let script = current_node ( & self . open_elems . borrow ( ) ) . clone ( ) ;
733
735
self . close_tag ( tag) ;
734
736
if self . no_open_elems ( ) {
735
- self . phase . set ( End ) ;
737
+ self . phase . set ( XmlPhase :: End ) ;
736
738
}
737
739
return XmlProcessResult :: Script ( script) ;
738
740
}
739
741
let retval = self . close_tag ( tag) ;
740
742
if self . no_open_elems ( ) {
741
- self . phase . set ( End ) ;
743
+ self . phase . set ( XmlPhase :: End ) ;
742
744
}
743
745
retval
744
746
} ,
745
- Tag ( Tag { kind : ShortTag , .. } ) => {
747
+ Token :: Tag ( Tag { kind : ShortTag , .. } ) => {
746
748
self . pop ( ) ;
747
749
if self . no_open_elems ( ) {
748
- self . phase . set ( End ) ;
750
+ self . phase . set ( XmlPhase :: End ) ;
749
751
}
750
- Done
752
+ XmlProcessResult :: Done
753
+ } ,
754
+ Token :: Comment ( comment) => self . append_comment_to_tag ( comment) ,
755
+ Token :: Pi ( pi) => self . append_pi_to_tag ( pi) ,
756
+ Token :: Eof | Token :: NullCharacter => {
757
+ XmlProcessResult :: Reprocess ( XmlPhase :: End , Token :: Eof )
751
758
} ,
752
- Comment ( comment) => self . append_comment_to_tag ( comment) ,
753
- Pi ( pi) => self . append_pi_to_tag ( pi) ,
754
- Eof | NullCharacter => Reprocess ( End , Eof ) ,
755
- Doctype ( _) => {
759
+ Token :: Doctype ( _) => {
756
760
self . sink
757
761
. parse_error ( Borrowed ( "Unexpected element in main phase" ) ) ;
758
- Done
762
+ XmlProcessResult :: Done
759
763
} ,
760
764
} ,
761
- End => match token {
762
- Comment ( comment) => self . append_comment_to_doc ( comment) ,
763
- Pi ( pi) => self . append_pi_to_doc ( pi) ,
764
- Characters ( ref chars) if !any_not_whitespace ( chars) => Done ,
765
- Eof => self . stop_parsing ( ) ,
765
+ XmlPhase :: End => match token {
766
+ Token :: Comment ( comment) => self . append_comment_to_doc ( comment) ,
767
+ Token :: Pi ( pi) => self . append_pi_to_doc ( pi) ,
768
+ Token :: Characters ( ref chars) if !any_not_whitespace ( chars) => {
769
+ XmlProcessResult :: Done
770
+ } ,
771
+ Token :: Eof => self . stop_parsing ( ) ,
766
772
_ => {
767
773
self . sink
768
774
. parse_error ( Borrowed ( "Unexpected element in end phase" ) ) ;
769
- Done
775
+ XmlProcessResult :: Done
770
776
} ,
771
777
} ,
772
778
}
0 commit comments