oga 0.2.3 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0a600ef4530a2b62bbec7f94c18bbb2256a0c863
4
- data.tar.gz: 69e4f07389226d4abdea959c238d08a548570c09
3
+ metadata.gz: 9f8a4c2a027e02e07a94874d17bb49492bd09460
4
+ data.tar.gz: 2798515da813f4ef194075131846affbb95e25ac
5
5
  SHA512:
6
- metadata.gz: 665d474cdb5414c29c92bb16b4bea1bffe5ffebaa7e09c8b861ac8a6020f7ea0ae632920ef18d311021f974ba072d16f4bb7e70a26c2e42b763f9fd41974a010
7
- data.tar.gz: eb9f04d4192d9812d8ae294602fbfb513b96062f2f8ccd686b3d9d1cd9c0d8b70aa841d7262ae446834e51a3636fc713b85ef9a4b83b8ca97d7700d353aad8e3
6
+ metadata.gz: 8b567514db0296d5c16a815d769d0a38c1f70949d198f971338d25fe00c95b0ff513c698c65b63a5e965097502d51945a81a695f6ae208c1dfb6a7c41b43f602
7
+ data.tar.gz: b69129e2b101db42009f8b9f1cac4cc18e3f54f83a78eb6b990689e520e4d027e3c1e47865d76968e3c59f0311bf30fa0362472a151dca2be9b473fa03189509
data/.yardopts CHANGED
@@ -11,3 +11,4 @@
11
11
  ./doc/*.md
12
12
  LICENSE
13
13
  CONTRIBUTING.md
14
+ CHANGELOG.md
data/README.md CHANGED
@@ -76,15 +76,45 @@ Parse a string of XML using the SAX parser:
76
76
 
77
77
  Querying a document using XPath:
78
78
 
79
- document = Oga.parse_xml('<people><person>Alice</person></people>')
80
-
81
- document.xpath('string(people/person)') # => "Alice"
82
-
83
- Querying a document using CSS:
84
-
85
- document = Oga.parse_xml('<people><person>Alice</person></people>')
79
+ document = Oga.parse_xml <<-EOF
80
+ <people>
81
+ <person id="1">
82
+ <name>Alice</name>
83
+ <age>28</name>
84
+ </person>
85
+ </people>
86
+ EOF
87
+
88
+ # The "xpath" method returns an enumerable (Oga::XML::NodeSet) that you can
89
+ # iterate over.
90
+ document.xpath('people/person').each do |person|
91
+ puts person.get('id') # => "1"
92
+
93
+ # The "at_xpath" method returns a single node from a set, it's the same as
94
+ # person.xpath('name').first.
95
+ puts person.at_xpath('name').text # => "Alice"
96
+ end
86
97
 
87
- document.css('people person') # => NodeSet(Element(name: "person" ...))
98
+ Querying the same document using CSS:
99
+
100
+ document = Oga.parse_xml <<-EOF
101
+ <people>
102
+ <person id="1">
103
+ <name>Alice</name>
104
+ <age>28</name>
105
+ </person>
106
+ </people>
107
+ EOF
108
+
109
+ # The "css" method returns an enumerable (Oga::XML::NodeSet) that you can
110
+ # iterate over.
111
+ document.css('people person').each do |person|
112
+ puts person.get('id') # => "1"
113
+
114
+ # The "at_css" method returns a single node from a set, it's the same as
115
+ # person.css('name').first.
116
+ puts person.at_css('name').text # => "Alice"
117
+ end
88
118
 
89
119
  Modifying a document and serializing it back to XML:
90
120
 
@@ -1,13 +1,11 @@
1
1
  require 'mkmf'
2
2
 
3
- have_header('ruby.h')
4
-
5
- $CFLAGS << ' -Wextra -Wall -pedantic'
3
+ if RbConfig::CONFIG['CC'] =~ /clang|gcc/
4
+ $CFLAGS << ' -pedantic'
5
+ end
6
6
 
7
7
  if ENV['DEBUG']
8
8
  $CFLAGS << ' -O0 -g'
9
- else
10
- $CFLAGS << ' -O3'
11
9
  end
12
10
 
13
11
  create_makefile('liboga')
@@ -41,7 +41,7 @@ ID id_literal_html_element_p;
41
41
  */
