oga 1.3.1-java → 2.0.0-java

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3608b688e55076f115741bdb807801c071e30e60
4
- data.tar.gz: 11f53bdfb9476c8f4fc1bb34d87492a735558924
3
+ metadata.gz: f50448db9660d09ac69db525bf1077a43cd9d88d
4
+ data.tar.gz: 3f7c2ddbba06c6f7f074b74cd7ecb4772a04a45f
5
5
  SHA512:
6
- metadata.gz: ce3a13a06251539d4d9d16ea8095529606fb6d7a727c49ff8487c15bd62ee4233343e4ef8da5fd11323057607ad18421f8327830d36703b7575311217156625e
7
- data.tar.gz: 6156e9bd4ec21b89974cf1e40406938164028c95aeac63207dffe48edbd3689bf3411cd3877e385fb7b38c790676b105c838db6e9eac8b614ae7cc1837b77561
6
+ metadata.gz: 03b62f7c24779191b677711a5b44d8e8d5a5a0c34a74d2c69614750713393f93abf64e659c94d0d42e4bf72856d91256ba7372947c2d09da7c107ad5f8f2b85c
7
+ data.tar.gz: ed27ca46e9e9be8a4b264fa62d49597fd04bce912a15060bdb85b7578adbe0633f089e6be53691fc9d0a3266c9ea71f7aa84e2d87d39acce5a8086e43052067b
@@ -44,19 +44,25 @@ CSS selectors. In Nokogiri one queries a document as following:
44
44
  document.xpath('root/foo')
45
45
  document.css('root foo')
46
46
 
47
- Oga currently only supports XPath expressions, CSS selectors will be added in
48
- the near future. Querying documents works similar to Nokogiri:
47
+ Querying documents works similar to Nokogiri:
49
48
 
50
49
  document = Oga.parse_xml('<root><foo>bar</foo></root>')
51
50
 
52
51
  document.xpath('root/foo')
53
52
 
53
+ or using CSS:
54
+
55
+ document = Oga.parse_xml('<root><foo>bar</foo></root>')
56
+
57
+ document.css('root foo')
58
+
54
59
  Nokogiri also allows you to query a document and return the first match, opposed
55
60
  to an entire node set, using the method `at`. In Nokogiri this method can be
56
61
  used for both XPath expression and CSS selectors. Oga has no such method,
57
62
  instead it provides the following more dedicated methods:
58
63
 
59
64
  * `at_xpath`: returns the first node of an XPath expression
65
+ * `at_css`: returns the first node of a CSS expression
60
66
 
61
67
  For example:
62
68
 
data/ext/c/lexer.c CHANGED
@@ -89,9 +89,10 @@ static const int c_lexer_en_attribute_pre = 73;
89
89
  static const int c_lexer_en_unquoted_attribute_value = 75;
90
90
  static const int c_lexer_en_quoted_attribute_value = 77;
91
91
  static const int c_lexer_en_element_head = 78;
92
- static const int c_lexer_en_text = 82;
93
- static const int c_lexer_en_html_script = 86;
94
- static const int c_lexer_en_html_style = 90;
92
+ static const int c_lexer_en_html_element_head = 82;
93
+ static const int c_lexer_en_text = 86;
94
+ static const int c_lexer_en_html_script = 90;
95
+ static const int c_lexer_en_html_style = 94;
95
96
  static const int c_lexer_en_main = 32;
96
97
 
97
98
 
@@ -158,7 +159,7 @@ VALUE oga_xml_lexer_advance(VALUE self, VALUE data_block)
158
159
  lines = state->lines;
159
160
 
160
161
 
161
- #line 162 "ext/c/lexer.c"
162
+ #line 163 "ext/c/lexer.c"
162
163
  {
163
164
  if ( p == pe )
164
165
  goto _test_eof;
@@ -242,6 +243,10 @@ _again:
242
243
  case 86: goto st86;
243
244
  case 87: goto st87;
244
245
  case 88: goto st88;
246
+ case 89: goto st89;
247
+ case 90: goto st90;
248
+ case 91: goto st91;
249
+ case 92: goto st92;
245
250
  case 19: goto st19;
246
251
  case 20: goto st20;
247
252
  case 21: goto st21;
@@ -249,17 +254,17 @@ _again:
249
254
  case 23: goto st23;
250
255
  case 24: goto st24;
251
256
  case 25: goto st25;
252
- case 89: goto st89;
253
- case 90: goto st90;
254
- case 91: goto st91;
255
- case 92: goto st92;
257
+ case 93: goto st93;
258
+ case 94: goto st94;
259
+ case 95: goto st95;
260
+ case 96: goto st96;
256
261
  case 26: goto st26;
257
262
  case 27: goto st27;
258
263
  case 28: goto st28;
259
264
  case 29: goto st29;
260
265
  case 30: goto st30;
261
266
  case 31: goto st31;
262
- case 93: goto st93;
267
+ case 97: goto st97;
263
268
  default: break;
264
269
  }
265
270
 
