trenni 2.0.1 → 2.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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