42
42
  void liboga_xml_lexer_callback(
43
43
  VALUE self,
44
- VALUE name,
44
+ ID name,
45
45
  rb_encoding *encoding,
46
46
  const char *ts,
47
47
  const char *te
@@ -66,21 +66,21 @@ void liboga_xml_lexer_callback_simple(VALUE self, VALUE name)
66
66
 
67
67
 
68
68
  #line 69 "ext/c/lexer.c"
69
- static const int c_lexer_start = 27;
70
- static const int c_lexer_first_final = 27;
69
+ static const int c_lexer_start = 26;
70
+ static const int c_lexer_first_final = 26;
71
71
  static const int c_lexer_error = 0;
72
72
 
73
- static const int c_lexer_en_proc_ins_body = 33;
74
- static const int c_lexer_en_string_squote = 35;
75
- static const int c_lexer_en_string_dquote = 37;
76
- static const int c_lexer_en_doctype_inline = 39;
77
- static const int c_lexer_en_doctype = 41;
78
- static const int c_lexer_en_xml_decl = 53;
79
- static const int c_lexer_en_element_name = 56;
80
- static const int c_lexer_en_element_head = 58;
73
+ static const int c_lexer_en_proc_ins_body = 32;
74
+ static const int c_lexer_en_string_squote = 34;
75
+ static const int c_lexer_en_string_dquote = 36;
76
+ static const int c_lexer_en_doctype_inline = 38;
77
+ static const int c_lexer_en_doctype = 40;
78
+ static const int c_lexer_en_xml_decl = 52;
79
+ static const int c_lexer_en_element_name = 55;
80
+ static const int c_lexer_en_element_head = 57;
81
81
  static const int c_lexer_en_text = 60;
82
82
  static const int c_lexer_en_literal_html_element = 64;
83
- static const int c_lexer_en_main = 27;
83
+ static const int c_lexer_en_main = 26;
84
84
 
85
85
 
86
86
  #line 65 "ext/c/lexer.rl"
@@ -95,14 +95,13 @@ static const int c_lexer_en_main = 27;
95
95
  VALUE oga_xml_lexer_advance(VALUE self, VALUE data_block)
96
96
  {
97
97
  OgaLexerState *state;
98
+ int lines;
98
99
 
99
100
  /* Make sure that all data passed back to Ruby has the proper encoding. */
100
101
  rb_encoding *encoding = rb_enc_get(data_block);
101
102
 
102
103
  char *data_str_val = StringValueCStr(data_block);
103
104
 
104
- Data_Get_Struct(self, OgaLexerState, state);
105
-
106
105
  const char *p = data_str_val;
107
106
  const char *pe = data_str_val + strlen(data_str_val);
108
107
  const char *eof = pe;
@@ -110,8 +109,6 @@ VALUE oga_xml_lexer_advance(VALUE self, VALUE data_block)
110
109
  const char *te = 0;
111
110
  const char *mark = 0;
112
111
 
113
- int lines = state->lines;
114
-
115
112
  ID id_advance_line = rb_intern("advance_line");
116
113
  ID id_on_attribute = rb_intern("on_attribute");
117
114
  ID id_on_attribute_ns = rb_intern("on_attribute_ns");
@@ -137,8 +134,12 @@ VALUE oga_xml_lexer_advance(VALUE self, VALUE data_block)
137
134
  ID id_on_xml_decl_end = rb_intern("on_xml_decl_end");
138
135
  ID id_on_xml_decl_start = rb_intern("on_xml_decl_start");
139
136
 
137
+ Data_Get_Struct(self, OgaLexerState, state);
138
+
139
+ lines = state->lines;
140
+
140
141
 
141
- #line 142 "ext/c/lexer.c"
142
+ #line 143 "ext/c/lexer.c"
142
143
  {
143
144
  if ( p == pe )
144
145
  goto _test_eof;
@@ -146,8 +147,8 @@ VALUE oga_xml_lexer_advance(VALUE self, VALUE data_block)
146
147
 
147
148
  _again:
148
149
  switch ( ( state->cs) ) {
150
+ case 26: goto st26;
149
151
  case 27: goto st27;
150
- case 28: goto st28;
151
152
  case 1: goto st1;
152
153
  case 2: goto st2;
153
154
  case 3: goto st3;
@@ -160,7 +161,7 @@ _again:
160
161
  case 10: goto st10;
161
162
  case 11: goto st11;
162
163
  case 12: goto st12;
163
- case 29: goto st29;
164
+ case 28: goto st28;
164
165
  case 13: goto st13;
165
166
  case 14: goto st14;
166
167
  case 15: goto st15;
@@ -173,6 +174,7 @@ _again:
173
174
  case 22: goto st22;
174
175
  case 23: goto st23;
175
176
  case 24: goto st24;
177
+ case 29: goto st29;
176
178
  case 30: goto st30;
177
179
  case 31: goto st31;
178
180
  case 32: goto st32;
@@ -184,8 +186,8 @@ _again:
184
186
  case 38: goto st38;
185
187
  case 39: goto st39;
186
188
  case 40: goto st40;
187
- case 41: goto st41;
188
189
  case 0: goto st0;
190
+ case 41: goto st41;
189
191
  case 42: goto st42;
190
192
  case 43: goto st43;
191
193
  case 44: goto st44;
@@ -203,9 +205,8 @@ _again:
203
205
  case 56: goto st56;
204
206
  case 57: goto st57;
205
207
  case 58: goto st58;
206
- case 25: goto st25;
207
208
  case 59: goto st59;
208
- case 26: goto st26;
209
+ case 25: goto st25;
209
210
  case 60: goto st60;
210
211
  case 61: goto st61;
211
212
  case 62: goto st62;
@@ -232,7 +233,7 @@ _resume:
232
233
  switch ( ( state->cs) )
233
234
  {
234
235
  tr0:
235
- ( state->cs) = 27;
236
+ ( state->cs) = 26;
236
237
  #line 356 "ext/ragel/base_lexer.rl"
237
238
  {{p = ((te))-1;}{
238
239
  p--;
@@ -244,60 +245,60 @@ tr7:
244
245
  {te = p+1;{
245
246
  callback(id_on_comment, data, encoding, ts + 4, te - 3);
246
247
  }}
247
- goto st27;
248
+ goto st26;
248
249
  tr23:
249
250
  #line 88 "ext/ragel/base_lexer.rl"
250
251
  {te = p+1;{
251
252
  callback(id_on_cdata, data, encoding, ts + 9, te - 3);
252
253
  }}
253
- goto st27;
254
+ goto st26;
254
255
  tr26:
255
256
  #line 289 "ext/ragel/base_lexer.rl"
256
257
  {te = p+1;{
257
258
  callback_simple(id_on_element_end);
258
259
  }}
259
- goto st27;
260
- tr32:
261
- ( state->cs) = 27;
260
+ goto st26;
261
+ tr31:
262
+ ( state->cs) = 26;
262
263
  #line 356 "ext/ragel/base_lexer.rl"
263
264
  {te = p+1;{
264
265
  p--;
265
266
  ( state->cs) = 60;
266
267
  }}
267
268
  goto _again;
268
- tr34:
269
- ( state->cs) = 27;
269
+ tr33:
270
+ ( state->cs) = 26;
270
271
  #line 356 "ext/ragel/base_lexer.rl"
271
272
  {te = p;p--;{
272
273
  p--;
273
274
  ( state->cs) = 60;
274
275
  }}
275
276
  goto _again;
276
- tr36:
277
- ( state->cs) = 27;
277
+ tr35:
278
+ ( state->cs) = 26;
278
279
  #line 283 "ext/ragel/base_lexer.rl"
279
280
  {te = p+1;{
280
281
  callback_simple(id_on_element_start);
281
282
  p--;
282
- ( state->cs) = 56;
283
+ ( state->cs) = 55;
283
284
  }}
284
285
  goto _again;
285
- tr38:
286
- ( state->cs) = 27;
286
+ tr37:
287
+ ( state->cs) = 26;
287
288
  #line 192 "ext/ragel/base_lexer.rl"
288
289
  {te = p;p--;{
289
290
  callback_simple(id_on_doctype_start);
290
- ( state->cs) = 41;
291
+ ( state->cs) = 40;
291
292
  }}
292
293
  goto _again;
293
- tr39:
294
- ( state->cs) = 27;
294
+ tr38:
295
+ ( state->cs) = 26;
295
296
  #line 1 "NONE"
296
297
  { switch( ( state->act) ) {
297
298
  case 36:
298
299
  {{p = ((te))-1;}
299
300
  callback_simple(id_on_xml_decl_start);
300
- ( state->cs) = 53;
301
+ ( state->cs) = 52;
301
302
  }
302
303
  break;
303
304
  case 39:
@@ -307,14 +308,14 @@ tr39:
307
308
 
308
309
  mark = te;
309
310
 
310
- ( state->cs) = 33;
311
+ ( state->cs) = 32;
311
312
  }
312
313
  break;
313
314
  }
314
315
  }
315
316
  goto _again;
316
- tr40:
317
- ( state->cs) = 27;
317
+ tr39:
318
+ ( state->cs) = 26;
318
319
  #line 106 "ext/ragel/base_lexer.rl"
319
320
  {te = p;p--;{
320
321
  callback_simple(id_on_proc_ins_start);
@@ -322,46 +323,46 @@ tr40:
322
323
 
323
324
  mark = te;
324
325
 
325
- ( state->cs) = 33;
326
+ ( state->cs) = 32;
326
327
  }}
327
328
  goto _again;
328
- st27:
329
+ st26:
329
330
  #line 1 "NONE"
330
331
  {ts = 0;}
331
332
  if ( ++p == pe )
332
- goto _test_eof27;
333
- case 27:
333
+ goto _test_eof26;
334
+ case 26:
334
335
  #line 1 "NONE"
335
336
  {ts = p;}
336
- #line 337 "ext/c/lexer.c"
337
+ #line 338 "ext/c/lexer.c"
337
338
  if ( (*p) == 60 )
338
- goto tr33;
339
- goto tr32;
340
- tr33:
339
+ goto tr32;
340
+ goto tr31;
341
+ tr32:
341
342
  #line 1 "NONE"
342
343
  {te = p+1;}
343
- goto st28;
344
- st28:
344
+ goto st27;
345
+ st27:
345
346
  if ( ++p == pe )
346
- goto _test_eof28;
347
- case 28:
348
- #line 349 "ext/c/lexer.c"
347
+ goto _test_eof27;
348
+ case 27:
349
+ #line 350 "ext/c/lexer.c"
349
350
  switch( (*p) ) {
350
351
  case 33: goto st1;
351
- case 45: goto tr36;
352
+ case 45: goto tr35;
352
353
  case 47: goto st22;
353
354
  case 63: goto st24;
354
- case 95: goto tr36;
355
+ case 95: goto tr35;
355
356
  }
356
357
  if ( (*p) < 65 ) {
357
358
  if ( 48 <= (*p) && (*p) <= 57 )
358
- goto tr36;
359
+ goto tr35;
359
360
  } else if ( (*p) > 90 ) {
360
361
  if ( 97 <= (*p) && (*p) <= 122 )
361
- goto tr36;
362
+ goto tr35;
362
363
  } else
363
- goto tr36;
364
- goto tr34;
364
+ goto tr35;
365
+ goto tr33;
365
366
  st1:
366
367
  if ( ++p == pe )
367
368
  goto _test_eof1;
@@ -462,19 +463,19 @@ st12:
462
463
  goto _test_eof12;
463
464
  case 12:
464
465
  switch( (*p) ) {
465
- case 9: goto st29;
466
- case 32: goto st29;
466
+ case 9: goto st28;
467
+ case 32: goto st28;
467
468
  }
468
469
  goto tr0;
469
- st29:
470
+ st28:
470
471
  if ( ++p == pe )
471
- goto _test_eof29;
472
- case 29:
472
+ goto _test_eof28;
473
+ case 28:
473
474
  switch( (*p) ) {
474
- case 9: goto st29;
475
- case 32: goto st29;
475
+ case 9: goto st28;
476
+ case 32: goto st28;
476
477
  }
477
- goto tr38;
478
+ goto tr37;
478
479
  st13:
479
480
  if ( ++p == pe )
480
481
  goto _test_eof13;
@@ -583,7 +584,7 @@ case 24:
583
584
  switch( (*p) ) {
584
585
  case 45: goto tr27;
585
586
  case 95: goto tr27;
586
- case 120: goto st31;
587
+ case 120: goto st30;
587
588
  }
588
589
  if ( (*p) < 65 ) {
589
590
  if ( 48 <= (*p) && (*p) <= 57 )
@@ -599,18 +600,18 @@ tr27:
599
600
  {te = p+1;}
600
601
  #line 106 "ext/ragel/base_lexer.rl"
601
602
  {( state->act) = 39;}
602
- goto st30;
603
- tr42:
603
+ goto st29;
604
+ tr41:
604
605
  #line 1 "NONE"
605
606
  {te = p+1;}
606
607
  #line 248 "ext/ragel/base_lexer.rl"
607
608
  {( state->act) = 36;}
608
- goto st30;
609
- st30:
609
+ goto st29;
610
+ st29:
610
611
  if ( ++p == pe )
611
- goto _test_eof30;
612
- case 30:
613
- #line 614 "ext/c/lexer.c"
612
+ goto _test_eof29;
613
+ case 29:
614
+ #line 615 "ext/c/lexer.c"
614
615
  switch( (*p) ) {
615
616
  case 45: goto tr27;
616
617
  case 95: goto tr27;
@@ -623,15 +624,15 @@ case 30:
623
624
  goto tr27;
624
625
  } else
625
626
  goto tr27;
626
- goto tr39;
627
- st31:
627
+ goto tr38;
628
+ st30:
628
629
  if ( ++p == pe )
629
- goto _test_eof31;
630
- case 31:
630
+ goto _test_eof30;
631
+ case 30:
631
632
  switch( (*p) ) {
632
633
  case 45: goto tr27;
633
634
  case 95: goto tr27;
634
- case 109: goto st32;
635
+ case 109: goto st31;
635
636
  }
636
637
  if ( (*p) < 65 ) {
637
638
  if ( 48 <= (*p) && (*p) <= 57 )
@@ -641,15 +642,15 @@ case 31:
641
642
  goto tr27;
642
643
  } else
643
644
  goto tr27;
644
- goto tr40;
645
- st32:
645
+ goto tr39;
646
+ st31:
646
647
  if ( ++p == pe )
647
- goto _test_eof32;
648
- case 32:
648
+ goto _test_eof31;
649
+ case 31:
649
650
  switch( (*p) ) {
650
651
  case 45: goto tr27;
651
652
  case 95: goto tr27;
652
- case 108: goto tr42;
653
+ case 108: goto tr41;
653
654
  }
654
655
  if ( (*p) < 65 ) {
655
656
  if ( 48 <= (*p) && (*p) <= 57 )
@@ -659,17 +660,17 @@ case 32:
659
660
  goto tr27;
660
661
  } else
661
662
  goto tr27;
662
- goto tr40;
663
- tr43:
663
+ goto tr39;
664
+ tr42:
664
665
  #line 125 "ext/ragel/base_lexer.rl"
665
666
  {te = p+1;}
666
- goto st33;
667
- tr45:
667
+ goto st32;
668
+ tr44:
668
669
  #line 125 "ext/ragel/base_lexer.rl"
669
670
  {te = p;p--;}
670
- goto st33;
671
- tr46:
672
- ( state->cs) = 33;
671
+ goto st32;
672
+ tr45:
673
+ ( state->cs) = 32;
673
674
  #line 116 "ext/ragel/base_lexer.rl"
674
675
  {te = p+1;{
675
676
  callback(id_on_text, data, encoding, mark, ts);
@@ -677,37 +678,37 @@ tr46:
677
678
 
678
679
  mark = 0;
679
680
 
680
- ( state->cs) = 27;
681
+ ( state->cs) = 26;
681
682
  }}
682
683
  goto _again;
683
- st33:
684
+ st32:
684
685
  #line 1 "NONE"
685
686
  {ts = 0;}
686
687
  if ( ++p == pe )
687
- goto _test_eof33;
688
- case 33:
688
+ goto _test_eof32;
689
+ case 32:
689
690
  #line 1 "NONE"
690
691
  {ts = p;}
691
- #line 692 "ext/c/lexer.c"
692
+ #line 693 "ext/c/lexer.c"
692
693
  if ( (*p) == 63 )
693
- goto st34;
694
- goto tr43;
695
- st34:
694
+ goto st33;
695
+ goto tr42;
696
+ st33:
696
697
  if ( ++p == pe )
697
- goto _test_eof34;
698
- case 34:
698
+ goto _test_eof33;
699
+ case 33:
699
700
  if ( (*p) == 62 )
700
- goto tr46;
701
- goto tr45;
702
- tr48:
701
+ goto tr45;
702
+ goto tr44;
703
+ tr47:
703
704
  #line 163 "ext/ragel/base_lexer.rl"
704
705
  {te = p+1;{
705
706
  callback_simple(id_on_string_squote);
706
707
 
707
708
  {( state->cs) = ( state->stack)[--( state->top)];goto _again;}
708
709
  }}
709
- goto st35;
710
- tr49:
710
+ goto st34;
711
+ tr48:
711
712
  #line 137 "ext/ragel/base_lexer.rl"
712
713
  {te = p;p--;{
713
714
  callback(id_on_string_body, data, encoding, ts, te);
@@ -719,42 +720,42 @@ tr49:
719
720
  lines = 0;
720
721
  }
721
722
  }}
722
- goto st35;
723
- st35:
723
+ goto st34;
724
+ st34:
724
725
  #line 1 "NONE"
725
726
  {ts = 0;}
726
727
  if ( ++p == pe )
727
- goto _test_eof35;
728
- case 35:
728
+ goto _test_eof34;
729
+ case 34:
729
730
  #line 1 "NONE"
730
731
  {ts = p;}
731
- #line 732 "ext/c/lexer.c"
732
+ #line 733 "ext/c/lexer.c"
732
733
  if ( (*p) == 39 )
733
- goto tr48;
734
- goto tr47;
735
- tr47:
734
+ goto tr47;
735
+ goto tr46;
736
+ tr46:
736
737
  #line 51 "ext/ragel/base_lexer.rl"
737
738
  {
738
739
  if ( (*p) == '\n' ) lines++;
739
740
  }
740
- goto st36;
741
- st36:
741
+ goto st35;
742
+ st35:
742
743
  if ( ++p == pe )
743
- goto _test_eof36;
744
- case 36:
745
- #line 746 "ext/c/lexer.c"
744
+ goto _test_eof35;
745
+ case 35:
746
+ #line 747 "ext/c/lexer.c"
746
747
  if ( (*p) == 39 )
747
- goto tr49;
748
- goto tr47;
749
- tr51:
748
+ goto tr48;
749
+ goto tr46;
750
+ tr50:
750
751
  #line 173 "ext/ragel/base_lexer.rl"
751
752
  {te = p+1;{
752
753
  callback_simple(id_on_string_dquote);
753
754
 
754
755
  {( state->cs) = ( state->stack)[--( state->top)];goto _again;}
755
756
  }}
756
- goto st37;
757
- tr52:
757
+ goto st36;
758
+ tr51:
758
759
  #line 137 "ext/ragel/base_lexer.rl"
759
760
  {te = p;p--;{
760
761
  callback(id_on_string_body, data, encoding, ts, te);
@@ -766,39 +767,39 @@ tr52:
766
767
  lines = 0;
767
768
  }
768
769
  }}
769
- goto st37;
770
- st37:
770
+ goto st36;
771
+ st36:
771
772
  #line 1 "NONE"
772
773
  {ts = 0;}
773
774
  if ( ++p == pe )
774
- goto _test_eof37;
775
- case 37:
775
+ goto _test_eof36;
776
+ case 36:
776
777
  #line 1 "NONE"
777
778
  {ts = p;}
778
- #line 779 "ext/c/lexer.c"
779
+ #line 780 "ext/c/lexer.c"
779
780
  if ( (*p) == 34 )
780
- goto tr51;
781
- goto tr50;
782
- tr50:
781
+ goto tr50;
782
+ goto tr49;
783
+ tr49:
783
784
  #line 51 "ext/ragel/base_lexer.rl"
784
785
  {
785
786
  if ( (*p) == '\n' ) lines++;
786
787
  }
787
- goto st38;
788
- st38:
788
+ goto st37;
789
+ st37:
789
790
  if ( ++p == pe )
790
- goto _test_eof38;
791
- case 38:
792
- #line 793 "ext/c/lexer.c"
791
+ goto _test_eof37;
792
+ case 37:
793
+ #line 794 "ext/c/lexer.c"
793
794
  if ( (*p) == 34 )
794
- goto tr52;
795
- goto tr50;
796
- tr54:
797
- ( state->cs) = 39;
795
+ goto tr51;
796
+ goto tr49;
797
+ tr53:
798
+ ( state->cs) = 38;
798
799
  #line 210 "ext/ragel/base_lexer.rl"
799
- {te = p+1;{ ( state->cs) = 41; }}
800
+ {te = p+1;{ ( state->cs) = 40; }}
800
801
  goto _again;
801
- tr55:
802
+ tr54:
802
803
  #line 199 "ext/ragel/base_lexer.rl"
803
804
  {te = p;p--;{
804
805
  callback(id_on_doctype_inline, data, encoding, ts, te);
@@ -810,67 +811,67 @@ tr55:
810
811
  lines = 0;
811
812
  }
812
813
  }}
813
- goto st39;
814
- st39:
814
+ goto st38;
815
+ st38:
815
816
  #line 1 "NONE"
816
817
  {ts = 0;}
817
818
  if ( ++p == pe )
818
- goto _test_eof39;
819
- case 39:
819
+ goto _test_eof38;
820
+ case 38:
820
821
  #line 1 "NONE"
821
822
  {ts = p;}
822
- #line 823 "ext/c/lexer.c"
823
+ #line 824 "ext/c/lexer.c"
823
824
  if ( (*p) == 93 )
824
- goto tr54;
825
- goto tr53;
826
- tr53:
825
+ goto tr53;
826
+ goto tr52;
827
+ tr52:
827
828
  #line 51 "ext/ragel/base_lexer.rl"
828
829
  {
829
830
  if ( (*p) == '\n' ) lines++;
830
831
  }
831
- goto st40;
832
- st40:
832
+ goto st39;
833
+ st39:
833
834
  if ( ++p == pe )
834
- goto _test_eof40;
835
- case 40:
836
- #line 837 "ext/c/lexer.c"
835
+ goto _test_eof39;
836
+ case 39:
837
+ #line 838 "ext/c/lexer.c"
837
838
  if ( (*p) == 93 )
838
- goto tr55;
839
- goto tr53;
840
- tr56:
839
+ goto tr54;
840
+ goto tr52;
841
+ tr55:
841
842
  #line 229 "ext/ragel/base_lexer.rl"
842
843
  {te = p+1;}
843
- goto st41;
844
- tr57:
844
+ goto st40;
845
+ tr56:
845
846
  #line 154 "ext/ragel/base_lexer.rl"
846
847
  {te = p+1;{
847
848
  callback_simple(id_on_string_dquote);
848
849
 
849
- {( state->stack)[( state->top)++] = 41; goto st37;}
850
+ {( state->stack)[( state->top)++] = 40; goto st36;}
850
851
  }}
851
- goto st41;
852
- tr58:
852
+ goto st40;
853
+ tr57:
853
854
  #line 148 "ext/ragel/base_lexer.rl"
854
855
  {te = p+1;{
855
856
  callback_simple(id_on_string_squote);
856
857
 
857
- {( state->stack)[( state->top)++] = 41; goto st35;}
858
+ {( state->stack)[( state->top)++] = 40; goto st34;}
858
859
  }}
859
- goto st41;
860
- tr60:
861
- ( state->cs) = 41;
860
+ goto st40;
861
+ tr59:
862
+ ( state->cs) = 40;
862
863
  #line 235 "ext/ragel/base_lexer.rl"
863
864
  {te = p+1;{
864
865
  callback_simple(id_on_doctype_end);
865
- ( state->cs) = 27;
866
+ ( state->cs) = 26;
866
867
  }}
867
868
  goto _again;
868
- tr63:
869
- ( state->cs) = 41;
869
+ tr62:
870
+ ( state->cs) = 40;
870
871
  #line 221 "ext/ragel/base_lexer.rl"
871
- {te = p+1;{ ( state->cs) = 39; }}
872
+ {te = p+1;{ ( state->cs) = 38; }}
872
873
  goto _again;
873
- tr64:
874
+ tr63:
874
875
  #line 1 "NONE"
875
876
  { switch( ( state->act) ) {
876
877
  case 9:
@@ -885,433 +886,433 @@ tr64:
885
886
  break;
886
887
  }
887
888
  }
888
- goto st41;
889
- tr65:
889
+ goto st40;
890
+ tr64:
890
891
  #line 231 "ext/ragel/base_lexer.rl"
891
892
  {te = p;p--;{
892
893
  callback(id_on_doctype_name, data, encoding, ts, te);
893
894
  }}
894
- goto st41;
895
- st41:
895
+ goto st40;
896
+ st40:
896
897
  #line 1 "NONE"
897
898
  {ts = 0;}
898
899
  if ( ++p == pe )
899
- goto _test_eof41;
900
- case 41:
900
+ goto _test_eof40;
901
+ case 40:
901
902
  #line 1 "NONE"
902
903
  {ts = p;}
903
- #line 904 "ext/c/lexer.c"
904
+ #line 905 "ext/c/lexer.c"
904
905
  switch( (*p) ) {
905
- case 9: goto tr56;
906
- case 32: goto tr56;
907
- case 34: goto tr57;
908
- case 39: goto tr58;
909
- case 45: goto tr59;
910
- case 62: goto tr60;
911
- case 80: goto st43;
912
- case 83: goto st48;
913
- case 91: goto tr63;
914
- case 95: goto tr59;
906
+ case 9: goto tr55;
907
+ case 32: goto tr55;
908
+ case 34: goto tr56;
909
+ case 39: goto tr57;
910
+ case 45: goto tr58;
911
+ case 62: goto tr59;
912
+ case 80: goto st42;
913
+ case 83: goto st47;
914
+ case 91: goto tr62;
915
+ case 95: goto tr58;
915
916
  }
916
917
  if ( (*p) < 65 ) {
917
918
  if ( 48 <= (*p) && (*p) <= 57 )
918
- goto tr59;
919
+ goto tr58;
919
920
  } else if ( (*p) > 90 ) {
920
921
  if ( 97 <= (*p) && (*p) <= 122 )
921
- goto tr59;
922
+ goto tr58;
922
923
  } else
923
- goto tr59;
924
+ goto tr58;
924
925
  goto st0;
925
926
  st0:
926
927
  ( state->cs) = 0;
927
928
  goto _out;
928
- tr59:
929
+ tr58:
929
930
  #line 1 "NONE"
930
931
  {te = p+1;}
931
932
  #line 231 "ext/ragel/base_lexer.rl"
932
933
  {( state->act) = 14;}
933
- goto st42;
934
- tr70:
934
+ goto st41;
935
+ tr69:
935
936
  #line 1 "NONE"
936
937
  {te = p+1;}
937
938
  #line 216 "ext/ragel/base_lexer.rl"
938
939
  {( state->act) = 9;}
939
- goto st42;
940
+ goto st41;
941
+ st41:
942
+ if ( ++p == pe )
943
+ goto _test_eof41;
944
+ case 41:
945
+ #line 946 "ext/c/lexer.c"
946
+ switch( (*p) ) {
947
+ case 45: goto tr58;
948
+ case 95: goto tr58;
949
+ }
950
+ if ( (*p) < 65 ) {
951
+ if ( 48 <= (*p) && (*p) <= 57 )
952
+ goto tr58;
953
+ } else if ( (*p) > 90 ) {
954
+ if ( 97 <= (*p) && (*p) <= 122 )
955
+ goto tr58;
956
+ } else
957
+ goto tr58;
958
+ goto tr63;
940
959
  st42:
941
960
  if ( ++p == pe )
942
961
  goto _test_eof42;
943
962
  case 42:
944
- #line 945 "ext/c/lexer.c"
945
963
  switch( (*p) ) {
946
- case 45: goto tr59;
947
- case 95: goto tr59;
964
+ case 45: goto tr58;
965
+ case 85: goto st43;
966
+ case 95: goto tr58;
948
967
  }
949
968
  if ( (*p) < 65 ) {
950
969
  if ( 48 <= (*p) && (*p) <= 57 )
951
- goto tr59;
970
+ goto tr58;
952
971
  } else if ( (*p) > 90 ) {
953
972
  if ( 97 <= (*p) && (*p) <= 122 )
954
- goto tr59;
973
+ goto tr58;
955
974
  } else
956
- goto tr59;
975
+ goto tr58;
957
976
  goto tr64;
958
977
  st43:
959
978
  if ( ++p == pe )
960
979
  goto _test_eof43;
961
980
  case 43:
962
981
  switch( (*p) ) {
963
- case 45: goto tr59;
964
- case 85: goto st44;
965
- case 95: goto tr59;
982
+ case 45: goto tr58;
983
+ case 66: goto st44;
984
+ case 95: goto tr58;
966
985
  }
967
986
  if ( (*p) < 65 ) {
968
987
  if ( 48 <= (*p) && (*p) <= 57 )
969
- goto tr59;
988
+ goto tr58;
970
989
  } else if ( (*p) > 90 ) {
971
990
  if ( 97 <= (*p) && (*p) <= 122 )
972
- goto tr59;
991
+ goto tr58;
973
992
  } else
974
- goto tr59;
975
- goto tr65;
993
+ goto tr58;
994
+ goto tr64;
976
995
  st44:
977
996
  if ( ++p == pe )
978
997
  goto _test_eof44;
979
998
  case 44:
980
999
  switch( (*p) ) {
981
- case 45: goto tr59;
982
- case 66: goto st45;
983
- case 95: goto tr59;
1000
+ case 45: goto tr58;
1001
+ case 76: goto st45;
1002
+ case 95: goto tr58;
984
1003
  }
985
1004
  if ( (*p) < 65 ) {
986
1005
  if ( 48 <= (*p) && (*p) <= 57 )
987
- goto tr59;
1006
+ goto tr58;
988
1007
  } else if ( (*p) > 90 ) {
989
1008
  if ( 97 <= (*p) && (*p) <= 122 )
990
- goto tr59;
1009
+ goto tr58;
991
1010
  } else
992
- goto tr59;
993
- goto tr65;
1011
+ goto tr58;
1012
+ goto tr64;
994
1013
  st45:
995
1014
  if ( ++p == pe )
996
1015
  goto _test_eof45;
997
1016
  case 45:
998
1017
  switch( (*p) ) {
999
- case 45: goto tr59;
1000
- case 76: goto st46;
1001
- case 95: goto tr59;
1018
+ case 45: goto tr58;
1019
+ case 73: goto st46;
1020
+ case 95: goto tr58;
1002
1021
  }
1003
1022
  if ( (*p) < 65 ) {
1004
1023
  if ( 48 <= (*p) && (*p) <= 57 )
1005
- goto tr59;
1024
+ goto tr58;
1006
1025
  } else if ( (*p) > 90 ) {
1007
1026
  if ( 97 <= (*p) && (*p) <= 122 )
1008
- goto tr59;
1027
+ goto tr58;
1009
1028
  } else
1010
- goto tr59;
1011
- goto tr65;
1029
+ goto tr58;
1030
+ goto tr64;
1012
1031
  st46:
1013
1032
  if ( ++p == pe )
1014
1033
  goto _test_eof46;
1015
1034
  case 46:
1016
1035
  switch( (*p) ) {
1017
- case 45: goto tr59;
1018
- case 73: goto st47;
1019
- case 95: goto tr59;
1036
+ case 45: goto tr58;
1037
+ case 67: goto tr69;
1038
+ case 95: goto tr58;
1020
1039
  }
1021
1040
  if ( (*p) < 65 ) {
1022
1041
  if ( 48 <= (*p) && (*p) <= 57 )
1023
- goto tr59;
1042
+ goto tr58;
1024
1043
  } else if ( (*p) > 90 ) {
1025
1044
  if ( 97 <= (*p) && (*p) <= 122 )
1026
- goto tr59;
1045
+ goto tr58;
1027
1046
  } else
1028
- goto tr59;
1029
- goto tr65;
1047
+ goto tr58;
1048
+ goto tr64;
1030
1049
  st47:
1031
1050
  if ( ++p == pe )
1032
1051
  goto _test_eof47;
1033
1052
  case 47:
1034
1053
  switch( (*p) ) {
1035
- case 45: goto tr59;
1036
- case 67: goto tr70;
1037
- case 95: goto tr59;
1054
+ case 45: goto tr58;
1055
+ case 89: goto st48;
1056
+ case 95: goto tr58;
1038
1057
  }
1039
1058
  if ( (*p) < 65 ) {
1040
1059
  if ( 48 <= (*p) && (*p) <= 57 )
1041
- goto tr59;
1060
+ goto tr58;
1042
1061
  } else if ( (*p) > 90 ) {
1043
1062
  if ( 97 <= (*p) && (*p) <= 122 )
1044
- goto tr59;
1063
+ goto tr58;
1045
1064
  } else
1046
- goto tr59;
1047
- goto tr65;
1065
+ goto tr58;
1066
+ goto tr64;
1048
1067
  st48:
1049
1068
  if ( ++p == pe )
1050
1069
  goto _test_eof48;
1051
1070
  case 48:
1052
1071
  switch( (*p) ) {
1053
- case 45: goto tr59;
1054
- case 89: goto st49;
1055
- case 95: goto tr59;
1072
+ case 45: goto tr58;
1073
+ case 83: goto st49;
1074
+ case 95: goto tr58;
1056
1075
  }
1057
1076
  if ( (*p) < 65 ) {
1058
1077
  if ( 48 <= (*p) && (*p) <= 57 )
1059
- goto tr59;
1078
+ goto tr58;
1060
1079
  } else if ( (*p) > 90 ) {
1061
1080
  if ( 97 <= (*p) && (*p) <= 122 )
1062
- goto tr59;
1081
+ goto tr58;
1063
1082
  } else
1064
- goto tr59;
1065
- goto tr65;
1083
+ goto tr58;
1084
+ goto tr64;
1066
1085
  st49:
1067
1086
  if ( ++p == pe )
1068
1087
  goto _test_eof49;
1069
1088
  case 49:
1070
1089
  switch( (*p) ) {
1071
- case 45: goto tr59;
1072
- case 83: goto st50;
1073
- case 95: goto tr59;
1090
+ case 45: goto tr58;
1091
+ case 84: goto st50;
1092
+ case 95: goto tr58;
1074
1093
  }
1075
1094
  if ( (*p) < 65 ) {
1076
1095
  if ( 48 <= (*p) && (*p) <= 57 )
1077
- goto tr59;
1096
+ goto tr58;
1078
1097
  } else if ( (*p) > 90 ) {
1079
1098
  if ( 97 <= (*p) && (*p) <= 122 )
1080
- goto tr59;
1099
+ goto tr58;
1081
1100
  } else
1082
- goto tr59;
1083
- goto tr65;
1101
+ goto tr58;
1102
+ goto tr64;
1084
1103
  st50:
1085
1104
  if ( ++p == pe )
1086
1105
  goto _test_eof50;
1087
1106
  case 50:
1088
1107
  switch( (*p) ) {
1089
- case 45: goto tr59;
1090
- case 84: goto st51;
1091
- case 95: goto tr59;
1108
+ case 45: goto tr58;
1109
+ case 69: goto st51;
1110
+ case 95: goto tr58;
1092
1111
  }
1093
1112
  if ( (*p) < 65 ) {
1094
1113
  if ( 48 <= (*p) && (*p) <= 57 )
1095
- goto tr59;
1114
+ goto tr58;
1096
1115
  } else if ( (*p) > 90 ) {
1097
1116
  if ( 97 <= (*p) && (*p) <= 122 )
1098
- goto tr59;
1117
+ goto tr58;
1099
1118
  } else
1100
- goto tr59;
1101
- goto tr65;
1119
+ goto tr58;
1120
+ goto tr64;
1102
1121
  st51:
1103
1122
  if ( ++p == pe )
1104
1123
  goto _test_eof51;
1105
1124
  case 51:
1106
1125
  switch( (*p) ) {
1107
- case 45: goto tr59;
1108
- case 69: goto st52;
1109
- case 95: goto tr59;
1126
+ case 45: goto tr58;
1127
+ case 77: goto tr69;
1128
+ case 95: goto tr58;
1110
1129
  }
1111
1130
  if ( (*p) < 65 ) {
1112
1131
  if ( 48 <= (*p) && (*p) <= 57 )
1113
- goto tr59;
1132
+ goto tr58;
1114
1133
  } else if ( (*p) > 90 ) {
1115
1134
  if ( 97 <= (*p) && (*p) <= 122 )
1116
- goto tr59;
1135
+ goto tr58;
1117
1136
  } else
1118
- goto tr59;
1119
- goto tr65;
1120
- st52:
1121
- if ( ++p == pe )
1122
- goto _test_eof52;
1123
- case 52:
1124
- switch( (*p) ) {
1125
- case 45: goto tr59;
1126
- case 77: goto tr70;
1127
- case 95: goto tr59;
1128
- }
1129
- if ( (*p) < 65 ) {
1130
- if ( 48 <= (*p) && (*p) <= 57 )
1131
- goto tr59;
1132
- } else if ( (*p) > 90 ) {
1133
- if ( 97 <= (*p) && (*p) <= 122 )
1134
- goto tr59;
1135
- } else
1136
- goto tr59;
1137
- goto tr65;
1138
- tr75:
1137
+ goto tr58;
1138
+ goto tr64;
1139
+ tr74:
1139
1140
  #line 268 "ext/ragel/base_lexer.rl"
1140
1141
  {te = p+1;}
1141
- goto st53;
1142
- tr76:
1142
+ goto st52;
1143
+ tr75:
1143
1144
  #line 154 "ext/ragel/base_lexer.rl"
1144
1145
  {te = p+1;{
1145
1146
  callback_simple(id_on_string_dquote);
1146
1147
 
1147
- {( state->stack)[( state->top)++] = 53; goto st37;}
1148
+ {( state->stack)[( state->top)++] = 52; goto st36;}
1148
1149
  }}
1149
- goto st53;
1150
- tr77:
1150
+ goto st52;
1151
+ tr76:
1151
1152
  #line 148 "ext/ragel/base_lexer.rl"
1152
1153
  {te = p+1;{
1153
1154
  callback_simple(id_on_string_squote);
1154
1155
 
1155
- {( state->stack)[( state->top)++] = 53; goto st35;}
1156
+ {( state->stack)[( state->top)++] = 52; goto st34;}
1156
1157
  }}
1157
- goto st53;
1158
- tr80:
1158
+ goto st52;
1159
+ tr79:
1159
1160
  #line 261 "ext/ragel/base_lexer.rl"
1160
1161
  {te = p;p--;{
1161
1162
  callback(id_on_attribute, data, encoding, ts, te);
1162
1163
  }}
1163
- goto st53;
1164
- tr81:
1164
+ goto st52;
1165
+ tr80:
1165
1166
  #line 268 "ext/ragel/base_lexer.rl"
1166
1167
  {te = p;p--;}
1167
- goto st53;
1168
- tr82:
1169
- ( state->cs) = 53;
1168
+ goto st52;
1169
+ tr81:
1170
+ ( state->cs) = 52;
1170
1171
  #line 255 "ext/ragel/base_lexer.rl"
1171
1172
  {te = p+1;{
1172
1173
  callback_simple(id_on_xml_decl_end);
1173
- ( state->cs) = 27;
1174
+ ( state->cs) = 26;
1174
1175
  }}
1175
1176
  goto _again;
1176
- st53:
1177
+ st52:
1177
1178
  #line 1 "NONE"
1178
1179
  {ts = 0;}
1179
1180
  if ( ++p == pe )
1180
- goto _test_eof53;
1181
- case 53:
1181
+ goto _test_eof52;
1182
+ case 52:
1182
1183
  #line 1 "NONE"
1183
1184
  {ts = p;}
1184
- #line 1185 "ext/c/lexer.c"
1185
+ #line 1186 "ext/c/lexer.c"
1185
1186
  switch( (*p) ) {
1186
- case 34: goto tr76;
1187
- case 39: goto tr77;
1188
- case 45: goto st54;
1189
- case 63: goto st55;
1190
- case 95: goto st54;
1187
+ case 34: goto tr75;
1188
+ case 39: goto tr76;
1189
+ case 45: goto st53;
1190
+ case 63: goto st54;
1191
+ case 95: goto st53;
1191
1192
  }
1192
1193
  if ( (*p) < 65 ) {
1193
1194
  if ( 48 <= (*p) && (*p) <= 57 )
1194
- goto st54;
1195
+ goto st53;
1195
1196
  } else if ( (*p) > 90 ) {
1196
1197
  if ( 97 <= (*p) && (*p) <= 122 )
1197
- goto st54;
1198
+ goto st53;
1198
1199
  } else
1199
- goto st54;
1200
- goto tr75;
1201
- st54:
1200
+ goto st53;
1201
+ goto tr74;
1202
+ st53:
1202
1203
  if ( ++p == pe )
1203
- goto _test_eof54;
1204
- case 54:
1204
+ goto _test_eof53;
1205
+ case 53:
1205
1206
  switch( (*p) ) {
1206
- case 45: goto st54;
1207
- case 95: goto st54;
1207
+ case 45: goto st53;
1208
+ case 95: goto st53;
1208
1209
  }
1209
1210
  if ( (*p) < 65 ) {
1210
1211
  if ( 48 <= (*p) && (*p) <= 57 )
1211
- goto st54;
1212
+ goto st53;
1212
1213
  } else if ( (*p) > 90 ) {
1213
1214
  if ( 97 <= (*p) && (*p) <= 122 )
1214
- goto st54;
1215
+ goto st53;
1215
1216
  } else
1216
- goto st54;
1217
- goto tr80;
1218
- st55:
1217
+ goto st53;
1218
+ goto tr79;
1219
+ st54:
1219
1220
  if ( ++p == pe )
1220
- goto _test_eof55;
1221
- case 55:
1221
+ goto _test_eof54;
1222
+ case 54:
1222
1223
  if ( (*p) == 62 )
1223
- goto tr82;
1224
- goto tr81;
1225
- tr84:
1226
- ( state->cs) = 56;
1224
+ goto tr81;
1225
+ goto tr80;
1226
+ tr83:
1227
+ ( state->cs) = 55;
1227
1228
  #line 299 "ext/ragel/base_lexer.rl"
1228
1229
  {te = p;p--;{
1229
1230
  callback(id_on_element_name, data, encoding, ts, te);
1230
- ( state->cs) = 58;
1231
+ ( state->cs) = 57;
1231
1232
  }}
1232
1233
  goto _again;
1233
- tr85:
1234
+ tr84:
1234
1235
  #line 295 "ext/ragel/base_lexer.rl"
1235
1236
  {te = p+1;{
1236
1237
  callback(id_on_element_ns, data, encoding, ts, te - 1);
1237
1238
  }}
1238
- goto st56;
1239
- st56:
1239
+ goto st55;
1240
+ st55:
1240
1241
  #line 1 "NONE"
1241
1242
  {ts = 0;}
1242
1243
  if ( ++p == pe )
1243
- goto _test_eof56;
1244
- case 56:
1244
+ goto _test_eof55;
1245
+ case 55:
1245
1246
  #line 1 "NONE"
1246
1247
  {ts = p;}
1247
- #line 1248 "ext/c/lexer.c"
1248
+ #line 1249 "ext/c/lexer.c"
1248
1249
  switch( (*p) ) {
1249
- case 45: goto st57;
1250
- case 95: goto st57;
1250
+ case 45: goto st56;
1251
+ case 95: goto st56;
1251
1252
  }
1252
1253
  if ( (*p) < 65 ) {
1253
1254
  if ( 48 <= (*p) && (*p) <= 57 )
1254
- goto st57;
1255
+ goto st56;
1255
1256
  } else if ( (*p) > 90 ) {
1256
1257
  if ( 97 <= (*p) && (*p) <= 122 )
1257
- goto st57;
1258
+ goto st56;
1258
1259
  } else
1259
- goto st57;
1260
+ goto st56;
1260
1261
  goto st0;
1261
- st57:
1262
+ st56:
1262
1263
  if ( ++p == pe )
1263
- goto _test_eof57;
1264
- case 57:
1264
+ goto _test_eof56;
1265
+ case 56:
1265
1266
  switch( (*p) ) {
1266
- case 45: goto st57;
1267
- case 58: goto tr85;
1268
- case 95: goto st57;
1267
+ case 45: goto st56;
1268
+ case 58: goto tr84;
1269
+ case 95: goto st56;
1269
1270
  }
1270
1271
  if ( (*p) < 65 ) {
1271
1272
  if ( 48 <= (*p) && (*p) <= 57 )
1272
- goto st57;
1273
+ goto st56;
1273
1274
  } else if ( (*p) > 90 ) {
1274
1275
  if ( 97 <= (*p) && (*p) <= 122 )
1275
- goto st57;
1276
+ goto st56;
1276
1277
  } else
1277
- goto st57;
1278
- goto tr84;
1278
+ goto st56;
1279
+ goto tr83;
1279
1280
  tr29:
1280
- #line 310 "ext/ragel/base_lexer.rl"
1281
- {te = p+1;{
1282
- callback_simple(id_advance_line);
1283
- }}
1284
- goto st58;
1285
- tr31:
1286
- ( state->cs) = 58;
1281
+ ( state->cs) = 57;
1287
1282
  #line 342 "ext/ragel/base_lexer.rl"
1288
1283
  {te = p+1;{
1289
1284
  callback_simple(id_on_element_end);
1290
- ( state->cs) = 27;
1285
+ ( state->cs) = 26;
1291
1286
  }}
1292
1287
  goto _again;
1293
- tr86:
1288
+ tr85:
1294
1289
  #line 308 "ext/ragel/base_lexer.rl"
1295
1290
  {te = p+1;}
1296
- goto st58;
1291
+ goto st57;
1292
+ tr86:
1293
+ #line 310 "ext/ragel/base_lexer.rl"
1294
+ {te = p+1;{
1295
+ callback_simple(id_advance_line);
1296
+ }}
1297
+ goto st57;
1297
1298
  tr88:
1298
1299
  #line 154 "ext/ragel/base_lexer.rl"
1299
1300
  {te = p+1;{
1300
1301
  callback_simple(id_on_string_dquote);
1301
1302
 
1302
- {( state->stack)[( state->top)++] = 58; goto st37;}
1303
+ {( state->stack)[( state->top)++] = 57; goto st36;}
1303
1304
  }}
1304
- goto st58;
1305
+ goto st57;
1305
1306
  tr89:
1306
1307
  #line 148 "ext/ragel/base_lexer.rl"
1307
1308
  {te = p+1;{
1308
1309
  callback_simple(id_on_string_squote);
1309
1310
 
1310
- {( state->stack)[( state->top)++] = 58; goto st35;}
1311
+ {( state->stack)[( state->top)++] = 57; goto st34;}
1311
1312
  }}
1312
- goto st58;
1313
+ goto st57;
1313
1314
  tr92:
1314
- ( state->cs) = 58;
1315
+ ( state->cs) = 57;
1315
1316
  #line 328 "ext/ragel/base_lexer.rl"
1316
1317
  {te = p+1;{
1317
1318
  callback_simple(id_on_element_open_end);
@@ -1322,41 +1323,47 @@ tr92:
1322
1323
  }
1323
1324
  else
1324
1325
  {
1325
- ( state->cs) = 27;
1326
+ ( state->cs) = 26;
1326
1327
  }
1327
1328
  }}
1328
1329
  goto _again;
1329
1330
  tr93:
1331
+ #line 310 "ext/ragel/base_lexer.rl"
1332
+ {te = p;p--;{
1333
+ callback_simple(id_advance_line);
1334
+ }}
1335
+ goto st57;
1336
+ tr94:
1330
1337
  #line 319 "ext/ragel/base_lexer.rl"
1331
1338
  {te = p;p--;{
1332
1339
  callback(id_on_attribute, data, encoding, ts, te);
1333
1340
  }}
1334
- goto st58;
1335
- tr94:
1341
+ goto st57;
1342
+ tr95:
1336
1343
  #line 315 "ext/ragel/base_lexer.rl"
1337
1344
  {te = p+1;{
1338
1345
  callback(id_on_attribute_ns, data, encoding, ts, te - 1);
1339
1346
  }}
1340
- goto st58;
1341
- st58:
1347
+ goto st57;
1348
+ st57:
1342
1349
  #line 1 "NONE"
1343
1350
  {ts = 0;}
1344
1351
  if ( ++p == pe )
1345
- goto _test_eof58;
1346
- case 58:
1352
+ goto _test_eof57;
1353
+ case 57:
1347
1354
  #line 1 "NONE"
1348
1355
  {ts = p;}
1349
- #line 1350 "ext/c/lexer.c"
1356
+ #line 1357 "ext/c/lexer.c"
1350
1357
  switch( (*p) ) {
1351
- case 9: goto tr86;
1352
- case 10: goto tr29;
1353
- case 13: goto st25;
1354
- case 32: goto tr86;
1358
+ case 9: goto tr85;
1359
+ case 10: goto tr86;
1360
+ case 13: goto st58;
1361
+ case 32: goto tr85;
1355
1362
  case 34: goto tr88;
1356
1363
  case 39: goto tr89;
1357
1364
  case 45: goto st59;
1358
- case 47: goto st26;
1359
- case 61: goto tr86;
1365
+ case 47: goto st25;
1366
+ case 61: goto tr85;
1360
1367
  case 62: goto tr92;
1361
1368
  case 95: goto st59;
1362
1369
  }
@@ -1369,20 +1376,20 @@ case 58:
1369
1376
  } else
1370
1377
  goto st59;
1371
1378
  goto st0;
1372
- st25:
1379
+ st58:
1373
1380
  if ( ++p == pe )
1374
- goto _test_eof25;
1375
- case 25:
1381
+ goto _test_eof58;
1382
+ case 58:
1376
1383
  if ( (*p) == 10 )
1377
- goto tr29;
1378
- goto st0;
1384
+ goto tr86;
1385
+ goto tr93;
1379
1386
  st59:
1380
1387
  if ( ++p == pe )
1381
1388
  goto _test_eof59;
1382
1389
  case 59:
1383
1390
  switch( (*p) ) {
1384
1391
  case 45: goto st59;
1385
- case 58: goto tr94;
1392
+ case 58: goto tr95;
1386
1393
  case 95: goto st59;
1387
1394
  }
1388
1395
  if ( (*p) < 65 ) {
@@ -1393,15 +1400,15 @@ case 59:
1393
1400
  goto st59;
1394
1401
  } else
1395
1402
  goto st59;
1396
- goto tr93;
1397
- st26:
1403
+ goto tr94;
1404
+ st25:
1398
1405
  if ( ++p == pe )
1399
- goto _test_eof26;
1400
- case 26:
1406
+ goto _test_eof25;
1407
+ case 25:
1401
1408
  if ( (*p) == 62 )
1402
- goto tr31;
1409
+ goto tr29;
1403
1410
  goto st0;
1404
- tr97:
1411
+ tr98:
1405
1412
  ( state->cs) = 60;
1406
1413
  #line 371 "ext/ragel/base_lexer.rl"
1407
1414
  {te = p;p--;{
@@ -1414,10 +1421,10 @@ tr97:
1414
1421
  lines = 0;
1415
1422
  }
1416
1423
 
1417
- ( state->cs) = 27;
1424
+ ( state->cs) = 26;
1418
1425
  }}
1419
1426
  goto _again;
1420
- tr99:
1427
+ tr100:
1421
1428
  ( state->cs) = 60;
1422
1429
  #line 385 "ext/ragel/base_lexer.rl"
1423
1430
  {te = p+1;{
@@ -1433,10 +1440,10 @@ tr99:
1433
1440
  lines = 0;
1434
1441
  }
1435
1442
 
1436
- ( state->cs) = 27;
1443
+ ( state->cs) = 26;
1437
1444
  }}