@@ -270,15 +275,15 @@ _resume:
270
275
  {
271
276
  tr0:
272
277
  ( state->cs) = 32;
273
- #line 565 "ext/ragel/base_lexer.rl"
278
+ #line 618 "ext/ragel/base_lexer.rl"
274
279
  {{p = ((te))-1;}{
275
280
  p--;
276
- ( state->cs) = 82;
281
+ ( state->cs) = 86;
277
282
  }}
278
283
  goto _again;
279
284
  tr4:
280
285
  ( state->cs) = 32;
281
- #line 86 "ext/ragel/base_lexer.rl"
286
+ #line 89 "ext/ragel/base_lexer.rl"
282
287
  {te = p+1;{
283
288
  callback_simple(id_on_comment_start);
284
289
 
@@ -287,7 +292,7 @@ tr4:
287
292
  goto _again;
288
293
  tr17:
289
294
  ( state->cs) = 32;
290
- #line 125 "ext/ragel/base_lexer.rl"
295
+ #line 128 "ext/ragel/base_lexer.rl"
291
296
  {te = p+1;{
292
297
  callback_simple(id_on_cdata_start);
293
298
 
@@ -296,23 +301,23 @@ tr17:
296
301
  goto _again;
297
302
  tr39:
298
303
  ( state->cs) = 32;
299
- #line 565 "ext/ragel/base_lexer.rl"
304
+ #line 618 "ext/ragel/base_lexer.rl"
300
305
  {te = p+1;{
301
306
  p--;
302
- ( state->cs) = 82;
307
+ ( state->cs) = 86;
303
308
  }}
304
309
  goto _again;
305
310
  tr41:
306
311
  ( state->cs) = 32;
307
- #line 565 "ext/ragel/base_lexer.rl"
312
+ #line 618 "ext/ragel/base_lexer.rl"
308
313
  {te = p;p--;{
309
314
  p--;
310
- ( state->cs) = 82;
315
+ ( state->cs) = 86;
311
316
  }}
312
317
  goto _again;
313
318
  tr42:
314
319
  ( state->cs) = 32;
315
- #line 368 "ext/ragel/base_lexer.rl"
320
+ #line 371 "ext/ragel/base_lexer.rl"
316
321
  {te = p+1;{
317
322
  p--;
318
323
  ( state->cs) = 69;
@@ -320,14 +325,14 @@ tr42:
320
325
  goto _again;
321
326
  tr44:
322
327
  ( state->cs) = 32;
323
- #line 373 "ext/ragel/base_lexer.rl"
328
+ #line 376 "ext/ragel/base_lexer.rl"
324
329
  {te = p+1;{
325
330
  ( state->cs) = 71;
326
331
  }}
327
332
  goto _again;
328
333
  tr46:
329
334
  ( state->cs) = 32;
330
- #line 257 "ext/ragel/base_lexer.rl"
335
+ #line 260 "ext/ragel/base_lexer.rl"
331
336
  {te = p;p--;{
332
337
  callback_simple(id_on_doctype_start);
333
338
 
@@ -345,13 +350,13 @@ tr47:
345
350
  ( state->cs) = 32;
346
351
  #line 1 "NONE"
347
352
  { switch( ( state->act) ) {
348
- case 54:
353
+ case 60:
349
354
  {{p = ((te))-1;}
350
355
  callback_simple(id_on_xml_decl_start);
351
356
  ( state->cs) = 66;
352
357
  }
353
358
  break;
354
- case 57:
359
+ case 63:
355
360
  {{p = ((te))-1;}
356
361
  callback_simple(id_on_proc_ins_start);
357
362
  callback(id_on_proc_ins_name, data, encoding, ts + 2, te);
@@ -364,7 +369,7 @@ tr47:
364
369
  goto _again;
365
370
  tr48:
366
371
  ( state->cs) = 32;
367
- #line 167 "ext/ragel/base_lexer.rl"
372
+ #line 170 "ext/ragel/base_lexer.rl"
368
373
  {te = p;p--;{
369
374
  callback_simple(id_on_proc_ins_start);
370
375
  callback(id_on_proc_ins_name, data, encoding, ts + 2, te);
@@ -380,7 +385,7 @@ st32:
380
385
  case 32:
381
386
  #line 1 "NONE"
382
387
  {ts = p;}
383
- #line 384 "ext/c/lexer.c"
388
+ #line 389 "ext/c/lexer.c"
384
389
  if ( (*p) == 60 )
385
390
  goto tr40;
386
391
  goto tr39;
@@ -392,7 +397,7 @@ st33:
392
397
  if ( ++p == pe )
393
398
  goto _test_eof33;
394
399
  case 33:
395
- #line 396 "ext/c/lexer.c"
400
+ #line 401 "ext/c/lexer.c"
396
401
  switch( (*p) ) {
397
402
  case 33: goto st1;
398
403
  case 47: goto tr44;
@@ -495,7 +500,7 @@ case 9:
495
500
  goto tr11;
496
501
  goto tr0;
497
502
  tr11:
498
- #line 58 "ext/ragel/base_lexer.rl"
503
+ #line 61 "ext/ragel/base_lexer.rl"
499
504
  {
500
505
  if ( (*p) == '\n' ) lines++;
501
506
  }
@@ -504,7 +509,7 @@ st34:
504
509
  if ( ++p == pe )
505
510
  goto _test_eof34;
506
511
  case 34:
507
- #line 508 "ext/c/lexer.c"
512
+ #line 513 "ext/c/lexer.c"
508
513
  switch( (*p) ) {
509
514
  case 13: goto tr11;
510
515
  case 32: goto tr11;
@@ -578,20 +583,20 @@ case 16:
578
583
  tr18:
579
584
  #line 1 "NONE"
580
585
  {te = p+1;}
581
- #line 167 "ext/ragel/base_lexer.rl"
582
- {( state->act) = 57;}
586
+ #line 170 "ext/ragel/base_lexer.rl"
587
+ {( state->act) = 63;}
583
588
  goto st35;
584
589
  tr50:
585
590
  #line 1 "NONE"
586
591
  {te = p+1;}
587
- #line 321 "ext/ragel/base_lexer.rl"
588
- {( state->act) = 54;}
592
+ #line 324 "ext/ragel/base_lexer.rl"
593
+ {( state->act) = 60;}
589
594
  goto st35;
590
595
  st35:
591
596
  if ( ++p == pe )
592
597
  goto _test_eof35;
593
598
  case 35:
594
- #line 595 "ext/c/lexer.c"
599
+ #line 600 "ext/c/lexer.c"
595
600
  switch( (*p) ) {
596
601
  case 47: goto tr47;
597
602
  case 96: goto tr47;
@@ -651,7 +656,7 @@ case 37:
651
656
  goto tr48;
652
657
  goto tr18;
653
658
  tr20:
654
- #line 93 "ext/ragel/base_lexer.rl"
659
+ #line 96 "ext/ragel/base_lexer.rl"
655
660
  {{p = ((te))-1;}{
656
661
  callback(id_on_comment_body, data, encoding, ts, te);
657
662
 
@@ -665,7 +670,7 @@ tr20:
665
670
  goto st38;
666
671
  tr21:
667
672
  ( state->cs) = 38;
668
- #line 104 "ext/ragel/base_lexer.rl"
673
+ #line 107 "ext/ragel/base_lexer.rl"
669
674
  {te = p+1;{
670
675
  callback_simple(id_on_comment_end);
671
676
 
@@ -673,7 +678,7 @@ tr21:
673
678
  }}
674
679
  goto _again;
675
680
  tr53:
676
- #line 93 "ext/ragel/base_lexer.rl"
681
+ #line 96 "ext/ragel/base_lexer.rl"
677
682
  {te = p;p--;{
678
683
  callback(id_on_comment_body, data, encoding, ts, te);
679
684
 
@@ -693,12 +698,12 @@ st38:
693
698
  case 38:
694
699
  #line 1 "NONE"
695
700
  {ts = p;}
696
- #line 697 "ext/c/lexer.c"
701
+ #line 702 "ext/c/lexer.c"
697
702
  if ( (*p) == 45 )
698
703
  goto tr52;
699
704
  goto tr51;
700
705
  tr51:
701
- #line 58 "ext/ragel/base_lexer.rl"
706
+ #line 61 "ext/ragel/base_lexer.rl"
702
707
  {
703
708
  if ( (*p) == '\n' ) lines++;
704
709
  }
@@ -707,14 +712,14 @@ st39:
707
712
  if ( ++p == pe )
708
713
  goto _test_eof39;
709
714
  case 39:
710
- #line 711 "ext/c/lexer.c"
715
+ #line 716 "ext/c/lexer.c"
711
716
  if ( (*p) == 45 )
712
717
  goto tr53;
713
718
  goto tr51;
714
719
  tr52:
715
720
  #line 1 "NONE"
716
721
  {te = p+1;}
717
- #line 58 "ext/ragel/base_lexer.rl"
722
+ #line 61 "ext/ragel/base_lexer.rl"
718
723
  {
719
724
  if ( (*p) == '\n' ) lines++;
720
725
  }
@@ -723,7 +728,7 @@ st40:
723
728
  if ( ++p == pe )
724
729
  goto _test_eof40;
725
730
  case 40:
726
- #line 727 "ext/c/lexer.c"
731
+ #line 732 "ext/c/lexer.c"
727
732
  if ( (*p) == 45 )
728
733
  goto st17;
729
734
  goto tr53;
@@ -735,7 +740,7 @@ case 17:
735
740
  goto tr21;
736
741
  goto tr20;
737
742
  tr22:
738
- #line 132 "ext/ragel/base_lexer.rl"
743
+ #line 135 "ext/ragel/base_lexer.rl"
739
744
  {{p = ((te))-1;}{
740
745
  callback(id_on_cdata_body, data, encoding, ts, te);
741
746
 
@@ -749,7 +754,7 @@ tr22:
749
754
  goto st41;
750
755
  tr23:
751
756
  ( state->cs) = 41;
752
- #line 143 "ext/ragel/base_lexer.rl"
757
+ #line 146 "ext/ragel/base_lexer.rl"
753
758
  {te = p+1;{
754
759
  callback_simple(id_on_cdata_end);
755
760
 
@@ -757,7 +762,7 @@ tr23:
757
762
  }}
758
763
  goto _again;
759
764
  tr57:
760
- #line 132 "ext/ragel/base_lexer.rl"
765
+ #line 135 "ext/ragel/base_lexer.rl"
761
766
  {te = p;p--;{
762
767
  callback(id_on_cdata_body, data, encoding, ts, te);
763
768
 
@@ -777,12 +782,12 @@ st41:
777
782
  case 41:
778
783
  #line 1 "NONE"
779
784
  {ts = p;}
780
- #line 781 "ext/c/lexer.c"
785
+ #line 786 "ext/c/lexer.c"
781
786
  if ( (*p) == 93 )
782
787
  goto tr56;
783
788
  goto tr55;
784
789
  tr55:
785
- #line 58 "ext/ragel/base_lexer.rl"
790
+ #line 61 "ext/ragel/base_lexer.rl"
786
791
  {
787
792
  if ( (*p) == '\n' ) lines++;
788
793
  }
@@ -791,14 +796,14 @@ st42:
791
796
  if ( ++p == pe )
792
797
  goto _test_eof42;
793
798
  case 42:
794
- #line 795 "ext/c/lexer.c"
799
+ #line 800 "ext/c/lexer.c"
795
800
  if ( (*p) == 93 )
796
801
  goto tr57;
797
802
  goto tr55;
798
803
  tr56:
799
804
  #line 1 "NONE"
800
805
  {te = p+1;}
801
- #line 58 "ext/ragel/base_lexer.rl"
806
+ #line 61 "ext/ragel/base_lexer.rl"
802
807
  {
803
808
  if ( (*p) == '\n' ) lines++;
804
809
  }
@@ -807,7 +812,7 @@ st43:
807
812
  if ( ++p == pe )
808
813
  goto _test_eof43;
809
814
  case 43:
810
- #line 811 "ext/c/lexer.c"
815
+ #line 816 "ext/c/lexer.c"
811
816
  if ( (*p) == 93 )
812
817
  goto st18;
813
818
  goto tr57;
@@ -819,7 +824,7 @@ case 18:
819
824
  goto tr23;
820
825
  goto tr22;
821
826
  tr61:
822
- #line 175 "ext/ragel/base_lexer.rl"
827
+ #line 178 "ext/ragel/base_lexer.rl"
823
828
  {te = p;p--;{
824
829
  callback(id_on_proc_ins_body, data, encoding, ts, te);
825
830
 
@@ -833,7 +838,7 @@ tr61:
833
838
  goto st44;
834
839
  tr62:
835
840
  ( state->cs) = 44;
836
- #line 186 "ext/ragel/base_lexer.rl"
841
+ #line 189 "ext/ragel/base_lexer.rl"
837
842
  {te = p+1;{
838
843
  callback_simple(id_on_proc_ins_end);
839
844
 
@@ -848,12 +853,12 @@ st44:
848
853
  case 44:
849
854
  #line 1 "NONE"
850
855
  {ts = p;}
851
- #line 852 "ext/c/lexer.c"
856
+ #line 857 "ext/c/lexer.c"
852
857
  if ( (*p) == 63 )
853
858
  goto tr60;
854
859
  goto tr59;
855
860
  tr59:
856
- #line 58 "ext/ragel/base_lexer.rl"
861
+ #line 61 "ext/ragel/base_lexer.rl"
857
862
  {
858
863
  if ( (*p) == '\n' ) lines++;
859
864
  }
@@ -862,12 +867,12 @@ st45:
862
867
  if ( ++p == pe )
863
868
  goto _test_eof45;
864
869
  case 45:
865
- #line 866 "ext/c/lexer.c"
870
+ #line 871 "ext/c/lexer.c"
866
871
  if ( (*p) == 63 )
867
872
  goto tr61;
868
873
  goto tr59;
869
874
  tr60:
870
- #line 58 "ext/ragel/base_lexer.rl"
875
+ #line 61 "ext/ragel/base_lexer.rl"
871
876
  {
872
877
  if ( (*p) == '\n' ) lines++;
873
878
  }
@@ -876,12 +881,12 @@ st46:
876
881
  if ( ++p == pe )
877
882
  goto _test_eof46;
878
883
  case 46:
879
- #line 880 "ext/c/lexer.c"
884
+ #line 885 "ext/c/lexer.c"
880
885
  if ( (*p) == 62 )
881
886
  goto tr62;
882
887
  goto tr61;
883
888
  tr64:
884
- #line 228 "ext/ragel/base_lexer.rl"
889
+ #line 231 "ext/ragel/base_lexer.rl"
885
890
  {te = p+1;{
886
891
  callback_simple(id_on_string_squote);
887
892
 
@@ -889,7 +894,7 @@ tr64:
889
894
  }}
890
895
  goto st47;
891
896
  tr65:
892
- #line 202 "ext/ragel/base_lexer.rl"
897
+ #line 205 "ext/ragel/base_lexer.rl"
893
898
  {te = p;p--;{
894
899
  callback(id_on_string_body, data, encoding, ts, te);
895
900
 
@@ -909,12 +914,12 @@ st47:
909
914
  case 47:
910
915
  #line 1 "NONE"
911
916
  {ts = p;}
912
- #line 913 "ext/c/lexer.c"
917
+ #line 918 "ext/c/lexer.c"
913
918
  if ( (*p) == 39 )
914
919
  goto tr64;
915
920
  goto tr63;
916
921
  tr63:
917
- #line 58 "ext/ragel/base_lexer.rl"
922
+ #line 61 "ext/ragel/base_lexer.rl"
918
923
  {
919
924
  if ( (*p) == '\n' ) lines++;
920
925
  }
@@ -923,12 +928,12 @@ st48:
923
928
  if ( ++p == pe )
924
929
  goto _test_eof48;
925
930
  case 48:
926
- #line 927 "ext/c/lexer.c"
931
+ #line 932 "ext/c/lexer.c"
927
932
  if ( (*p) == 39 )
928
933
  goto tr65;
929
934
  goto tr63;
930
935
  tr67:
931
- #line 238 "ext/ragel/base_lexer.rl"
936
+ #line 241 "ext/ragel/base_lexer.rl"
932
937
  {te = p+1;{
933
938
  callback_simple(id_on_string_dquote);
934
939
 
@@ -936,7 +941,7 @@ tr67:
936
941
  }}
937
942
  goto st49;
938
943
  tr68:
939
- #line 202 "ext/ragel/base_lexer.rl"
944
+ #line 205 "ext/ragel/base_lexer.rl"
940
945
  {te = p;p--;{
941
946
  callback(id_on_string_body, data, encoding, ts, te);
942
947
 
@@ -956,12 +961,12 @@ st49:
956
961
  case 49:
957
962
  #line 1 "NONE"
958
963
  {ts = p;}
959
- #line 960 "ext/c/lexer.c"
964
+ #line 965 "ext/c/lexer.c"
960
965
  if ( (*p) == 34 )
961
966
  goto tr67;
962
967
  goto tr66;
963
968
  tr66:
964
- #line 58 "ext/ragel/base_lexer.rl"
969
+ #line 61 "ext/ragel/base_lexer.rl"
965
970
  {
966
971
  if ( (*p) == '\n' ) lines++;
967
972
  }
@@ -970,17 +975,17 @@ st50:
970
975
  if ( ++p == pe )
971
976
  goto _test_eof50;
972
977
  case 50:
973
- #line 974 "ext/c/lexer.c"
978
+ #line 979 "ext/c/lexer.c"
974
979
  if ( (*p) == 34 )
975
980
  goto tr68;
976
981
  goto tr66;
977
982
  tr70:
978
983
  ( state->cs) = 51;
979
- #line 283 "ext/ragel/base_lexer.rl"
984
+ #line 286 "ext/ragel/base_lexer.rl"
980
985
  {te = p+1;{ ( state->cs) = 53; }}
981
986
  goto _again;
982
987
  tr71:
983
- #line 272 "ext/ragel/base_lexer.rl"
988
+ #line 275 "ext/ragel/base_lexer.rl"
984
989
  {te = p;p--;{
985
990
  callback(id_on_doctype_inline, data, encoding, ts, te);
986
991
 
@@ -1000,12 +1005,12 @@ st51:
1000
1005
  case 51:
1001
1006
  #line 1 "NONE"
1002
1007
  {ts = p;}
1003
- #line 1004 "ext/c/lexer.c"
1008
+ #line 1009 "ext/c/lexer.c"
1004
1009
  if ( (*p) == 93 )
1005
1010
  goto tr70;
1006
1011
  goto tr69;
1007
1012
  tr69:
1008
- #line 58 "ext/ragel/base_lexer.rl"
1013
+ #line 61 "ext/ragel/base_lexer.rl"
1009
1014
  {
1010
1015
  if ( (*p) == '\n' ) lines++;
1011
1016
  }
@@ -1014,22 +1019,22 @@ st52:
1014
1019
  if ( ++p == pe )
1015
1020
  goto _test_eof52;
1016
1021
  case 52:
1017
- #line 1018 "ext/c/lexer.c"
1022
+ #line 1023 "ext/c/lexer.c"
1018
1023
  if ( (*p) == 93 )
1019
1024
  goto tr71;
1020
1025
  goto tr69;
1021
1026
  tr73:
1022
- #line 311 "ext/ragel/base_lexer.rl"
1027
+ #line 314 "ext/ragel/base_lexer.rl"
1023
1028
  {te = p+1;}
1024
1029
  goto st53;
1025
1030
  tr75:
1026
- #line 62 "ext/ragel/base_lexer.rl"
1031
+ #line 65 "ext/ragel/base_lexer.rl"
1027
1032
  {te = p+1;{
1028
1033
  advance_line(1);
1029
1034
  }}
1030
1035
  goto st53;
1031
1036
  tr77:
1032
- #line 219 "ext/ragel/base_lexer.rl"
1037
+ #line 222 "ext/ragel/base_lexer.rl"
1033
1038
  {te = p+1;{
1034
1039
  callback_simple(id_on_string_dquote);
1035
1040
 
@@ -1037,7 +1042,7 @@ tr77:
1037
1042
  }}
1038
1043
  goto st53;
1039
1044
  tr78:
1040
- #line 213 "ext/ragel/base_lexer.rl"
1045
+ #line 216 "ext/ragel/base_lexer.rl"
1041
1046
  {te = p+1;{
1042
1047
  callback_simple(id_on_string_squote);
1043
1048
 
@@ -1046,7 +1051,7 @@ tr78:
1046
1051
  goto st53;
1047
1052
  tr79:
1048
1053
  ( state->cs) = 53;
1049
- #line 304 "ext/ragel/base_lexer.rl"
1054
+ #line 307 "ext/ragel/base_lexer.rl"
1050
1055
  {te = p+1;{
1051
1056
  callback_simple(id_on_doctype_end);
1052
1057
  ( state->cs) = 32;
@@ -1054,7 +1059,7 @@ tr79:
1054
1059
  goto _again;
1055
1060
  tr82:
1056
1061
  ( state->cs) = 53;
1057
- #line 294 "ext/ragel/base_lexer.rl"
1062
+ #line 297 "ext/ragel/base_lexer.rl"
1058
1063
  {te = p+1;{ ( state->cs) = 51; }}
1059
1064
  goto _again;
1060
1065
  tr83:
@@ -1074,13 +1079,13 @@ tr83:
1074
1079
  }
1075
1080
  goto st53;
1076
1081
  tr84:
1077
- #line 62 "ext/ragel/base_lexer.rl"
1082
+ #line 65 "ext/ragel/base_lexer.rl"
1078
1083
  {te = p;p--;{
1079
1084
  advance_line(1);
1080
1085
  }}
1081
1086
  goto st53;
1082
1087
  tr85:
1083
- #line 300 "ext/ragel/base_lexer.rl"
1088
+ #line 303 "ext/ragel/base_lexer.rl"
1084
1089
  {te = p;p--;{
1085
1090
  callback(id_on_doctype_name, data, encoding, ts, te);
1086
1091
  }}
@@ -1093,7 +1098,7 @@ st53:
1093
1098
  case 53:
1094
1099
  #line 1 "NONE"
1095
1100
  {ts = p;}
1096
- #line 1097 "ext/c/lexer.c"
1101
+ #line 1102 "ext/c/lexer.c"
1097
1102
  switch( (*p) ) {
1098
1103
  case 9: goto tr73;
1099
1104
  case 10: goto tr75;
@@ -1123,20 +1128,20 @@ case 53:
1123
1128
  tr72:
1124
1129
  #line 1 "NONE"
1125
1130
  {te = p+1;}
1126
- #line 300 "ext/ragel/base_lexer.rl"
1131
+ #line 303 "ext/ragel/base_lexer.rl"
1127
1132
  {( state->act) = 17;}
1128
1133
  goto st54;
1129
1134
  tr90:
1130
1135
  #line 1 "NONE"
1131
1136
  {te = p+1;}
1132
- #line 289 "ext/ragel/base_lexer.rl"
1137
+ #line 292 "ext/ragel/base_lexer.rl"
1133
1138
  {( state->act) = 13;}
1134
1139
  goto st54;
1135
1140
  st54:
1136
1141
  if ( ++p == pe )
1137
1142
  goto _test_eof54;
1138
1143
  case 54:
1139
- #line 1140 "ext/c/lexer.c"
1144
+ #line 1145 "ext/c/lexer.c"
1140
1145
  switch( (*p) ) {
1141
1146
  case 47: goto tr83;
1142
1147
  case 96: goto tr83;
@@ -1374,39 +1379,39 @@ case 65:
1374
1379
  goto tr85;
1375
1380
  goto tr72;
1376
1381
  tr96:
1377
- #line 58 "ext/ragel/base_lexer.rl"
1382
+ #line 61 "ext/ragel/base_lexer.rl"
1378
1383
  {
1379
1384
  if ( (*p) == '\n' ) lines++;
1380
1385
  }
1381
- #line 356 "ext/ragel/base_lexer.rl"
1386
+ #line 359 "ext/ragel/base_lexer.rl"
1382
1387
  {te = p+1;}
1383
1388
  goto st66;
1384
1389
  tr97:
1385
- #line 219 "ext/ragel/base_lexer.rl"
1390
+ #line 222 "ext/ragel/base_lexer.rl"
1386
1391
  {te = p+1;{
1387
1392
  callback_simple(id_on_string_dquote);
1388
1393
 
1389
1394
  {( state->stack)[( state->top)++] = 66; goto st49;}
1390
1395
  }}
1391
- #line 58 "ext/ragel/base_lexer.rl"
1396
+ #line 61 "ext/ragel/base_lexer.rl"
1392
1397
  {
1393
1398
  if ( (*p) == '\n' ) lines++;
1394
1399
  }
1395
1400
  goto st66;
1396
1401
  tr98:
1397
- #line 213 "ext/ragel/base_lexer.rl"
1402
+ #line 216 "ext/ragel/base_lexer.rl"
1398
1403
  {te = p+1;{
1399
1404
  callback_simple(id_on_string_squote);
1400
1405
 
1401
1406
  {( state->stack)[( state->top)++] = 66; goto st47;}
1402
1407
  }}
1403
- #line 58 "ext/ragel/base_lexer.rl"
1408
+ #line 61 "ext/ragel/base_lexer.rl"
1404
1409
  {
1405
1410
  if ( (*p) == '\n' ) lines++;
1406
1411
  }
1407
1412
  goto st66;
1408
1413
  tr100:
1409
- #line 342 "ext/ragel/base_lexer.rl"
1414
+ #line 345 "ext/ragel/base_lexer.rl"
1410
1415
  {te = p;p--;{
1411
1416
  if ( lines > 0 )
1412
1417
  {
@@ -1419,12 +1424,12 @@ tr100:
1419
1424
  }}
1420
1425
  goto st66;
1421
1426
  tr102:
1422
- #line 356 "ext/ragel/base_lexer.rl"
1427
+ #line 359 "ext/ragel/base_lexer.rl"
1423
1428
  {te = p;p--;}
1424
1429
  goto st66;
1425
1430
  tr103:
1426
1431
  ( state->cs) = 66;
1427
- #line 328 "ext/ragel/base_lexer.rl"
1432
+ #line 331 "ext/ragel/base_lexer.rl"
1428
1433
  {te = p+1;{
1429
1434
  if ( lines > 0 )
1430
1435
  {
@@ -1446,7 +1451,7 @@ st66:
1446
1451
  case 66:
1447
1452
  #line 1 "NONE"
1448
1453
  {ts = p;}
1449
- #line 1450 "ext/c/lexer.c"
1454
+ #line 1455 "ext/c/lexer.c"
1450
1455
  switch( (*p) ) {
1451
1456
  case 34: goto tr97;
1452
1457
  case 39: goto tr98;
@@ -1467,7 +1472,7 @@ case 66:
1467
1472
  goto tr96;
1468
1473
  goto tr95;
1469
1474
  tr95:
1470
- #line 58 "ext/ragel/base_lexer.rl"
1475
+ #line 61 "ext/ragel/base_lexer.rl"
1471
1476
  {
1472
1477
  if ( (*p) == '\n' ) lines++;
1473
1478
  }
@@ -1476,7 +1481,7 @@ st67:
1476
1481
  if ( ++p == pe )
1477
1482
  goto _test_eof67;
1478
1483
  case 67:
1479
- #line 1480 "ext/c/lexer.c"
1484
+ #line 1485 "ext/c/lexer.c"
1480
1485
  switch( (*p) ) {
1481
1486
  case 47: goto tr100;
1482
1487
  case 96: goto tr100;
@@ -1494,7 +1499,7 @@ case 67:
1494
1499
  goto tr100;
1495
1500
  goto st67;
1496
1501
  tr99:
1497
- #line 58 "ext/ragel/base_lexer.rl"
1502
+ #line 61 "ext/ragel/base_lexer.rl"
1498
1503
  {
1499
1504
  if ( (*p) == '\n' ) lines++;
1500
1505
  }
@@ -1503,22 +1508,33 @@ st68:
1503
1508
  if ( ++p == pe )
1504
1509
  goto _test_eof68;
1505
1510
  case 68:
1506
- #line 1507 "ext/c/lexer.c"
1511
+ #line 1512 "ext/c/lexer.c"
1507
1512
  if ( (*p) == 62 )
1508
1513
  goto tr103;
1509
1514
  goto tr102;
1510
1515
  tr105:
1511
1516
  ( state->cs) = 69;
1512
- #line 396 "ext/ragel/base_lexer.rl"
1517
+ #line 402 "ext/ragel/base_lexer.rl"
1513
1518
  {te = p;p--;{
1514
1519
  callback(id_on_element_name, data, encoding, ts, te);
1515
- ( state->cs) = 78;
1520
+
1521
+ if ( html_p )
1522
+ {
1523
+ ( state->cs) = 82;
1524
+ }
1525
+ else
1526
+ {
1527
+ ( state->cs) = 78;
1528
+ }
1516
1529
  }}
1517
1530
  goto _again;
1518
1531
  tr106:
1519
- #line 392 "ext/ragel/base_lexer.rl"
1532
+ #line 395 "ext/ragel/base_lexer.rl"
1520
1533
  {te = p+1;{
1521
- callback(id_on_element_ns, data, encoding, ts, te - 1);
1534
+ if ( !html_p )
1535
+ {
1536
+ callback(id_on_element_ns, data, encoding, ts, te - 1);
1537
+ }
1522
1538
  }}
1523
1539
  goto st69;
1524
1540
  st69:
@@ -1529,7 +1545,7 @@ st69:
1529
1545
  case 69:
1530
1546
  #line 1 "NONE"
1531
1547
  {ts = p;}
1532
- #line 1533 "ext/c/lexer.c"
1548
+ #line 1549 "ext/c/lexer.c"
1533
1549
  switch( (*p) ) {
1534
1550
  case 47: goto st0;
1535
1551
  case 96: goto st0;
@@ -1568,16 +1584,16 @@ case 70:
1568
1584
  goto tr105;
1569
1585
  goto st70;
1570
1586
  tr108:
1571
- #line 58 "ext/ragel/base_lexer.rl"
1587
+ #line 61 "ext/ragel/base_lexer.rl"
1572
1588
  {
1573
1589
  if ( (*p) == '\n' ) lines++;
1574
1590
  }
1575
- #line 421 "ext/ragel/base_lexer.rl"
1591
+ #line 435 "ext/ragel/base_lexer.rl"
1576
1592
  {te = p+1;}
1577
1593
  goto st71;
1578
1594
  tr109:
1579
1595
  ( state->cs) = 71;
1580
- #line 410 "ext/ragel/base_lexer.rl"
1596
+ #line 424 "ext/ragel/base_lexer.rl"
1581
1597
  {te = p+1;{
1582
1598
  if ( lines > 0 )
1583
1599
  {
@@ -1588,19 +1604,19 @@ tr109:
1588
1604
 
1589
1605
  ( state->cs) = 32;
1590
1606
  }}
1591
- #line 58 "ext/ragel/base_lexer.rl"
1607
+ #line 61 "ext/ragel/base_lexer.rl"
1592
1608
  {
1593
1609
  if ( (*p) == '\n' ) lines++;
1594
1610
  }
1595
1611
  goto _again;
1596
1612
  tr110:
1597
- #line 377 "ext/ragel/base_lexer.rl"
1613
+ #line 380 "ext/ragel/base_lexer.rl"
1598
1614
  {te = p;p--;{
1599
1615
  callback(id_on_element_end, data, encoding, ts, te);
1600
1616
  }}
1601
1617
  goto st71;
1602
1618
  tr112:
1603
- #line 406 "ext/ragel/base_lexer.rl"
1619
+ #line 420 "ext/ragel/base_lexer.rl"
1604
1620
  {te = p+1;}
1605
1621
  goto st71;
1606
1622
  st71:
@@ -1611,7 +1627,7 @@ st71:
1611
1627
  case 71:
1612
1628
  #line 1 "NONE"
1613
1629
  {ts = p;}
1614
- #line 1615 "ext/c/lexer.c"
1630
+ #line 1631 "ext/c/lexer.c"
1615
1631
  switch( (*p) ) {
1616
1632
  case 47: goto tr108;
1617
1633
  case 62: goto tr109;
@@ -1630,7 +1646,7 @@ case 71:
1630
1646
  goto tr108;
1631
1647
  goto tr107;
1632
1648
  tr107:
1633
- #line 58 "ext/ragel/base_lexer.rl"
1649
+ #line 61 "ext/ragel/base_lexer.rl"
1634
1650
  {
1635
1651
  if ( (*p) == '\n' ) lines++;
1636
1652
  }
@@ -1639,7 +1655,7 @@ st72:
1639
1655
  if ( ++p == pe )
1640
1656
  goto _test_eof72;
1641
1657
  case 72:
1642
- #line 1643 "ext/c/lexer.c"
1658
+ #line 1659 "ext/c/lexer.c"
1643
1659
  switch( (*p) ) {
1644
1660
  case 47: goto tr110;
1645
1661
  case 58: goto tr112;
@@ -1659,7 +1675,7 @@ case 72:
1659
1675
  goto st72;
1660
1676
  tr113:
1661
1677
  ( state->cs) = 73;
1662
- #line 442 "ext/ragel/base_lexer.rl"
1678
+ #line 456 "ext/ragel/base_lexer.rl"
1663
1679
  {te = p+1;{
1664
1680
  p--;
1665
1681
 
@@ -1682,16 +1698,16 @@ tr113:
1682
1698
  }}
1683
1699
  goto _again;
1684
1700
  tr114:
1685
- #line 58 "ext/ragel/base_lexer.rl"
1701
+ #line 61 "ext/ragel/base_lexer.rl"
1686
1702
  {
1687
1703
  if ( (*p) == '\n' ) lines++;
1688
1704
  }
1689
- #line 427 "ext/ragel/base_lexer.rl"
1705
+ #line 441 "ext/ragel/base_lexer.rl"
1690
1706
  {te = p+1;}
1691
1707
  goto st73;
1692
1708
  tr116:
1693
1709
  ( state->cs) = 73;
1694
- #line 429 "ext/ragel/base_lexer.rl"
1710
+ #line 443 "ext/ragel/base_lexer.rl"
1695
1711
  {te = p+1;{
1696
1712
  p--;
1697
1713
 
@@ -1706,7 +1722,7 @@ tr116:
1706
1722
  }}
1707
1723
  goto _again;
1708
1724
  tr117:
1709
- #line 427 "ext/ragel/base_lexer.rl"
1725
+ #line 441 "ext/ragel/base_lexer.rl"
1710
1726
  {te = p;p--;}
1711
1727
  goto st73;
1712
1728
  st73:
@@ -1717,7 +1733,7 @@ st73:
1717
1733
  case 73:
1718
1734
  #line 1 "NONE"
1719
1735
  {ts = p;}
1720
- #line 1721 "ext/c/lexer.c"
1736
+ #line 1737 "ext/c/lexer.c"
1721
1737
  switch( (*p) ) {
1722
1738
  case 13: goto tr115;
1723
1739
  case 32: goto tr114;
@@ -1728,7 +1744,7 @@ case 73:
1728
1744
  goto tr114;
1729
1745
  goto tr113;
1730
1746
  tr115:
1731
- #line 58 "ext/ragel/base_lexer.rl"
1747
+ #line 61 "ext/ragel/base_lexer.rl"
1732
1748
  {
1733
1749
  if ( (*p) == '\n' ) lines++;
1734
1750
  }
@@ -1737,19 +1753,19 @@ st74:
1737
1753
  if ( ++p == pe )
1738
1754
  goto _test_eof74;
1739
1755
  case 74:
1740
- #line 1741 "ext/c/lexer.c"
1756
+ #line 1757 "ext/c/lexer.c"
1741
1757
  if ( (*p) == 10 )
1742
1758
  goto tr114;
1743
1759
  goto tr117;
1744
1760
  tr119:
1745
- #line 66 "ext/ragel/base_lexer.rl"
1761
+ #line 69 "ext/ragel/base_lexer.rl"
1746
1762
  {te = p+1;{
1747
1763
  p--;
1748
1764
  {( state->cs) = ( state->stack)[--( state->top)];goto _again;}
1749
1765
  }}
1750
1766
  goto st75;
1751
1767
  tr120:
1752
- #line 480 "ext/ragel/base_lexer.rl"
1768
+ #line 494 "ext/ragel/base_lexer.rl"
1753
1769
  {te = p;p--;{
1754
1770
  callback_simple(id_on_string_squote);
1755
1771
 
@@ -1766,7 +1782,7 @@ st75:
1766
1782
  case 75:
1767
1783
  #line 1 "NONE"
1768
1784
  {ts = p;}
1769
- #line 1770 "ext/c/lexer.c"
1785
+ #line 1786 "ext/c/lexer.c"
1770
1786
  switch( (*p) ) {
1771
1787
  case 13: goto tr119;
1772
1788
  case 32: goto tr119;
@@ -1788,7 +1804,7 @@ case 76:
1788
1804
  goto tr120;
1789
1805
  goto st76;
1790
1806
  tr121:
1791
- #line 66 "ext/ragel/base_lexer.rl"
1807
+ #line 69 "ext/ragel/base_lexer.rl"
1792
1808
  {te = p+1;{
1793
1809
  p--;
1794
1810
  {( state->cs) = ( state->stack)[--( state->top)];goto _again;}
@@ -1796,7 +1812,7 @@ tr121:
1796
1812
  goto st77;
1797
1813
  tr122:
1798
1814
  ( state->cs) = 77;
1799
- #line 502 "ext/ragel/base_lexer.rl"
1815
+ #line 516 "ext/ragel/base_lexer.rl"
1800
1816
  {te = p+1;{
1801
1817
  callback_simple(id_on_string_dquote);
1802
1818
 
@@ -1805,7 +1821,7 @@ tr122:
1805
1821
  goto _again;
1806
1822
  tr123:
1807
1823
  ( state->cs) = 77;
1808
- #line 496 "ext/ragel/base_lexer.rl"
1824
+ #line 510 "ext/ragel/base_lexer.rl"
1809
1825
  {te = p+1;{
1810
1826
  callback_simple(id_on_string_squote);
1811
1827
 
@@ -1820,77 +1836,66 @@ st77:
1820
1836
  case 77:
1821
1837
  #line 1 "NONE"
1822
1838
  {ts = p;}
1823
- #line 1824 "ext/c/lexer.c"
1839
+ #line 1840 "ext/c/lexer.c"
1824
1840
  switch( (*p) ) {
1825
1841
  case 34: goto tr122;
1826
1842
  case 39: goto tr123;
1827
1843
  }
1828
1844
  goto tr121;
1829
1845
  tr125:
1830
- #line 554 "ext/ragel/base_lexer.rl"
1846
+ #line 574 "ext/ragel/base_lexer.rl"
1831
1847
  {te = p+1;}
1832
1848
  goto st78;
1833
1849
  tr126:
1834
- #line 62 "ext/ragel/base_lexer.rl"
1850
+ #line 65 "ext/ragel/base_lexer.rl"
1835
1851
  {te = p+1;{
1836
1852
  advance_line(1);
1837
1853
  }}
1838
1854
  goto st78;
1839
1855
  tr129:
1840
- #line 526 "ext/ragel/base_lexer.rl"
1856
+ #line 525 "ext/ragel/base_lexer.rl"
1841
1857
  {te = p+1;{
1842
- {( state->stack)[( state->top)++] = 78; goto st73;}
1843
- }}
1858
+ {( state->stack)[( state->top)++] = 78; goto st73;}
1859
+ }}
1844
1860
  goto st78;
1845
1861
  tr130:
1846
1862
  ( state->cs) = 78;
1847
- #line 531 "ext/ragel/base_lexer.rl"
1863
+ #line 566 "ext/ragel/base_lexer.rl"
1848
1864
  {te = p+1;{
1849
1865
  callback_simple(id_on_element_open_end);
1850
1866
 
1851
- if ( html_script_p() )
1852
- {
1853
- ( state->cs) = 86;
1854
- }
1855
- else if ( html_style_p() )
1856
- {
1857
- ( state->cs) = 90;
1858
- }
1859
- else
1860
- {
1861
- ( state->cs) = 32;
1862
- }
1867
+ ( state->cs) = 32;
1863
1868
  }}
1864
1869
  goto _again;
1865
1870
  tr131:
1866
- #line 521 "ext/ragel/base_lexer.rl"
1871
+ #line 560 "ext/ragel/base_lexer.rl"
1867
1872
  {te = p;p--;{
1868
1873
  callback(id_on_attribute, data, encoding, ts, te);
1869
1874
  }}
1870
1875
  goto st78;
1871
1876
  tr132:
1872
- #line 517 "ext/ragel/base_lexer.rl"
1877
+ #line 556 "ext/ragel/base_lexer.rl"
1873
1878
  {te = p+1;{
1874
1879
  callback(id_on_attribute_ns, data, encoding, ts, te - 1);
1875
1880
  }}
1876
1881
  goto st78;
1877
1882
  tr133:
1878
- #line 62 "ext/ragel/base_lexer.rl"
1883
+ #line 65 "ext/ragel/base_lexer.rl"
1879
1884
  {te = p;p--;{
1880
1885
  advance_line(1);
1881
1886
  }}
1882
1887
  goto st78;
1883
1888
  tr134:
1884
- #line 554 "ext/ragel/base_lexer.rl"
1889
+ #line 574 "ext/ragel/base_lexer.rl"
1885
1890
  {te = p;p--;}
1886
1891
  goto st78;
1887
1892
  tr135:
1888
1893
  ( state->cs) = 78;
1889
- #line 549 "ext/ragel/base_lexer.rl"
1894
+ #line 546 "ext/ragel/base_lexer.rl"
1890
1895
  {te = p+1;{
1891
- callback_simple(id_on_element_end);
1892
- ( state->cs) = 32;
1893
- }}
1896
+ callback_simple(id_on_element_end);
1897
+ ( state->cs) = 32;
1898
+ }}
1894
1899
  goto _again;
1895
1900
  st78:
1896
1901
  #line 1 "NONE"
@@ -1900,7 +1905,7 @@ st78:
1900
1905
  case 78:
1901
1906
  #line 1 "NONE"
1902
1907
  {ts = p;}
1903
- #line 1904 "ext/c/lexer.c"
1908
+ #line 1909 "ext/c/lexer.c"
1904
1909
  switch( (*p) ) {
1905
1910
  case 10: goto tr126;
1906
1911
  case 13: goto st80;
@@ -1956,9 +1961,132 @@ case 81:
1956
1961
  if ( (*p) == 62 )
1957
1962
  goto tr135;
1958
1963
  goto tr134;
1964
+ tr137:
1965
+ #line 607 "ext/ragel/base_lexer.rl"
1966
+ {te = p+1;}
1967
+ goto st82;
1959
1968
  tr138:
1969
+ #line 65 "ext/ragel/base_lexer.rl"
1970
+ {te = p+1;{
1971
+ advance_line(1);
1972
+ }}
1973
+ goto st82;
1974
+ tr141:
1975
+ #line 525 "ext/ragel/base_lexer.rl"
1976
+ {te = p+1;{
1977
+ {( state->stack)[( state->top)++] = 82; goto st73;}
1978
+ }}
1979
+ goto st82;
1980
+ tr142:
1960
1981
  ( state->cs) = 82;
1961
- #line 591 "ext/ragel/base_lexer.rl"
1982
+ #line 588 "ext/ragel/base_lexer.rl"
1983
+ {te = p+1;{
1984
+ callback_simple(id_on_element_open_end);
1985
+
1986
+ if ( html_script_p() )
1987
+ {
1988
+ ( state->cs) = 90;
1989
+ }
1990
+ else if ( html_style_p() )
1991
+ {
1992
+ ( state->cs) = 94;
1993
+ }
1994
+ else
1995
+ {
1996
+ ( state->cs) = 32;
1997
+ }
1998
+ }}
1999
+ goto _again;
2000
+ tr143:
2001
+ #line 582 "ext/ragel/base_lexer.rl"
2002
+ {te = p;p--;{
2003
+ callback(id_on_attribute, data, encoding, ts, te);
2004
+ }}
2005
+ goto st82;
2006
+ tr144:
2007
+ #line 65 "ext/ragel/base_lexer.rl"
2008
+ {te = p;p--;{
2009
+ advance_line(1);
2010
+ }}
2011
+ goto st82;
2012
+ tr145:
2013
+ #line 607 "ext/ragel/base_lexer.rl"
2014
+ {te = p;p--;}
2015
+ goto st82;
2016
+ tr146:
2017
+ ( state->cs) = 82;
2018
+ #line 546 "ext/ragel/base_lexer.rl"
2019
+ {te = p+1;{
2020
+ callback_simple(id_on_element_end);
2021
+ ( state->cs) = 32;
2022
+ }}
2023
+ goto _again;
2024
+ st82:
2025
+ #line 1 "NONE"
2026
+ {ts = 0;}
2027
+ if ( ++p == pe )
2028
+ goto _test_eof82;
2029
+ case 82:
2030
+ #line 1 "NONE"
2031
+ {ts = p;}
2032
+ #line 2033 "ext/c/lexer.c"
2033
+ switch( (*p) ) {
2034
+ case 10: goto tr138;
2035
+ case 13: goto st84;
2036
+ case 47: goto st85;
2037
+ case 61: goto tr141;
2038
+ case 62: goto tr142;
2039
+ case 96: goto tr137;
2040
+ }
2041
+ if ( (*p) < 59 ) {
2042
+ if ( 0 <= (*p) && (*p) <= 44 )
2043
+ goto tr137;
2044
+ } else if ( (*p) > 64 ) {
2045
+ if ( (*p) > 94 ) {
2046
+ if ( 123 <= (*p) )
2047
+ goto tr137;
2048
+ } else if ( (*p) >= 91 )
2049
+ goto tr137;
2050
+ } else
2051
+ goto tr137;
2052
+ goto st83;
2053
+ st83:
2054
+ if ( ++p == pe )
2055
+ goto _test_eof83;
2056
+ case 83:
2057
+ switch( (*p) ) {
2058
+ case 47: goto tr143;
2059
+ case 96: goto tr143;
2060
+ }
2061
+ if ( (*p) < 59 ) {
2062
+ if ( 0 <= (*p) && (*p) <= 44 )
2063
+ goto tr143;
2064
+ } else if ( (*p) > 64 ) {
2065
+ if ( (*p) > 94 ) {
2066
+ if ( 123 <= (*p) )
2067
+ goto tr143;
2068
+ } else if ( (*p) >= 91 )
2069
+ goto tr143;
2070
+ } else
2071
+ goto tr143;
2072
+ goto st83;
2073
+ st84:
2074
+ if ( ++p == pe )
2075
+ goto _test_eof84;
2076
+ case 84:
2077
+ if ( (*p) == 10 )
2078
+ goto tr138;
2079
+ goto tr144;
2080
+ st85:
2081
+ if ( ++p == pe )
2082
+ goto _test_eof85;
2083
+ case 85:
2084
+ if ( (*p) == 62 )
2085
+ goto tr146;
2086
+ goto tr145;
2087
+ tr149:
2088
+ ( state->cs) = 86;
2089
+ #line 644 "ext/ragel/base_lexer.rl"
1962
2090
  {te = p;p--;{
1963
2091
  callback(id_on_text, data, encoding, ts, te);
1964
2092
 
@@ -1972,9 +2100,9 @@ tr138:
1972
2100
  ( state->cs) = 32;
1973
2101
  }}
1974
2102
  goto _again;
1975
- tr140:
1976
- ( state->cs) = 82;
1977
- #line 605 "ext/ragel/base_lexer.rl"
2103
+ tr151:
2104
+ ( state->cs) = 86;
2105
+ #line 658 "ext/ragel/base_lexer.rl"
1978
2106
  {te = p+1;{
1979
2107
  callback(id_on_text, data, encoding, ts, mark);
1980
2108
 
@@ -1991,9 +2119,9 @@ tr140:
1991
2119
  ( state->cs) = 32;
1992
2120
  }}
1993
2121
  goto _again;
1994
- tr141:
1995
- ( state->cs) = 82;
1996
- #line 591 "ext/ragel/base_lexer.rl"
2122
+ tr152:
2123
+ ( state->cs) = 86;
2124
+ #line 644 "ext/ragel/base_lexer.rl"
1997
2125
  {te = p+1;{
1998
2126
  callback(id_on_text, data, encoding, ts, te);
1999
2127
 
@@ -2007,100 +2135,100 @@ tr141:
2007
2135
  ( state->cs) = 32;
2008
2136
  }}
2009
2137
  goto _again;
2010
- st82:
2138
+ st86:
2011
2139
  #line 1 "NONE"
2012
2140
  {ts = 0;}
2013
2141
  if ( ++p == pe )
2014
- goto _test_eof82;
2015
- case 82:
2142
+ goto _test_eof86;
2143
+ case 86:
2016
2144
  #line 1 "NONE"
2017
2145
  {ts = p;}
2018
- #line 2019 "ext/c/lexer.c"
2146
+ #line 2147 "ext/c/lexer.c"
2019
2147
  if ( (*p) == 60 )
2020
- goto tr137;
2021
- goto tr136;
2022
- tr136:
2023
- #line 58 "ext/ragel/base_lexer.rl"
2148
+ goto tr148;
2149
+ goto tr147;
2150
+ tr147:
2151
+ #line 61 "ext/ragel/base_lexer.rl"
2024
2152
  {
2025
2153
  if ( (*p) == '\n' ) lines++;
2026
2154
  }
2027
- goto st83;
2028
- st83:
2155
+ goto st87;
2156
+ st87:
2029
2157
  if ( ++p == pe )
2030
- goto _test_eof83;
2031
- case 83:
2032
- #line 2033 "ext/c/lexer.c"
2158
+ goto _test_eof87;
2159
+ case 87:
2160
+ #line 2161 "ext/c/lexer.c"
2033
2161
  if ( (*p) == 60 )
2034
- goto tr139;
2035
- goto tr136;
2036
- tr139:
2037
- #line 58 "ext/ragel/base_lexer.rl"
2162
+ goto tr150;
2163
+ goto tr147;
2164
+ tr150:
2165
+ #line 61 "ext/ragel/base_lexer.rl"
2038
2166
  {
2039
2167
  if ( (*p) == '\n' ) lines++;
2040
2168
  }
2041
- #line 605 "ext/ragel/base_lexer.rl"
2169
+ #line 658 "ext/ragel/base_lexer.rl"
2042
2170
  { mark = p; }
2043
- goto st84;
2044
- st84:
2171
+ goto st88;
2172
+ st88:
2045
2173
  if ( ++p == pe )
2046
- goto _test_eof84;
2047
- case 84:
2048
- #line 2049 "ext/c/lexer.c"
2174
+ goto _test_eof88;
2175
+ case 88:
2176
+ #line 2177 "ext/c/lexer.c"
2049
2177
  switch( (*p) ) {
2050
- case 60: goto tr139;
2051
- case 64: goto tr136;
2052
- case 96: goto tr136;
2178
+ case 60: goto tr150;
2179
+ case 64: goto tr147;
2180
+ case 96: goto tr147;
2053
2181
  }
2054
2182
  if ( (*p) < 58 ) {
2055
2183
  if ( (*p) > 32 ) {
2056
2184
  if ( 34 <= (*p) && (*p) <= 44 )
2057
- goto tr136;
2185
+ goto tr147;
2058
2186
  } else if ( (*p) >= 0 )
2059
- goto tr136;
2187
+ goto tr147;
2060
2188
  } else if ( (*p) > 62 ) {
2061
2189
  if ( (*p) > 94 ) {
2062
2190
  if ( 123 <= (*p) )
2063
- goto tr136;
2191
+ goto tr147;
2064
2192
  } else if ( (*p) >= 91 )
2065
- goto tr136;
2193
+ goto tr147;
2066
2194
  } else
2067
- goto tr136;
2068
- goto tr140;
2069
- tr137:
2070
- #line 58 "ext/ragel/base_lexer.rl"
2195
+ goto tr147;
2196
+ goto tr151;
2197
+ tr148:
2198
+ #line 61 "ext/ragel/base_lexer.rl"
2071
2199
  {
2072
2200
  if ( (*p) == '\n' ) lines++;
2073
2201
  }
2074
- #line 605 "ext/ragel/base_lexer.rl"
2202
+ #line 658 "ext/ragel/base_lexer.rl"
2075
2203
  { mark = p; }
2076
- goto st85;
2077
- st85:
2204
+ goto st89;
2205
+ st89:
2078
2206
  if ( ++p == pe )
2079
- goto _test_eof85;
2080
- case 85:
2081
- #line 2082 "ext/c/lexer.c"
2207
+ goto _test_eof89;
2208
+ case 89:
2209
+ #line 2210 "ext/c/lexer.c"
2082
2210
  switch( (*p) ) {
2083
- case 60: goto tr139;
2084
- case 64: goto tr136;
2085
- case 96: goto tr136;
2211
+ case 60: goto tr150;
2212
+ case 64: goto tr147;
2213
+ case 96: goto tr147;
2086
2214
  }
2087
2215
  if ( (*p) < 58 ) {
2088
2216
  if ( (*p) > 32 ) {
2089
2217
  if ( 34 <= (*p) && (*p) <= 44 )
2090
- goto tr136;
2218
+ goto tr147;
2091
2219
  } else if ( (*p) >= 0 )
2092
- goto tr136;
2220
+ goto tr147;
2093
2221
  } else if ( (*p) > 62 ) {
2094
2222
  if ( (*p) > 94 ) {
2095
2223
  if ( 123 <= (*p) )
2096
- goto tr136;
2224
+ goto tr147;
2097
2225
  } else if ( (*p) >= 91 )
2098
- goto tr136;
2226
+ goto tr147;
2099
2227
  } else
2100
- goto tr136;
2101
- goto tr141;
2228
+ goto tr147;
2229
+ goto tr152;
2102
2230
  tr24:
2103
- #line 579 "ext/ragel/base_lexer.rl"
2231
+ #line 632 "ext/ragel/base_lexer.rl"
2104
2232
  {{p = ((te))-1;}{
2105
2233
  callback(id_on_text, data, encoding, ts, te);
2106
2234
 
@@ -2111,18 +2239,18 @@ tr24:
2111
2239
  lines = 0;
2112
2240
  }
2113
2241
  }}
2114
- goto st86;
2242
+ goto st90;
2115
2243
  tr31:
2116
- ( state->cs) = 86;
2117
- #line 381 "ext/ragel/base_lexer.rl"
2244
+ ( state->cs) = 90;
2245
+ #line 384 "ext/ragel/base_lexer.rl"
2118
2246
  {te = p+1;{
2119
2247
  callback_simple(id_on_element_end);
2120
2248
 
2121
2249
  ( state->cs) = 32;
2122
2250
  }}
2123
2251
  goto _again;
2124
- tr144:
2125
- #line 579 "ext/ragel/base_lexer.rl"
2252
+ tr155:
2253
+ #line 632 "ext/ragel/base_lexer.rl"
2126
2254
  {te = p;p--;{
2127
2255
  callback(id_on_text, data, encoding, ts, te);
2128
2256
 
@@ -2133,51 +2261,51 @@ tr144:
2133
2261
  lines = 0;
2134
2262
  }
2135
2263
  }}
2136
- goto st86;
2137
- st86:
2264
+ goto st90;
2265
+ st90:
2138
2266
  #line 1 "NONE"
2139
2267
  {ts = 0;}
2140
2268
  if ( ++p == pe )
2141
- goto _test_eof86;
2142
- case 86:
2269
+ goto _test_eof90;
2270
+ case 90:
2143
2271
  #line 1 "NONE"
2144
2272
  {ts = p;}
2145
- #line 2146 "ext/c/lexer.c"
2273
+ #line 2274 "ext/c/lexer.c"
2146
2274
  if ( (*p) == 60 )
2147
- goto tr143;
2148
- goto tr142;
2149
- tr142:
2150
- #line 58 "ext/ragel/base_lexer.rl"
2275
+ goto tr154;
2276
+ goto tr153;
2277
+ tr153:
2278
+ #line 61 "ext/ragel/base_lexer.rl"
2151
2279
  {
2152
2280
  if ( (*p) == '\n' ) lines++;
2153
2281
  }
2154
- goto st87;
2155
- st87:
2282
+ goto st91;
2283
+ st91:
2156
2284
  if ( ++p == pe )
2157
- goto _test_eof87;
2158
- case 87:
2159
- #line 2160 "ext/c/lexer.c"
2285
+ goto _test_eof91;
2286
+ case 91:
2287
+ #line 2288 "ext/c/lexer.c"
2160
2288
  if ( (*p) == 60 )
2161
- goto tr144;
2162
- goto tr142;
2163
- tr143:
2289
+ goto tr155;
2290
+ goto tr153;
2291
+ tr154:
2164
2292
  #line 1 "NONE"
2165
2293
  {te = p+1;}
2166
- #line 58 "ext/ragel/base_lexer.rl"
2294
+ #line 61 "ext/ragel/base_lexer.rl"
2167
2295
  {
2168
2296
  if ( (*p) == '\n' ) lines++;
2169
2297
  }
2170
- goto st88;
2171
- st88:
2298
+ goto st92;
2299
+ st92:
2172
2300
  if ( ++p == pe )
2173
- goto _test_eof88;
2174
- case 88:
2175
- #line 2176 "ext/c/lexer.c"
2301
+ goto _test_eof92;
2302
+ case 92:
2303
+ #line 2304 "ext/c/lexer.c"
2176
2304
  switch( (*p) ) {
2177
2305
  case 47: goto st19;
2178
- case 60: goto tr146;
2306
+ case 60: goto tr157;
2179
2307
  }
2180
- goto tr144;
2308
+ goto tr155;
2181
2309
  st19:
2182
2310
  if ( ++p == pe )
2183
2311
  goto _test_eof19;
@@ -2227,22 +2355,22 @@ case 25:
2227
2355
  if ( (*p) == 62 )
2228
2356
  goto tr31;
2229
2357
  goto tr24;
2230
- tr146:
2231
- #line 58 "ext/ragel/base_lexer.rl"
2358
+ tr157:
2359
+ #line 61 "ext/ragel/base_lexer.rl"
2232
2360
  {
2233
2361
  if ( (*p) == '\n' ) lines++;
2234
2362
  }
2235
- goto st89;
2236
- st89:
2363
+ goto st93;
2364
+ st93:
2237
2365
  if ( ++p == pe )
2238
- goto _test_eof89;
2239
- case 89:
2240
- #line 2241 "ext/c/lexer.c"
2366
+ goto _test_eof93;
2367
+ case 93:
2368
+ #line 2369 "ext/c/lexer.c"
2241
2369
  if ( (*p) == 60 )
2242
- goto tr146;
2243
- goto tr144;
2370
+ goto tr157;
2371
+ goto tr155;
2244
2372
  tr32:
2245
- #line 579 "ext/ragel/base_lexer.rl"
2373
+ #line 632 "ext/ragel/base_lexer.rl"
2246
2374
  {{p = ((te))-1;}{
2247
2375
  callback(id_on_text, data, encoding, ts, te);
2248
2376
 
@@ -2253,18 +2381,18 @@ tr32:
2253
2381
  lines = 0;
2254
2382
  }
2255
2383
  }}
2256
- goto st90;
2384
+ goto st94;
2257
2385
  tr38:
2258
- ( state->cs) = 90;
2259
- #line 381 "ext/ragel/base_lexer.rl"
2386
+ ( state->cs) = 94;
2387
+ #line 384 "ext/ragel/base_lexer.rl"
2260
2388
  {te = p+1;{
2261
2389
  callback_simple(id_on_element_end);
2262
2390
 
2263
2391
  ( state->cs) = 32;
2264
2392
  }}
2265
2393
  goto _again;
2266
- tr149:
2267
- #line 579 "ext/ragel/base_lexer.rl"
2394
+ tr160:
2395
+ #line 632 "ext/ragel/base_lexer.rl"
2268
2396
  {te = p;p--;{
2269
2397
  callback(id_on_text, data, encoding, ts, te);
2270
2398
 
@@ -2275,51 +2403,51 @@ tr149:
2275
2403
  lines = 0;
2276
2404
  }
2277
2405
  }}
2278
- goto st90;
2279
- st90:
2406
+ goto st94;
2407
+ st94:
2280
2408
  #line 1 "NONE"
2281
2409
  {ts = 0;}
2282
2410
  if ( ++p == pe )
2283
- goto _test_eof90;
2284
- case 90:
2411
+ goto _test_eof94;
2412
+ case 94:
2285
2413
  #line 1 "NONE"
2286
2414
  {ts = p;}
2287
- #line 2288 "ext/c/lexer.c"
2415
+ #line 2416 "ext/c/lexer.c"
2288
2416
  if ( (*p) == 60 )
2289
- goto tr148;
2290
- goto tr147;
2291
- tr147:
2292
- #line 58 "ext/ragel/base_lexer.rl"
2417
+ goto tr159;
2418
+ goto tr158;
2419
+ tr158:
2420
+ #line 61 "ext/ragel/base_lexer.rl"
2293
2421
  {
2294
2422
  if ( (*p) == '\n' ) lines++;
2295
2423
  }
2296
- goto st91;
2297
- st91:
2424
+ goto st95;
2425
+ st95:
2298
2426
  if ( ++p == pe )
2299
- goto _test_eof91;
2300
- case 91:
2301
- #line 2302 "ext/c/lexer.c"
2427
+ goto _test_eof95;
2428
+ case 95:
2429
+ #line 2430 "ext/c/lexer.c"
2302
2430
  if ( (*p) == 60 )
2303
- goto tr149;
2304
- goto tr147;
2305
- tr148:
2431
+ goto tr160;
2432
+ goto tr158;
2433
+ tr159:
2306
2434
  #line 1 "NONE"
2307
2435
  {te = p+1;}
2308
- #line 58 "ext/ragel/base_lexer.rl"
2436
+ #line 61 "ext/ragel/base_lexer.rl"
2309
2437
  {
2310
2438
  if ( (*p) == '\n' ) lines++;
2311
2439
  }
2312
- goto st92;
2313
- st92:
2440
+ goto st96;
2441
+ st96:
2314
2442
  if ( ++p == pe )
2315
- goto _test_eof92;
2316
- case 92:
2317
- #line 2318 "ext/c/lexer.c"
2443
+ goto _test_eof96;
2444
+ case 96:
2445
+ #line 2446 "ext/c/lexer.c"
2318
2446
  switch( (*p) ) {
2319
2447
  case 47: goto st26;
2320
- case 60: goto tr151;
2448
+ case 60: goto tr162;
2321
2449
  }
2322
- goto tr149;
2450
+ goto tr160;
2323
2451
  st26:
2324
2452
  if ( ++p == pe )
2325
2453
  goto _test_eof26;
@@ -2362,20 +2490,20 @@ case 31:
2362
2490
  if ( (*p) == 62 )
2363
2491
  goto tr38;
2364
2492
  goto tr32;
2365
- tr151:
2366
- #line 58 "ext/ragel/base_lexer.rl"
2493
+ tr162:
2494
+ #line 61 "ext/ragel/base_lexer.rl"
2367
2495
  {
2368
2496
  if ( (*p) == '\n' ) lines++;
2369
2497
  }
2370
- goto st93;
2371
- st93:
2498
+ goto st97;
2499
+ st97:
2372
2500
  if ( ++p == pe )
2373
- goto _test_eof93;
2374
- case 93:
2375
- #line 2376 "ext/c/lexer.c"
2501
+ goto _test_eof97;
2502
+ case 97:
2503
+ #line 2504 "ext/c/lexer.c"
2376
2504
  if ( (*p) == 60 )
2377
- goto tr151;
2378
- goto tr149;
2505
+ goto tr162;
2506
+ goto tr160;
2379
2507
  }
2380
2508
  _test_eof32: ( state->cs) = 32; goto _test_eof;
2381
2509
  _test_eof33: ( state->cs) = 33; goto _test_eof;
@@ -2452,6 +2580,10 @@ case 93:
2452
2580
  _test_eof86: ( state->cs) = 86; goto _test_eof;
2453
2581
  _test_eof87: ( state->cs) = 87; goto _test_eof;
2454
2582
  _test_eof88: ( state->cs) = 88; goto _test_eof;
2583
+ _test_eof89: ( state->cs) = 89; goto _test_eof;
2584
+ _test_eof90: ( state->cs) = 90; goto _test_eof;
2585
+ _test_eof91: ( state->cs) = 91; goto _test_eof;
2586
+ _test_eof92: ( state->cs) = 92; goto _test_eof;
2455
2587
  _test_eof19: ( state->cs) = 19; goto _test_eof;
2456
2588
  _test_eof20: ( state->cs) = 20; goto _test_eof;
2457
2589
  _test_eof21: ( state->cs) = 21; goto _test_eof;
@@ -2459,17 +2591,17 @@ case 93:
2459
2591
  _test_eof23: ( state->cs) = 23; goto _test_eof;
2460
2592
  _test_eof24: ( state->cs) = 24; goto _test_eof;
2461
2593
  _test_eof25: ( state->cs) = 25; goto _test_eof;
2462
- _test_eof89: ( state->cs) = 89; goto _test_eof;
2463
- _test_eof90: ( state->cs) = 90; goto _test_eof;
2464
- _test_eof91: ( state->cs) = 91; goto _test_eof;
2465
- _test_eof92: ( state->cs) = 92; goto _test_eof;
2594
+ _test_eof93: ( state->cs) = 93; goto _test_eof;
2595
+ _test_eof94: ( state->cs) = 94; goto _test_eof;
2596
+ _test_eof95: ( state->cs) = 95; goto _test_eof;
2597
+ _test_eof96: ( state->cs) = 96; goto _test_eof;
2466
2598
  _test_eof26: ( state->cs) = 26; goto _test_eof;
2467
2599
  _test_eof27: ( state->cs) = 27; goto _test_eof;
2468
2600
  _test_eof28: ( state->cs) = 28; goto _test_eof;
2469
2601
  _test_eof29: ( state->cs) = 29; goto _test_eof;
2470
2602
  _test_eof30: ( state->cs) = 30; goto _test_eof;
2471
2603
  _test_eof31: ( state->cs) = 31; goto _test_eof;
2472
- _test_eof93: ( state->cs) = 93; goto _test_eof;
2604
+ _test_eof97: ( state->cs) = 97; goto _test_eof;
2473
2605
 
2474
2606
  _test_eof: {}
2475
2607
  if ( p == eof )
@@ -2528,11 +2660,14 @@ case 93:
2528
2660
  case 79: goto tr131;
2529
2661
  case 80: goto tr133;
2530
2662
  case 81: goto tr134;
2531
- case 83: goto tr138;
2532
- case 84: goto tr138;
2533
- case 85: goto tr138;
2534
- case 87: goto tr144;
2535
- case 88: goto tr144;
2663
+ case 83: goto tr143;
2664
+ case 84: goto tr144;
2665
+ case 85: goto tr145;
2666
+ case 87: goto tr149;
2667
+ case 88: goto tr149;
2668
+ case 89: goto tr149;
2669
+ case 91: goto tr155;
2670
+ case 92: goto tr155;
2536
2671
  case 19: goto tr24;
2537
2672
  case 20: goto tr24;
2538
2673
  case 21: goto tr24;
@@ -2540,16 +2675,16 @@ case 93:
2540
2675
  case 23: goto tr24;
2541
2676
  case 24: goto tr24;
2542
2677
  case 25: goto tr24;
2543
- case 89: goto tr144;
2544
- case 91: goto tr149;
2545
- case 92: goto tr149;
2678
+ case 93: goto tr155;
2679
+ case 95: goto tr160;
2680
+ case 96: goto tr160;
2546
2681
  case 26: goto tr32;
2547
2682
  case 27: goto tr32;
2548
2683
  case 28: goto tr32;
2549
2684
  case 29: goto tr32;
2550
2685
  case 30: goto tr32;
2551
2686
  case 31: goto tr32;
2552
- case 93: goto tr149;
2687
+ case 97: goto tr160;
2553
2688
  }
2554
2689
  }
2555
2690