trenni 2.0.1 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -22,6 +22,13 @@
22
22
  action pcdata_end {
23
23
  }
24
24
 
25
+ action text_begin {
26
+ }
27
+
28
+ action text_end {
29
+ rb_funcall(delegate, id_text, 1, pcdata);
30
+ }
31
+
25
32
  action characters_begin {
26
33
  characters.begin = p;
27
34
  }
@@ -44,7 +51,7 @@
44
51
  entity.end = p;
45
52
 
46
53
  Trenni_append_string(&pcdata, encoding,
47
- rb_funcall(entities, rb_intern("[]"), 1, Trenni_token(entity, encoding))
54
+ rb_funcall(entities, id_key_get, 1, Trenni_token(entity, encoding))
48
55
  );
49
56
  }
50
57
 
@@ -177,15 +184,6 @@
177
184
  Trenni_raise_error("could not parse cdata", buffer, p-s);
178
185
  }
179
186
 
180
- action text_begin {
181
-
182
- }
183
-
184
- action text_end {
185
- // Entities are handled separately:
186
- rb_funcall(delegate, id_text, 1, pcdata);
187
- }
188
-
189
187
  include markup "trenni/markup.rl";
190
188
 
191
189
  write data;
@@ -5,7 +5,7 @@
5
5
  #include "template.h"
6
6
 
7
7
  VALUE rb_Trenni = Qnil, rb_Trenni_Native = Qnil, rb_Trenni_ParseError = Qnil;
8
- ID id_cdata, id_open_tag_begin, id_open_tag_end, id_attribute, id_close_tag, id_text, id_doctype, id_comment, id_instruction, id_read, id_expression;
8
+ ID id_cdata, id_open_tag_begin, id_open_tag_end, id_attribute, id_close_tag, id_text, id_doctype, id_comment, id_instruction, id_read, id_expression, id_key_get;
9
9
 