1438
1445
  goto _again;
1439
- tr100:
1446
+ tr101:
1440
1447
  ( state->cs) = 60;
1441
1448
  #line 371 "ext/ragel/base_lexer.rl"
1442
1449
  {te = p+1;{
@@ -1449,7 +1456,7 @@ tr100:
1449
1456
  lines = 0;
1450
1457
  }
1451
1458
 
1452
- ( state->cs) = 27;
1459
+ ( state->cs) = 26;
1453
1460
  }}
1454
1461
  goto _again;
1455
1462
  st60:
@@ -1460,11 +1467,11 @@ st60:
1460
1467
  case 60:
1461
1468
  #line 1 "NONE"
1462
1469
  {ts = p;}
1463
- #line 1464 "ext/c/lexer.c"
1470
+ #line 1471 "ext/c/lexer.c"
1464
1471
  if ( (*p) == 60 )
1465
- goto tr96;
1466
- goto tr95;
1467
- tr95:
1472
+ goto tr97;
1473
+ goto tr96;
1474
+ tr96:
1468
1475
  #line 51 "ext/ragel/base_lexer.rl"
1469
1476
  {
1470
1477
  if ( (*p) == '\n' ) lines++;
@@ -1474,11 +1481,11 @@ st61:
1474
1481
  if ( ++p == pe )
1475
1482
  goto _test_eof61;
1476
1483
  case 61:
1477
- #line 1478 "ext/c/lexer.c"
1484
+ #line 1485 "ext/c/lexer.c"
1478
1485
  if ( (*p) == 60 )
1479
- goto tr98;
1480
- goto tr95;
1481
- tr98:
1486
+ goto tr99;
1487
+ goto tr96;
1488
+ tr99:
1482
1489
  #line 51 "ext/ragel/base_lexer.rl"
1483
1490
  {
1484
1491
  if ( (*p) == '\n' ) lines++;
@@ -1490,24 +1497,24 @@ st62:
1490
1497
  if ( ++p == pe )
1491
1498
  goto _test_eof62;
1492
1499
  case 62:
1493
- #line 1494 "ext/c/lexer.c"
1500
+ #line 1501 "ext/c/lexer.c"
1494
1501
  switch( (*p) ) {
1495
- case 33: goto tr99;
1496
- case 45: goto tr99;
1497
- case 60: goto tr98;
1498
- case 63: goto tr99;
1499
- case 95: goto tr99;
1502
+ case 33: goto tr100;
1503
+ case 45: goto tr100;
1504
+ case 60: goto tr99;
1505
+ case 63: goto tr100;
1506
+ case 95: goto tr100;
1500
1507
  }
1501
1508
  if ( (*p) < 65 ) {
1502
1509
  if ( 47 <= (*p) && (*p) <= 57 )
1503
- goto tr99;
1510
+ goto tr100;
1504
1511
  } else if ( (*p) > 90 ) {
1505
1512
  if ( 97 <= (*p) && (*p) <= 122 )
1506
- goto tr99;
1513
+ goto tr100;
1507
1514
  } else
1508
- goto tr99;
1509
- goto tr95;
1510
- tr96:
1515
+ goto tr100;
1516
+ goto tr96;
1517
+ tr97:
1511
1518
  #line 51 "ext/ragel/base_lexer.rl"
1512
1519
  {
1513
1520
  if ( (*p) == '\n' ) lines++;
@@ -1519,24 +1526,24 @@ st63:
1519
1526
  if ( ++p == pe )
1520
1527
  goto _test_eof63;
1521
1528
  case 63:
1522
- #line 1523 "ext/c/lexer.c"
1529
+ #line 1530 "ext/c/lexer.c"
1523
1530
  switch( (*p) ) {
1524
- case 33: goto tr100;
1525
- case 45: goto tr100;
1526
- case 60: goto tr98;
1527
- case 63: goto tr100;
1528
- case 95: goto tr100;
1531
+ case 33: goto tr101;
1532
+ case 45: goto tr101;
1533
+ case 60: goto tr99;
1534
+ case 63: goto tr101;
1535
+ case 95: goto tr101;
1529
1536
  }
1530
1537
  if ( (*p) < 65 ) {
1531
1538
  if ( 47 <= (*p) && (*p) <= 57 )
1532
- goto tr100;
1539
+ goto tr101;
1533
1540
  } else if ( (*p) > 90 ) {
1534
1541
  if ( 97 <= (*p) && (*p) <= 122 )
1535
- goto tr100;
1542
+ goto tr101;
1536
1543
  } else
1537
- goto tr100;
1538
- goto tr95;
1539
- tr103:
1544
+ goto tr101;
1545
+ goto tr96;
1546
+ tr104:
1540
1547
  #line 1 "NONE"
1541
1548
  { switch( ( state->act) ) {
1542
1549
  case 0:
@@ -1557,7 +1564,7 @@ tr103:
1557
1564
  }
1558
1565
  }
1559
1566
  goto st64;
1560
- tr104:
1567
+ tr105:
1561
1568
  #line 409 "ext/ragel/base_lexer.rl"
1562
1569
  {te = p;p--;{
1563
1570
  callback(id_on_text, data, encoding, ts, te);
@@ -1570,7 +1577,7 @@ tr104:
1570
1577
  }
1571
1578
  }}
1572
1579
  goto st64;
1573
- tr113:
1580
+ tr114:
1574
1581
  ( state->cs) = 64;
1575
1582
  #line 420 "ext/ragel/base_lexer.rl"
1576
1583
  {te = p+1;{
@@ -1586,7 +1593,7 @@ tr113:
1586
1593
  lines = 0;
1587
1594
  }
1588
1595
 
1589
- ( state->cs) = 27;
1596
+ ( state->cs) = 26;
1590
1597
  }}
1591
1598
  goto _again;
1592
1599
  st64:
@@ -1599,11 +1606,11 @@ st64:
1599
1606
  case 64:
1600
1607
  #line 1 "NONE"
1601
1608
  {ts = p;}
1602
- #line 1603 "ext/c/lexer.c"
1609
+ #line 1610 "ext/c/lexer.c"
1603
1610
  if ( (*p) == 60 )
1604
- goto tr102;
1605
- goto tr101;
1606
- tr101:
1611
+ goto tr103;
1612
+ goto tr102;
1613
+ tr102:
1607
1614
  #line 1 "NONE"
1608
1615
  {te = p+1;}
1609
1616
  #line 51 "ext/ragel/base_lexer.rl"
@@ -1617,11 +1624,11 @@ st65:
1617
1624
  if ( ++p == pe )
1618
1625
  goto _test_eof65;
1619
1626
  case 65:
1620
- #line 1621 "ext/c/lexer.c"
1627
+ #line 1628 "ext/c/lexer.c"
1621
1628
  if ( (*p) == 60 )
1622
- goto tr102;
1623
- goto tr101;
1624
- tr102:
1629
+ goto tr103;
1630
+ goto tr102;
1631
+ tr103:
1625
1632
  #line 51 "ext/ragel/base_lexer.rl"
1626
1633
  {
1627
1634
  if ( (*p) == '\n' ) lines++;
@@ -1633,13 +1640,13 @@ st66:
1633
1640
  if ( ++p == pe )
1634
1641
  goto _test_eof66;
1635
1642
  case 66:
1636
- #line 1637 "ext/c/lexer.c"
1643
+ #line 1644 "ext/c/lexer.c"
1637
1644
  switch( (*p) ) {
1638
- case 47: goto tr105;
1639
- case 60: goto tr102;
1645
+ case 47: goto tr106;
1646
+ case 60: goto tr103;
1640
1647
  }
1641
- goto tr101;
1642
- tr105:
1648
+ goto tr102;
1649
+ tr106:
1643
1650
  #line 51 "ext/ragel/base_lexer.rl"
1644
1651
  {
1645
1652
  if ( (*p) == '\n' ) lines++;
@@ -1649,13 +1656,13 @@ st67:
1649
1656
  if ( ++p == pe )
1650
1657
  goto _test_eof67;
1651
1658
  case 67:
1652
- #line 1653 "ext/c/lexer.c"
1659
+ #line 1660 "ext/c/lexer.c"
1653
1660
  switch( (*p) ) {
1654
- case 60: goto tr102;
1655
- case 115: goto tr106;
1661
+ case 60: goto tr103;
1662
+ case 115: goto tr107;
1656
1663
  }
1657
- goto tr101;
1658
- tr106:
1664
+ goto tr102;
1665
+ tr107:
1659
1666
  #line 51 "ext/ragel/base_lexer.rl"
1660
1667
  {
1661
1668
  if ( (*p) == '\n' ) lines++;
@@ -1665,14 +1672,14 @@ st68:
1665
1672
  if ( ++p == pe )
1666
1673
  goto _test_eof68;
1667
1674
  case 68:
1668
- #line 1669 "ext/c/lexer.c"
1675
+ #line 1676 "ext/c/lexer.c"
1669
1676
  switch( (*p) ) {
1670
- case 60: goto tr102;
1671
- case 99: goto tr107;
1672
- case 116: goto tr108;
1677
+ case 60: goto tr103;
1678
+ case 99: goto tr108;
1679
+ case 116: goto tr109;
1673
1680
  }
1674
- goto tr101;
1675
- tr107:
1681
+ goto tr102;
1682
+ tr108:
1676
1683
  #line 51 "ext/ragel/base_lexer.rl"
1677
1684
  {
1678
1685
  if ( (*p) == '\n' ) lines++;
@@ -1682,13 +1689,13 @@ st69:
1682
1689
  if ( ++p == pe )
1683
1690
  goto _test_eof69;
1684
1691
  case 69:
1685
- #line 1686 "ext/c/lexer.c"
1692
+ #line 1693 "ext/c/lexer.c"
1686
1693
  switch( (*p) ) {
1687
- case 60: goto tr102;
1688
- case 114: goto tr109;
1694
+ case 60: goto tr103;
1695
+ case 114: goto tr110;
1689
1696
  }
1690
- goto tr101;
1691
- tr109:
1697
+ goto tr102;
1698
+ tr110:
1692
1699
  #line 51 "ext/ragel/base_lexer.rl"
1693
1700
  {
1694
1701
  if ( (*p) == '\n' ) lines++;
@@ -1698,13 +1705,13 @@ st70:
1698
1705
  if ( ++p == pe )
1699
1706
  goto _test_eof70;
1700
1707
  case 70:
1701
- #line 1702 "ext/c/lexer.c"
1708
+ #line 1709 "ext/c/lexer.c"
1702
1709
  switch( (*p) ) {
1703
- case 60: goto tr102;
1704
- case 105: goto tr110;
1710
+ case 60: goto tr103;
1711
+ case 105: goto tr111;
1705
1712
  }
1706
- goto tr101;
1707
- tr110:
1713
+ goto tr102;
1714
+ tr111:
1708
1715
  #line 51 "ext/ragel/base_lexer.rl"
1709
1716
  {
1710
1717
  if ( (*p) == '\n' ) lines++;
@@ -1714,13 +1721,13 @@ st71:
1714
1721
  if ( ++p == pe )
1715
1722
  goto _test_eof71;
1716
1723
  case 71:
1717
- #line 1718 "ext/c/lexer.c"
1724
+ #line 1725 "ext/c/lexer.c"
1718
1725
  switch( (*p) ) {
1719
- case 60: goto tr102;
1720
- case 112: goto tr111;
1726
+ case 60: goto tr103;
1727
+ case 112: goto tr112;
1721
1728
  }
1722
- goto tr101;
1723
- tr111:
1729
+ goto tr102;
1730
+ tr112:
1724
1731
  #line 51 "ext/ragel/base_lexer.rl"
1725
1732
  {
1726
1733
  if ( (*p) == '\n' ) lines++;
@@ -1730,13 +1737,13 @@ st72:
1730
1737
  if ( ++p == pe )
1731
1738
  goto _test_eof72;
1732
1739
  case 72:
1733
- #line 1734 "ext/c/lexer.c"
1740
+ #line 1741 "ext/c/lexer.c"
1734
1741
  switch( (*p) ) {
1735
- case 60: goto tr102;
1736
- case 116: goto tr112;
1742
+ case 60: goto tr103;
1743
+ case 116: goto tr113;
1737
1744
  }
1738
- goto tr101;
1739
- tr112:
1745
+ goto tr102;
1746
+ tr113:
1740
1747
  #line 51 "ext/ragel/base_lexer.rl"
1741
1748
  {
1742
1749
  if ( (*p) == '\n' ) lines++;
@@ -1746,13 +1753,13 @@ st73:
1746
1753
  if ( ++p == pe )
1747
1754
  goto _test_eof73;
1748
1755
  case 73:
1749
- #line 1750 "ext/c/lexer.c"
1756
+ #line 1757 "ext/c/lexer.c"
1750
1757
  switch( (*p) ) {
1751
- case 60: goto tr102;
1752
- case 62: goto tr113;
1758
+ case 60: goto tr103;
1759
+ case 62: goto tr114;
1753
1760
  }
1754
- goto tr101;
1755
- tr108:
1761
+ goto tr102;
1762
+ tr109:
1756
1763
  #line 51 "ext/ragel/base_lexer.rl"
1757
1764
  {
1758
1765
  if ( (*p) == '\n' ) lines++;
@@ -1762,13 +1769,13 @@ st74:
1762
1769
  if ( ++p == pe )
1763
1770
  goto _test_eof74;
1764
1771
  case 74:
1765
- #line 1766 "ext/c/lexer.c"
1772
+ #line 1773 "ext/c/lexer.c"
1766
1773
  switch( (*p) ) {
1767
- case 60: goto tr102;
1768
- case 121: goto tr114;
1774
+ case 60: goto tr103;
1775
+ case 121: goto tr115;
1769
1776
  }
1770
- goto tr101;
1771
- tr114:
1777
+ goto tr102;
1778
+ tr115:
1772
1779
  #line 51 "ext/ragel/base_lexer.rl"
1773
1780
  {
1774
1781
  if ( (*p) == '\n' ) lines++;
@@ -1778,13 +1785,13 @@ st75:
1778
1785
  if ( ++p == pe )
1779
1786
  goto _test_eof75;
1780
1787
  case 75:
1781
- #line 1782 "ext/c/lexer.c"
1788
+ #line 1789 "ext/c/lexer.c"
1782
1789
  switch( (*p) ) {
1783
- case 60: goto tr102;
1784
- case 108: goto tr115;
1790
+ case 60: goto tr103;
1791
+ case 108: goto tr116;
1785
1792
  }
1786
- goto tr101;
1787
- tr115:
1793
+ goto tr102;
1794
+ tr116:
1788
1795
  #line 51 "ext/ragel/base_lexer.rl"
1789
1796
  {
1790
1797
  if ( (*p) == '\n' ) lines++;
@@ -1794,15 +1801,15 @@ st76:
1794
1801
  if ( ++p == pe )
1795
1802
  goto _test_eof76;
1796
1803
  case 76:
1797
- #line 1798 "ext/c/lexer.c"
1804
+ #line 1805 "ext/c/lexer.c"
1798
1805
  switch( (*p) ) {
1799
- case 60: goto tr102;
1800
- case 101: goto tr112;
1806
+ case 60: goto tr103;
1807
+ case 101: goto tr113;
1801
1808
  }
1802
- goto tr101;
1809
+ goto tr102;
1803
1810
  }
1811
+ _test_eof26: ( state->cs) = 26; goto _test_eof;
1804
1812
  _test_eof27: ( state->cs) = 27; goto _test_eof;
1805
- _test_eof28: ( state->cs) = 28; goto _test_eof;
1806
1813
  _test_eof1: ( state->cs) = 1; goto _test_eof;
1807
1814
  _test_eof2: ( state->cs) = 2; goto _test_eof;
1808
1815
  _test_eof3: ( state->cs) = 3; goto _test_eof;
@@ -1815,7 +1822,7 @@ case 76:
1815
1822
  _test_eof10: ( state->cs) = 10; goto _test_eof;
1816
1823
  _test_eof11: ( state->cs) = 11; goto _test_eof;
1817
1824
  _test_eof12: ( state->cs) = 12; goto _test_eof;
1818
- _test_eof29: ( state->cs) = 29; goto _test_eof;
1825
+ _test_eof28: ( state->cs) = 28; goto _test_eof;
1819
1826
  _test_eof13: ( state->cs) = 13; goto _test_eof;
1820
1827
  _test_eof14: ( state->cs) = 14; goto _test_eof;
1821
1828
  _test_eof15: ( state->cs) = 15; goto _test_eof;
@@ -1828,6 +1835,7 @@ case 76:
1828
1835
  _test_eof22: ( state->cs) = 22; goto _test_eof;
1829
1836
  _test_eof23: ( state->cs) = 23; goto _test_eof;
1830
1837
  _test_eof24: ( state->cs) = 24; goto _test_eof;
1838
+ _test_eof29: ( state->cs) = 29; goto _test_eof;
1831
1839
  _test_eof30: ( state->cs) = 30; goto _test_eof;
1832
1840
  _test_eof31: ( state->cs) = 31; goto _test_eof;
1833
1841
  _test_eof32: ( state->cs) = 32; goto _test_eof;
@@ -1857,9 +1865,8 @@ case 76:
1857
1865
  _test_eof56: ( state->cs) = 56; goto _test_eof;
1858
1866
  _test_eof57: ( state->cs) = 57; goto _test_eof;
1859
1867
  _test_eof58: ( state->cs) = 58; goto _test_eof;
1860
- _test_eof25: ( state->cs) = 25; goto _test_eof;
1861
1868
  _test_eof59: ( state->cs) = 59; goto _test_eof;
1862
- _test_eof26: ( state->cs) = 26; goto _test_eof;
1869
+ _test_eof25: ( state->cs) = 25; goto _test_eof;
1863
1870
  _test_eof60: ( state->cs) = 60; goto _test_eof;
1864
1871
  _test_eof61: ( state->cs) = 61; goto _test_eof;
1865
1872
  _test_eof62: ( state->cs) = 62; goto _test_eof;
@@ -1882,7 +1889,7 @@ case 76:
1882
1889
  if ( p == eof )
1883
1890
  {
1884
1891
  switch ( ( state->cs) ) {
1885
- case 28: goto tr34;
1892
+ case 27: goto tr33;
1886
1893
  case 1: goto tr0;
1887
1894
  case 2: goto tr0;
1888
1895
  case 3: goto tr0;
@@ -1895,7 +1902,7 @@ case 76:
1895
1902
  case 10: goto tr0;
1896
1903
  case 11: goto tr0;
1897
1904
  case 12: goto tr0;
1898
- case 29: goto tr38;
1905
+ case 28: goto tr37;
1899
1906
  case 13: goto tr0;
1900
1907
  case 14: goto tr0;
1901
1908
  case 15: goto tr0;
@@ -1908,50 +1915,51 @@ case 76:
1908
1915
  case 22: goto tr0;
1909
1916
  case 23: goto tr0;
1910
1917
  case 24: goto tr0;
1918
+ case 29: goto tr38;
1911
1919
  case 30: goto tr39;
1912
- case 31: goto tr40;
1913
- case 32: goto tr40;
1914
- case 34: goto tr45;
1915
- case 36: goto tr49;
1916
- case 38: goto tr52;
1917
- case 40: goto tr55;
1920
+ case 31: goto tr39;
1921
+ case 33: goto tr44;
1922
+ case 35: goto tr48;
1923
+ case 37: goto tr51;
1924
+ case 39: goto tr54;
1925
+ case 41: goto tr63;
1918
1926
  case 42: goto tr64;
1919
- case 43: goto tr65;
1920
- case 44: goto tr65;
1921
- case 45: goto tr65;
1922
- case 46: goto tr65;
1923
- case 47: goto tr65;
1924
- case 48: goto tr65;
1925
- case 49: goto tr65;
1926
- case 50: goto tr65;
1927
- case 51: goto tr65;
1928
- case 52: goto tr65;
1927
+ case 43: goto tr64;
1928
+ case 44: goto tr64;
1929
+ case 45: goto tr64;
1930
+ case 46: goto tr64;
1931
+ case 47: goto tr64;
1932
+ case 48: goto tr64;
1933
+ case 49: goto tr64;
1934
+ case 50: goto tr64;
1935
+ case 51: goto tr64;
1936
+ case 53: goto tr79;
1929
1937
  case 54: goto tr80;
1930
- case 55: goto tr81;
1931
- case 57: goto tr84;
1932
- case 59: goto tr93;
1933
- case 61: goto tr97;
1934
- case 62: goto tr97;
1935
- case 63: goto tr97;
1936
- case 65: goto tr103;
1937
- case 66: goto tr104;
1938
- case 67: goto tr104;
1939
- case 68: goto tr104;
1940
- case 69: goto tr104;
1941
- case 70: goto tr104;
1942
- case 71: goto tr104;
1943
- case 72: goto tr104;
1944
- case 73: goto tr104;
1945
- case 74: goto tr104;
1946
- case 75: goto tr104;
1947
- case 76: goto tr104;
1938
+ case 56: goto tr83;
1939
+ case 58: goto tr93;
1940
+ case 59: goto tr94;
1941
+ case 61: goto tr98;
1942
+ case 62: goto tr98;
1943
+ case 63: goto tr98;
1944
+ case 65: goto tr104;
1945
+ case 66: goto tr105;
1946
+ case 67: goto tr105;
1947
+ case 68: goto tr105;
1948
+ case 69: goto tr105;
1949
+ case 70: goto tr105;
1950
+ case 71: goto tr105;
1951
+ case 72: goto tr105;
1952
+ case 73: goto tr105;
1953
+ case 74: goto tr105;
1954
+ case 75: goto tr105;
1955
+ case 76: goto tr105;
1948
1956
  }
1949
1957
  }
1950
1958
 
1951
1959
  _out: {}
1952
1960
  }
1953
1961
 
1954
- #line 119 "ext/c/lexer.rl"
1962
+ #line 120 "ext/c/lexer.rl"
1955
1963
 
1956
1964
  state->lines = lines;
1957
1965
 
@@ -1995,7 +2003,7 @@ VALUE oga_xml_lexer_allocate(VALUE klass)
1995
2003
  }
1996
2004
 
1997
2005
 
1998
- #line 168 "ext/c/lexer.rl"
2006
+ #line 169 "ext/c/lexer.rl"
1999
2007
 
2000
2008
 
2001
2009
  void Init_liboga_xml_lexer()