10
10
  void Trenni_raise_error(const char * message, VALUE buffer, size_t offset) {
11
11
  VALUE exception = rb_funcall(rb_Trenni_ParseError, rb_intern("new"), 3, rb_str_new_cstr(message), buffer, ULONG2NUM(offset));
@@ -13,32 +13,6 @@ void Trenni_raise_error(const char * message, VALUE buffer, size_t offset) {
13
13
  rb_exc_raise(exception);
14
14
  }
15
15
 
16
- void Trenni_append_string(VALUE * buffer, rb_encoding * encoding, VALUE string) {
17
- if (*buffer == Qnil) {
18
- *buffer = rb_enc_str_new("", 0, encoding);
19
- }
20
-
21
- rb_str_concat(*buffer, string);
22
- }
23
-
24
- void Trenni_append_token(VALUE * buffer, rb_encoding * encoding, Token token) {
25
- if (*buffer == Qnil) {
26
- // Allocate a buffer exactly the right size:
27
- *buffer = rb_enc_str_new(token.begin, token.end - token.begin, encoding);
28
- } else {
29
- // Append the characters to the existing buffer:
30
- rb_str_buf_cat(*buffer, token.begin, token.end - token.begin);
31
- }
32
- }
33
-
34
- void Trenni_append_codepoint(VALUE * buffer, rb_encoding * encoding, unsigned long codepoint) {
35
- if (*buffer == Qnil) {
36
- *buffer = rb_enc_str_new("", 0, encoding);
37
- }
38
-
39
- rb_str_concat(*buffer, ULONG2NUM(codepoint));
40
- }
41
-
42
16
  void Init_trenni() {
43
17
  id_open_tag_begin = rb_intern("open_tag_begin");
44
18
  id_open_tag_end = rb_intern("open_tag_end");
@@ -54,6 +28,8 @@ void Init_trenni() {
54
28
 
55
29
  id_read = rb_intern("read");
56
30
 
31
+ id_key_get = rb_intern("[]");
32
+
57
33
  rb_Trenni = rb_define_module("Trenni");
58
34
  rb_Trenni_Native = rb_define_module_under(rb_Trenni, "Native");
59
35
 
@@ -6,7 +6,7 @@
6
6
 
7
7
  extern VALUE rb_Trenni, rb_Trenni_Native, rb_Trenni_ParseError;
8
8
 
9
- extern ID id_cdata, id_open_tag_begin, id_open_tag_end, id_attribute, id_close_tag, id_text, id_doctype, id_comment, id_instruction, id_read, id_expression;
9
+ extern ID id_cdata, id_open_tag_begin, id_open_tag_end, id_attribute, id_close_tag, id_text, id_doctype, id_comment, id_instruction, id_read, id_expression, id_key_get;
10
10
 
11
11
  typedef struct {
12
12
  const char * begin;
@@ -23,6 +23,30 @@ static inline VALUE Trenni_string(const char * begin, const char * end, rb_encod
23
23
 
24
24
  void Trenni_raise_error(const char * message, VALUE buffer, size_t offset);
25
25
 
26
- void Trenni_append_string(VALUE * buffer, rb_encoding * encoding, VALUE string);
27
- void Trenni_append_token(VALUE * buffer, rb_encoding * encoding, Token token);
28
- void Trenni_append_codepoint(VALUE * buffer, rb_encoding * encoding, unsigned long codepoint);
26
+ static inline void Trenni_append_string(VALUE * buffer, rb_encoding * encoding, VALUE string) {
27
+ if (*buffer == Qnil) {
28
+ *buffer = rb_enc_str_new("", 0, encoding);
29
+ }
30
+
31
+ rb_str_concat(*buffer, string);
32
+ }
33
+
34
+ static inline void Trenni_append_token(VALUE * buffer, rb_encoding * encoding, Token token) {
35
+ // printf("append_token(%ul bytes)\n", token.end - token.begin);
36
+
37
+ if (*buffer == Qnil) {
38
+ // Allocate a buffer exactly the right size:
39
+ *buffer = rb_enc_str_new(token.begin, token.end - token.begin, encoding);
40
+ } else {
41
+ // Append the characters to the existing buffer:
42
+ rb_str_buf_cat(*buffer, token.begin, token.end - token.begin);
43
+ }
44
+ }
45
+
46
+ static inline void Trenni_append_codepoint(VALUE * buffer, rb_encoding * encoding, unsigned long codepoint) {
47
+ if (*buffer == Qnil) {
48
+ *buffer = rb_enc_str_new("", 0, encoding);
49
+ }
50
+
51
+ rb_str_concat(*buffer, ULONG2NUM(codepoint));
52
+ }
@@ -379,19 +379,19 @@ end
379
379
  self._markup_trans_actions = [
380
380
  2, 1, 0, 0, 0, 0, 3, 4,
381
381
  3, 5, 0, 6, 0, 0, 7, 8,
382
- 9, 7, 0, 0, 10, 0, 11, 12,
383
- 13, 14, 15, 16, 15, 17, 18, 19,
384
- 20, 21, 20, 10, 11, 12, 14, 17,
385
- 19, 0, 0, 0, 0, 0, 0, 0,
382
+ 9, 7, 0, 0, 10, 0, 11, 0,
383
+ 12, 13, 14, 15, 14, 16, 17, 18,
384
+ 19, 20, 19, 10, 11, 0, 13, 16,
385
+ 18, 0, 0, 0, 0, 0, 0, 0,
386
386
  0, 0, 0, 0, 0, 0, 0, 0,
387
387
  0, 0, 0, 0, 0, 0, 0, 0,
388
- 0, 2, 0, 9, 2, 25, 0, 26,
389
- 0, 27, 0, 28, 0, 29, 29, 0,
390
- 0, 30, 29, 0, 31, 0, 32, 33,
391
- 34, 35, 12, 14, 37, 17, 19, 39,
392
- 41, 42, 43, 45, 46, 47, 49, 50,
393
- 51, 53, 54, 55, 57, 58, 59, 61,
394
- 62, 63
388
+ 0, 2, 0, 9, 2, 24, 0, 25,
389
+ 0, 26, 0, 27, 0, 28, 28, 0,
390
+ 0, 29, 28, 0, 30, 0, 31, 32,
391
+ 33, 34, 0, 13, 36, 16, 18, 38,
392
+ 40, 41, 42, 44, 45, 46, 48, 49,
393
+ 50, 52, 53, 54, 56, 57, 58, 60,
394
+ 61, 62
395
395
  ]
396
396
 
397
397
  class << self
@@ -401,12 +401,12 @@ end
401
401
  self._markup_eof_actions = [
402
402
  0, 1, 1, 1, 1, 1, 1, 1,
403
403
  1, 1, 1, 1, 1, 1, 1, 0,
404
- 0, 22, 22, 22, 0, 0, 0, 0,
405
- 0, 0, 23, 0, 0, 0, 0, 0,
406
- 0, 24, 24, 24, 1, 1, 25, 25,
407
- 25, 25, 28, 28, 28, 28, 28, 28,
408
- 0, 36, 38, 40, 44, 48, 52, 56,
409
- 60, 0
404
+ 0, 21, 21, 21, 0, 0, 0, 0,
405
+ 0, 0, 22, 0, 0, 0, 0, 0,
406
+ 0, 23, 23, 23, 1, 1, 24, 24,
407
+ 24, 24, 27, 27, 27, 27, 27, 27,
408
+ 0, 35, 37, 39, 43, 47, 51, 55,
409
+ 59, 0
410
410
  ]
411
411
 
412
412
  class << self
@@ -513,53 +513,53 @@ begin
513
513
 
514
514
  identifier_end = p
515
515
  end
516
- when 18 then
516
+ when 17 then
517
517
  # line 36 "markup.rl"
518
518
  begin
519
519
 
520
520
  end
521
- when 17 then
522
- # line 39 "markup.rl"
521
+ when 16 then
522
+ # line 46 "markup.rl"
523
523
  begin
524
524
 
525
525
  characters_begin = p
526
526
  end
527
- when 28 then
528
- # line 49 "markup.rl"
527
+ when 27 then
528
+ # line 56 "markup.rl"
529
529
  begin
530
530
 
531
531
  raise ParseError.new("could not parse entity", buffer, p)
532
532
  end
533
- when 29 then
534
- # line 53 "markup.rl"
533
+ when 28 then
534
+ # line 60 "markup.rl"
535
535
  begin
536
536
 
537
537
  entity_begin = p
538
538
  end
539
- when 27 then
540
- # line 112 "markup.rl"
539
+ when 26 then
540
+ # line 119 "markup.rl"
541
541
  begin
542
542
 
543
543
  end
544
- when 25 then
545
- # line 119 "markup.rl"
544
+ when 24 then
545
+ # line 126 "markup.rl"
546
546
  begin
547
547
 
548
548
  raise ParseError.new("could not parse instruction", buffer, p)
549
549
  end
550
550
  when 6 then
551
- # line 132 "markup.rl"
551
+ # line 139 "markup.rl"
552
552
  begin
553
553
 
554
554
  self_closing = true
555
555
  end
556
556
  when 1 then
557
- # line 170 "markup.rl"
557
+ # line 177 "markup.rl"
558
558
  begin
559
559
 
560
560
  raise ParseError.new("could not parse tag", buffer, p)
561
561
  end
562
- when 19 then
562
+ when 18 then
563
563
  # line 10 "/Users/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
564
564
  begin
565
565
  begin
@@ -570,13 +570,13 @@ begin
570
570
  next
571
571
  end
572
572
  end
573
- when 26 then
573
+ when 25 then
574
574
  # line 28 "markup.rl"
575
575
  begin
576
576
 
577
577
  identifier_end = p
578
578
  end
579
- # line 109 "markup.rl"
579
+ # line 116 "markup.rl"
580
580
  begin
581
581
 
582
582
  end
@@ -586,7 +586,7 @@ begin
586
586
 
587
587
  identifier_end = p
588
588
  end
589
- # line 123 "markup.rl"
589
+ # line 130 "markup.rl"
590
590
  begin
591
591
 
592
592
  self_closing = false
@@ -599,7 +599,7 @@ begin
599
599
 
600
600
  identifier_end = p
601
601
  end
602
- # line 149 "markup.rl"
602
+ # line 156 "markup.rl"
603
603
  begin
604
604
 
605
605
  if has_value
@@ -616,7 +616,7 @@ begin
616
616
 
617
617
  pcdata = ""
618
618
  end
619
- # line 39 "markup.rl"
619
+ # line 46 "markup.rl"
620
620
  begin
621
621
 
622
622
  characters_begin = p
@@ -637,33 +637,20 @@ begin
637
637
  next
638
638
  end
639
639
  end
640
- when 13 then
641
- # line 43 "markup.rl"
642
- begin
643
-
644
- characters_end = p
645
-
646
- pcdata << data.byteslice(characters_begin...characters_end)
647
- end
648
- # line 36 "markup.rl"
649
- begin
650
-
651
- end
652
640
  when 12 then
653
- # line 43 "markup.rl"
641
+ # line 50 "markup.rl"
654
642
  begin
655
643
 
656
644
  characters_end = p
657
645
 
658
646
  pcdata << data.byteslice(characters_begin...characters_end)
659
647
  end
660
- # line 39 "markup.rl"
648
+ # line 36 "markup.rl"
661
649
  begin
662
650
 
663
- characters_begin = p
664
651
  end
665
- when 14 then
666
- # line 43 "markup.rl"
652
+ when 13 then
653
+ # line 50 "markup.rl"
667
654
  begin
668
655
 
669
656
  characters_end = p
@@ -680,8 +667,8 @@ begin
680
667
  next
681
668
  end
682
669
  end
683
- when 32 then
684
- # line 57 "markup.rl"
670
+ when 31 then
671
+ # line 64 "markup.rl"
685
672
  begin
686
673
 
687
674
  entity_end = p
@@ -699,8 +686,8 @@ begin
699
686
  next
700
687
  end
701
688
  end
702
- when 31 then
703
- # line 65 "markup.rl"
689
+ when 30 then
690
+ # line 72 "markup.rl"
704
691
  begin
705
692
 
706
693
  entity_end = p
@@ -716,8 +703,8 @@ begin
716
703
  next
717
704
  end
718
705
  end
719
- when 30 then
720
- # line 71 "markup.rl"
706
+ when 29 then
707
+ # line 78 "markup.rl"
721
708
  begin
722
709
 
723
710
  entity_end = p
@@ -734,7 +721,7 @@ begin
734
721
  end
735
722
  end
736
723
  when 5 then
737
- # line 136 "markup.rl"
724
+ # line 143 "markup.rl"
738
725
  begin
739
726
 
740
727
  has_value = false
@@ -745,13 +732,13 @@ begin
745
732
 
746
733
  identifier_begin = p
747
734
  end
748
- when 15 then
749
- # line 141 "markup.rl"
735
+ when 14 then
736
+ # line 148 "markup.rl"
750
737
  begin
751
738
 
752
739
  has_value = true
753
740
  end
754
- # line 149 "markup.rl"
741
+ # line 156 "markup.rl"
755
742
  begin
756
743
 
757
744
  if has_value
@@ -762,13 +749,13 @@ begin
762
749
 
763
750
  delegate.attribute(data.byteslice(identifier_begin...identifier_end), value)
764
751
  end
765
- when 20 then
766
- # line 145 "markup.rl"
752
+ when 19 then
753
+ # line 152 "markup.rl"
767
754
  begin
768
755
 
769
756
  has_value = true
770
757
  end
771
- # line 149 "markup.rl"
758
+ # line 156 "markup.rl"
772
759
  begin
773
760
 
774
761
  if has_value
@@ -785,14 +772,14 @@ begin
785
772
 
786
773
  identifier_end = p
787
774
  end
788
- # line 123 "markup.rl"
775
+ # line 130 "markup.rl"
789
776
  begin
790
777
 
791
778
  self_closing = false
792
779
 
793
780
  delegate.open_tag_begin(data.byteslice(identifier_begin...identifier_end), identifier_begin)
794
781
  end
795
- # line 132 "markup.rl"
782
+ # line 139 "markup.rl"
796
783
  begin
797
784
 
798
785
  self_closing = true
@@ -803,7 +790,7 @@ begin
803
790
 
804
791
  identifier_end = p
805
792
  end
806
- # line 149 "markup.rl"
793
+ # line 156 "markup.rl"
807
794
  begin
808
795
 
809
796
  if has_value
@@ -814,40 +801,53 @@ begin
814
801
 
815
802
  delegate.attribute(data.byteslice(identifier_begin...identifier_end), value)
816
803
  end
817
- # line 132 "markup.rl"
804
+ # line 139 "markup.rl"
818
805
  begin
819
806
 
820
807
  self_closing = true
821
808
  end
822
- when 16 then
823
- # line 141 "markup.rl"
809
+ when 32 then
810
+ # line 39 "markup.rl"
824
811
  begin
825
812
 
826
- has_value = true
827
813
  end
828
- # line 149 "markup.rl"
814
+ # line 32 "markup.rl"
829
815
  begin
830
816
 
831
- if has_value
832
- value = pcdata
833
- else
834
- value = true
835
- end
836
-
837
- delegate.attribute(data.byteslice(identifier_begin...identifier_end), value)
817
+ pcdata = ""
838
818
  end
839
- # line 132 "markup.rl"
819
+ # line 46 "markup.rl"
840
820
  begin
841
821
 
842
- self_closing = true
822
+ characters_begin = p
843
823
  end
844
- when 21 then
845
- # line 145 "markup.rl"
824
+ when 33 then
825
+ # line 39 "markup.rl"
826
+ begin
827
+
828
+ end
829
+ # line 32 "markup.rl"
830
+ begin
831
+
832
+ pcdata = ""
833
+ end
834
+ # line 10 "/Users/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
835
+ begin
836
+ begin
837
+ stack[top] = cs
838
+ top+= 1
839
+ cs = 42
840
+ _goto_level = _again
841
+ next
842
+ end
843
+ end
844
+ when 15 then
845
+ # line 148 "markup.rl"
846
846
  begin
847
847
 
848
848
  has_value = true
849
849
  end
850
- # line 149 "markup.rl"
850
+ # line 156 "markup.rl"
851
851
  begin
852
852
 
853
853
  if has_value
@@ -858,55 +858,42 @@ begin
858
858
 
859
859
  delegate.attribute(data.byteslice(identifier_begin...identifier_end), value)
860
860
  end
861
- # line 132 "markup.rl"
861
+ # line 139 "markup.rl"
862
862
  begin
863
863
 
864
864
  self_closing = true
865
865
  end
866
- when 33 then
867
- # line 188 "markup.rl"
868
- begin
869
-
870
- end
871
- # line 32 "markup.rl"
872
- begin
873
-
874
- pcdata = ""
875
- end
876
- # line 39 "markup.rl"
866
+ when 20 then
867
+ # line 152 "markup.rl"
877
868
  begin
878
869
 
879
- characters_begin = p
870
+ has_value = true
880
871
  end
881
- when 34 then
882
- # line 188 "markup.rl"
872
+ # line 156 "markup.rl"
883
873
  begin
884
874
 
875
+ if has_value
876
+ value = pcdata
877
+ else
878
+ value = true
879
+ end
880
+
881
+ delegate.attribute(data.byteslice(identifier_begin...identifier_end), value)
885
882
  end
886
- # line 32 "markup.rl"
883
+ # line 139 "markup.rl"
887
884
  begin
888
885
 
889
- pcdata = ""
886
+ self_closing = true
890
887
  end
891
- # line 10 "/Users/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
892
- begin
893
- begin
894
- stack[top] = cs
895
- top+= 1
896
- cs = 42
897
- _goto_level = _again
898
- next
899
- end
900
- end
901
- when 49 then
902
- # line 81 "markup.rl"
888
+ when 48 then
889
+ # line 88 "markup.rl"
903
890
  begin
904
891
 
905
892
  doctype_end = p
906
893
 
907
894
  delegate.doctype(data.byteslice(doctype_begin...doctype_end))
908
895
  end
909
- # line 188 "markup.rl"
896
+ # line 39 "markup.rl"
910
897
  begin
911
898
 
912
899
  end
@@ -915,20 +902,20 @@ begin
915
902
 
916
903
  pcdata = ""
917
904
  end
918
- # line 39 "markup.rl"
905
+ # line 46 "markup.rl"
919
906
  begin
920
907
 
921
908
  characters_begin = p
922
909
  end
923
- when 50 then
924
- # line 81 "markup.rl"
910
+ when 49 then
911
+ # line 88 "markup.rl"
925
912
  begin
926
913
 
927
914
  doctype_end = p
928
915
 
929
916
  delegate.doctype(data.byteslice(doctype_begin...doctype_end))
930
917
  end
931
- # line 188 "markup.rl"
918
+ # line 39 "markup.rl"
932
919
  begin
933
920
 
934
921
  end
@@ -947,15 +934,15 @@ begin
947
934
  next
948
935
  end
949
936
  end
950
- when 45 then
951
- # line 95 "markup.rl"
937
+ when 44 then
938
+ # line 102 "markup.rl"
952
939
  begin
953
940
 
954
941
  comment_end = p
955
942
 
956
943
  delegate.comment(data.byteslice(comment_begin...comment_end))
957
944
  end
958
- # line 188 "markup.rl"
945
+ # line 39 "markup.rl"
959
946
  begin
960
947
 
961
948
  end
@@ -964,20 +951,20 @@ begin
964
951
 
965
952
  pcdata = ""
966
953
  end
967
- # line 39 "markup.rl"
954
+ # line 46 "markup.rl"
968
955
  begin
969
956
 
970
957
  characters_begin = p
971
958
  end
972
- when 46 then
973
- # line 95 "markup.rl"
959
+ when 45 then
960
+ # line 102 "markup.rl"
974
961
  begin
975
962
 
976
963
  comment_end = p
977
964
 
978
965
  delegate.comment(data.byteslice(comment_begin...comment_end))
979
966
  end
980
- # line 188 "markup.rl"
967
+ # line 39 "markup.rl"
981
968
  begin
982
969
 
983
970
  end
@@ -996,13 +983,13 @@ begin
996
983
  next
997
984
  end
998
985
  end
999
- when 61 then
1000
- # line 115 "markup.rl"
986
+ when 60 then
987
+ # line 122 "markup.rl"
1001
988
  begin
1002
989
 
1003
990
  delegate.instruction(data.byteslice(instruction_begin, p-instruction_begin))
1004
991
  end
1005
- # line 188 "markup.rl"
992
+ # line 39 "markup.rl"
1006
993
  begin
1007
994
 
1008
995
  end
@@ -1011,18 +998,18 @@ begin
1011
998
 
1012
999
  pcdata = ""
1013
1000
  end
1014
- # line 39 "markup.rl"
1001
+ # line 46 "markup.rl"
1015
1002
  begin
1016
1003
 
1017
1004
  characters_begin = p
1018
1005
  end
1019
- when 62 then
1020
- # line 115 "markup.rl"
1006
+ when 61 then
1007
+ # line 122 "markup.rl"
1021
1008
  begin
1022
1009
 
1023
1010
  delegate.instruction(data.byteslice(instruction_begin, p-instruction_begin))
1024
1011
  end
1025
- # line 188 "markup.rl"
1012
+ # line 39 "markup.rl"
1026
1013
  begin
1027
1014
 
1028
1015
  end
@@ -1041,13 +1028,13 @@ begin
1041
1028
  next
1042
1029
  end
1043
1030
  end
1044
- when 41 then
1045
- # line 159 "markup.rl"
1031
+ when 40 then
1032
+ # line 166 "markup.rl"
1046
1033
  begin
1047
1034
 
1048
1035
  delegate.open_tag_end(self_closing)
1049
1036
  end
1050
- # line 188 "markup.rl"
1037
+ # line 39 "markup.rl"
1051
1038
  begin
1052
1039
 
1053
1040
  end
@@ -1056,18 +1043,18 @@ begin
1056
1043
 
1057
1044
  pcdata = ""
1058
1045
  end
1059
- # line 39 "markup.rl"
1046
+ # line 46 "markup.rl"
1060
1047
  begin
1061
1048
 
1062
1049
  characters_begin = p
1063
1050
  end
1064
- when 42 then
1065
- # line 159 "markup.rl"
1051
+ when 41 then
1052
+ # line 166 "markup.rl"
1066
1053
  begin
1067
1054
 
1068
1055
  delegate.open_tag_end(self_closing)
1069
1056
  end
1070
- # line 188 "markup.rl"
1057
+ # line 39 "markup.rl"
1071
1058
  begin
1072
1059
 
1073
1060
  end
@@ -1086,13 +1073,13 @@ begin
1086
1073
  next
1087
1074
  end
1088
1075
  end
1089
- when 57 then
1090
- # line 166 "markup.rl"
1076
+ when 56 then
1077
+ # line 173 "markup.rl"
1091
1078
  begin
1092
1079
 
1093
1080
  delegate.close_tag(data.byteslice(identifier_begin...identifier_end), identifier_begin)
1094
1081
  end
1095
- # line 188 "markup.rl"
1082
+ # line 39 "markup.rl"
1096
1083
  begin
1097
1084
 
1098
1085
  end
@@ -1101,18 +1088,18 @@ begin
1101
1088
 
1102
1089
  pcdata = ""
1103
1090
  end
1104
- # line 39 "markup.rl"
1091
+ # line 46 "markup.rl"
1105
1092
  begin
1106
1093
 
1107
1094
  characters_begin = p
1108
1095
  end
1109
- when 58 then
1110
- # line 166 "markup.rl"
1096
+ when 57 then
1097
+ # line 173 "markup.rl"
1111
1098
  begin
1112
1099
 
1113
1100
  delegate.close_tag(data.byteslice(identifier_begin...identifier_end), identifier_begin)
1114
1101
  end
1115
- # line 188 "markup.rl"
1102
+ # line 39 "markup.rl"
1116
1103
  begin
1117
1104
 
1118
1105
  end
@@ -1131,15 +1118,15 @@ begin
1131
1118
  next
1132
1119
  end
1133
1120
  end
1134
- when 53 then
1135
- # line 178 "markup.rl"
1121
+ when 52 then
1122
+ # line 185 "markup.rl"
1136
1123
  begin
1137
1124
 
1138
1125
  cdata_end = p
1139
1126
 
1140
1127
  delegate.cdata(data.byteslice(cdata_begin...cdata_end))
1141
1128
  end
1142
- # line 188 "markup.rl"
1129
+ # line 39 "markup.rl"
1143
1130
  begin
1144
1131
 
1145
1132
  end
@@ -1148,20 +1135,20 @@ begin
1148
1135
 
1149
1136
  pcdata = ""
1150
1137
  end
1151
- # line 39 "markup.rl"
1138
+ # line 46 "markup.rl"
1152
1139
  begin
1153
1140
 
1154
1141
  characters_begin = p
1155
1142
  end
1156
- when 54 then
1157
- # line 178 "markup.rl"
1143
+ when 53 then
1144
+ # line 185 "markup.rl"
1158
1145
  begin
1159
1146
 
1160
1147
  cdata_end = p
1161
1148
 
1162
1149
  delegate.cdata(data.byteslice(cdata_begin...cdata_end))
1163
1150
  end
1164
- # line 188 "markup.rl"
1151
+ # line 39 "markup.rl"
1165
1152
  begin
1166
1153
 
1167
1154
  end
@@ -1180,285 +1167,285 @@ begin
1180
1167
  next
1181
1168
  end
1182
1169
  end
1183
- when 35 then
1184
- # line 129 "markup.rl"
1170
+ when 34 then
1171
+ # line 136 "markup.rl"
1185
1172
  begin
1186
1173
 
1187
1174
  end
1188
- # line 163 "markup.rl"
1175
+ # line 170 "markup.rl"
1189
1176
  begin
1190
1177
 
1191
1178
  end
1192
- # line 105 "markup.rl"
1179
+ # line 112 "markup.rl"
1193
1180
  begin
1194
1181
 
1195
1182
  instruction_begin = p
1196
1183
  end
1197
- # line 91 "markup.rl"
1184
+ # line 98 "markup.rl"
1198
1185
  begin
1199
1186
 
1200
1187
  comment_begin = p
1201
1188
  end
1202
- # line 77 "markup.rl"
1189
+ # line 84 "markup.rl"
1203
1190
  begin
1204
1191
 
1205
1192
  doctype_begin = p
1206
1193
  end
1207
- # line 174 "markup.rl"
1194
+ # line 181 "markup.rl"
1208
1195
  begin
1209
1196
 
1210
1197
  cdata_begin = p
1211
1198
  end
1212
- when 51 then
1213
- # line 81 "markup.rl"
1199
+ when 50 then
1200
+ # line 88 "markup.rl"
1214
1201
  begin
1215
1202
 
1216
1203
  doctype_end = p
1217
1204
 
1218
1205
  delegate.doctype(data.byteslice(doctype_begin...doctype_end))
1219
1206
  end
1220
- # line 129 "markup.rl"
1207
+ # line 136 "markup.rl"
1221
1208
  begin
1222
1209
 
1223
1210
  end
1224
- # line 163 "markup.rl"
1211
+ # line 170 "markup.rl"
1225
1212
  begin
1226
1213
 
1227
1214
  end
1228
- # line 105 "markup.rl"
1215
+ # line 112 "markup.rl"
1229
1216
  begin
1230
1217
 
1231
1218
  instruction_begin = p
1232
1219
  end
1233
- # line 91 "markup.rl"
1220
+ # line 98 "markup.rl"
1234
1221
  begin
1235
1222
 
1236
1223
  comment_begin = p
1237
1224
  end
1238
- # line 77 "markup.rl"
1225
+ # line 84 "markup.rl"
1239
1226
  begin
1240
1227
 
1241
1228
  doctype_begin = p
1242
1229
  end
1243
- # line 174 "markup.rl"
1230
+ # line 181 "markup.rl"
1244
1231
  begin
1245
1232
 
1246
1233
  cdata_begin = p
1247
1234
  end
1248
- when 47 then
1249
- # line 95 "markup.rl"
1235
+ when 46 then
1236
+ # line 102 "markup.rl"
1250
1237
  begin
1251
1238
 
1252
1239
  comment_end = p
1253
1240
 
1254
1241
  delegate.comment(data.byteslice(comment_begin...comment_end))
1255
1242
  end
1256
- # line 129 "markup.rl"
1243
+ # line 136 "markup.rl"
1257
1244
  begin
1258
1245
 
1259
1246
  end
1260
- # line 163 "markup.rl"
1247
+ # line 170 "markup.rl"
1261
1248
  begin
1262
1249
 
1263
1250
  end
1264
- # line 105 "markup.rl"
1251
+ # line 112 "markup.rl"
1265
1252
  begin
1266
1253
 
1267
1254
  instruction_begin = p
1268
1255
  end
1269
- # line 91 "markup.rl"
1256
+ # line 98 "markup.rl"
1270
1257
  begin
1271
1258
 
1272
1259
  comment_begin = p
1273
1260
  end
1274
- # line 77 "markup.rl"
1261
+ # line 84 "markup.rl"
1275
1262
  begin
1276
1263
 
1277
1264
  doctype_begin = p
1278
1265
  end
1279
- # line 174 "markup.rl"
1266
+ # line 181 "markup.rl"
1280
1267
  begin
1281
1268
 
1282
1269
  cdata_begin = p
1283
1270
  end
1284
- when 63 then
1285
- # line 115 "markup.rl"
1271
+ when 62 then
1272
+ # line 122 "markup.rl"
1286
1273
  begin
1287
1274
 
1288
1275
  delegate.instruction(data.byteslice(instruction_begin, p-instruction_begin))
1289
1276
  end
1290
- # line 129 "markup.rl"
1277
+ # line 136 "markup.rl"
1291
1278
  begin
1292
1279
 
1293
1280
  end
1294
- # line 163 "markup.rl"
1281
+ # line 170 "markup.rl"
1295
1282
  begin
1296
1283
 
1297
1284
  end
1298
- # line 105 "markup.rl"
1285
+ # line 112 "markup.rl"
1299
1286
  begin
1300
1287
 
1301
1288
  instruction_begin = p
1302
1289
  end
1303
- # line 91 "markup.rl"
1290
+ # line 98 "markup.rl"
1304
1291
  begin
1305
1292
 
1306
1293
  comment_begin = p
1307
1294
  end
1308
- # line 77 "markup.rl"
1295
+ # line 84 "markup.rl"
1309
1296
  begin
1310
1297
 
1311
1298
  doctype_begin = p
1312
1299
  end
1313
- # line 174 "markup.rl"
1300
+ # line 181 "markup.rl"
1314
1301
  begin
1315
1302
 
1316
1303
  cdata_begin = p
1317
1304
  end
1318
- when 43 then
1319
- # line 159 "markup.rl"
1305
+ when 42 then
1306
+ # line 166 "markup.rl"
1320
1307
  begin
1321
1308
 
1322
1309
  delegate.open_tag_end(self_closing)
1323
1310
  end
1324
- # line 129 "markup.rl"
1311
+ # line 136 "markup.rl"
1325
1312
  begin
1326
1313
 
1327
1314
  end
1328
- # line 163 "markup.rl"
1315
+ # line 170 "markup.rl"
1329
1316
  begin
1330
1317
 
1331
1318
  end
1332
- # line 105 "markup.rl"
1319
+ # line 112 "markup.rl"
1333
1320
  begin
1334
1321
 
1335
1322
  instruction_begin = p
1336
1323
  end
1337
- # line 91 "markup.rl"
1324
+ # line 98 "markup.rl"
1338
1325
  begin
1339
1326
 
1340
1327
  comment_begin = p
1341
1328
  end
1342
- # line 77 "markup.rl"
1329
+ # line 84 "markup.rl"
1343
1330
  begin
1344
1331
 
1345
1332
  doctype_begin = p
1346
1333
  end
1347
- # line 174 "markup.rl"
1334
+ # line 181 "markup.rl"
1348
1335
  begin
1349
1336
 
1350
1337
  cdata_begin = p
1351
1338
  end
1352
- when 59 then
1353
- # line 166 "markup.rl"
1339
+ when 58 then
1340
+ # line 173 "markup.rl"
1354
1341
  begin
1355
1342
 
1356
1343
  delegate.close_tag(data.byteslice(identifier_begin...identifier_end), identifier_begin)
1357
1344
  end
1358
- # line 129 "markup.rl"
1345
+ # line 136 "markup.rl"
1359
1346
  begin
1360
1347
 
1361
1348
  end
1362
- # line 163 "markup.rl"
1349
+ # line 170 "markup.rl"
1363
1350
  begin
1364
1351
 
1365
1352
  end
1366
- # line 105 "markup.rl"
1353
+ # line 112 "markup.rl"
1367
1354
  begin
1368
1355
 
1369
1356
  instruction_begin = p
1370
1357
  end
1371
- # line 91 "markup.rl"
1358
+ # line 98 "markup.rl"
1372
1359
  begin
1373
1360
 
1374
1361
  comment_begin = p
1375
1362
  end
1376
- # line 77 "markup.rl"
1363
+ # line 84 "markup.rl"
1377
1364
  begin
1378
1365
 
1379
1366
  doctype_begin = p
1380
1367
  end
1381
- # line 174 "markup.rl"
1368
+ # line 181 "markup.rl"
1382
1369
  begin
1383
1370
 
1384
1371
  cdata_begin = p
1385
1372
  end
1386
- when 55 then
1387
- # line 178 "markup.rl"
1373
+ when 54 then
1374
+ # line 185 "markup.rl"
1388
1375
  begin
1389
1376
 
1390
1377
  cdata_end = p
1391
1378
 
1392
1379
  delegate.cdata(data.byteslice(cdata_begin...cdata_end))
1393
1380
  end
1394
- # line 129 "markup.rl"
1381
+ # line 136 "markup.rl"
1395
1382
  begin
1396
1383
 
1397
1384
  end
1398
- # line 163 "markup.rl"
1385
+ # line 170 "markup.rl"
1399
1386
  begin
1400
1387
 
1401
1388
  end
1402
- # line 105 "markup.rl"
1389
+ # line 112 "markup.rl"
1403
1390
  begin
1404
1391
 
1405
1392
  instruction_begin = p
1406
1393
  end
1407
- # line 91 "markup.rl"
1394
+ # line 98 "markup.rl"
1408
1395
  begin
1409
1396
 
1410
1397
  comment_begin = p
1411
1398
  end
1412
- # line 77 "markup.rl"
1399
+ # line 84 "markup.rl"
1413
1400
  begin
1414
1401
 
1415
1402
  doctype_begin = p
1416
1403
  end
1417
- # line 174 "markup.rl"
1404
+ # line 181 "markup.rl"
1418
1405
  begin
1419
1406
 
1420
1407
  cdata_begin = p
1421
1408
  end
1422
- when 39 then
1409
+ when 38 then
1423
1410
  # line 36 "markup.rl"
1424
1411
  begin
1425
1412
 
1426
1413
  end
1427
- # line 191 "markup.rl"
1414
+ # line 42 "markup.rl"
1428
1415
  begin
1429
1416
 
1430
1417
  delegate.text(pcdata)
1431
1418
  end
1432
- # line 129 "markup.rl"
1419
+ # line 136 "markup.rl"
1433
1420
  begin
1434
1421
 
1435
1422
  end
1436
- # line 163 "markup.rl"
1423
+ # line 170 "markup.rl"
1437
1424
  begin
1438
1425
 
1439
1426
  end
1440
- # line 105 "markup.rl"
1427
+ # line 112 "markup.rl"
1441
1428
  begin
1442
1429
 
1443
1430
  instruction_begin = p
1444
1431
  end
1445
- # line 91 "markup.rl"
1432
+ # line 98 "markup.rl"
1446
1433
  begin
1447
1434
 
1448
1435
  comment_begin = p
1449
1436
  end
1450
- # line 77 "markup.rl"
1437
+ # line 84 "markup.rl"
1451
1438
  begin
1452
1439
 
1453
1440
  doctype_begin = p
1454
1441
  end
1455
- # line 174 "markup.rl"
1442
+ # line 181 "markup.rl"
1456
1443
  begin
1457
1444
 
1458
1445
  cdata_begin = p
1459
1446
  end
1460
- when 37 then
1461
- # line 43 "markup.rl"
1447
+ when 36 then
1448
+ # line 50 "markup.rl"
1462
1449
  begin
1463
1450
 
1464
1451
  characters_end = p
@@ -1469,40 +1456,40 @@ begin
1469
1456
  begin
1470
1457
 
1471
1458
  end
1472
- # line 191 "markup.rl"
1459
+ # line 42 "markup.rl"
1473
1460
  begin
1474
1461
 
1475
1462
  delegate.text(pcdata)
1476
1463
  end
1477
- # line 129 "markup.rl"
1464
+ # line 136 "markup.rl"
1478
1465
  begin
1479
1466
 
1480
1467
  end
1481
- # line 163 "markup.rl"
1468
+ # line 170 "markup.rl"
1482
1469
  begin
1483
1470
 
1484
1471
  end
1485
- # line 105 "markup.rl"
1472
+ # line 112 "markup.rl"
1486
1473
  begin
1487
1474
 
1488
1475
  instruction_begin = p
1489
1476
  end
1490
- # line 91 "markup.rl"
1477
+ # line 98 "markup.rl"
1491
1478
  begin
1492
1479
 
1493
1480
  comment_begin = p
1494
1481
  end
1495
- # line 77 "markup.rl"
1482
+ # line 84 "markup.rl"
1496
1483
  begin
1497
1484
 
1498
1485
  doctype_begin = p
1499
1486
  end
1500
- # line 174 "markup.rl"
1487
+ # line 181 "markup.rl"
1501
1488
  begin
1502
1489
 
1503
1490
  cdata_begin = p
1504
1491
  end
1505
- # line 1506 "markup.rb"
1492
+ # line 1493 "markup.rb"
1506
1493
  end
1507
1494
  end
1508
1495
  end
@@ -1520,96 +1507,96 @@ begin
1520
1507
  if _goto_level <= _test_eof
1521
1508
  if p == eof
1522
1509
  case _markup_eof_actions[cs]
1523
- when 28 then
1524
- # line 49 "markup.rl"
1510
+ when 27 then
1511
+ # line 56 "markup.rl"
1525
1512
  begin
1526
1513
 
1527
1514
  raise ParseError.new("could not parse entity", buffer, p)
1528
1515
  end
1529
- when 48 then
1530
- # line 81 "markup.rl"
1516
+ when 47 then
1517
+ # line 88 "markup.rl"
1531
1518
  begin
1532
1519
 
1533
1520
  doctype_end = p
1534
1521
 
1535
1522
  delegate.doctype(data.byteslice(doctype_begin...doctype_end))
1536
1523
  end
1537
- when 23 then
1538
- # line 87 "markup.rl"
1524
+ when 22 then
1525
+ # line 94 "markup.rl"
1539
1526
  begin
1540
1527
 
1541
1528
  raise ParseError.new("could not parse doctype", buffer, p)
1542
1529
  end
1543
- when 44 then
1544
- # line 95 "markup.rl"
1530
+ when 43 then
1531
+ # line 102 "markup.rl"
1545
1532
  begin
1546
1533
 
1547
1534
  comment_end = p
1548
1535
 
1549
1536
  delegate.comment(data.byteslice(comment_begin...comment_end))
1550
1537
  end
1551
- when 22 then
1552
- # line 101 "markup.rl"
1538
+ when 21 then
1539
+ # line 108 "markup.rl"
1553
1540
  begin
1554
1541
 
1555
1542
  raise ParseError.new("could not parse comment", buffer, p)
1556
1543
  end
1557
- when 60 then
1558
- # line 115 "markup.rl"
1544
+ when 59 then
1545
+ # line 122 "markup.rl"
1559
1546
  begin
1560
1547
 
1561
1548
  delegate.instruction(data.byteslice(instruction_begin, p-instruction_begin))
1562
1549
  end
1563
- when 25 then
1564
- # line 119 "markup.rl"
1550
+ when 24 then
1551
+ # line 126 "markup.rl"
1565
1552
  begin
1566
1553
 
1567
1554
  raise ParseError.new("could not parse instruction", buffer, p)
1568
1555
  end
1569
- when 40 then
1570
- # line 159 "markup.rl"
1556
+ when 39 then
1557
+ # line 166 "markup.rl"
1571
1558
  begin
1572
1559
 
1573
1560
  delegate.open_tag_end(self_closing)
1574
1561
  end
1575
- when 56 then
1576
- # line 166 "markup.rl"
1562
+ when 55 then
1563
+ # line 173 "markup.rl"
1577
1564
  begin
1578
1565
 
1579
1566
  delegate.close_tag(data.byteslice(identifier_begin...identifier_end), identifier_begin)
1580
1567
  end
1581
1568
  when 1 then
1582
- # line 170 "markup.rl"
1569
+ # line 177 "markup.rl"
1583
1570
  begin
1584
1571
 
1585
1572
  raise ParseError.new("could not parse tag", buffer, p)
1586
1573
  end
1587
- when 52 then
1588
- # line 178 "markup.rl"
1574
+ when 51 then
1575
+ # line 185 "markup.rl"
1589
1576
  begin
1590
1577
 
1591
1578
  cdata_end = p
1592
1579
 
1593
1580
  delegate.cdata(data.byteslice(cdata_begin...cdata_end))
1594
1581
  end
1595
- when 24 then
1596
- # line 184 "markup.rl"
1582
+ when 23 then
1583
+ # line 191 "markup.rl"
1597
1584
  begin
1598
1585
 
1599
1586
  raise ParseError.new("could not parse cdata", buffer, p)
1600
1587
  end
1601
- when 38 then
1588
+ when 37 then
1602
1589
  # line 36 "markup.rl"
1603
1590
  begin
1604
1591
 
1605
1592
  end
1606
- # line 191 "markup.rl"
1593
+ # line 42 "markup.rl"
1607
1594
  begin
1608
1595
 
1609
1596
  delegate.text(pcdata)
1610
1597
  end
1611
- when 36 then
1612
- # line 43 "markup.rl"
1598
+ when 35 then
1599
+ # line 50 "markup.rl"
1613
1600
  begin
1614
1601
 
1615
1602
  characters_end = p
@@ -1620,12 +1607,12 @@ begin
1620
1607
  begin
1621
1608
 
1622
1609
  end
1623
- # line 191 "markup.rl"
1610
+ # line 42 "markup.rl"
1624
1611
  begin
1625
1612
 
1626
1613
  delegate.text(pcdata)
1627
1614
  end
1628
- # line 1629 "markup.rb"
1615
+ # line 1616 "markup.rb"
1629
1616
  end
1630
1617
  end
1631
1618