oga 0.2.3-java → 0.3.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: cab88a36213701cd96d5fc500eb1fa2a6a114f51
4
- data.tar.gz: ea32fd579cd4c48079c7f9d0ad1ae661f4fd199e
3
+ metadata.gz: 89ef02859eae3c3117773035f01723b32a7031a7
4
+ data.tar.gz: db6f29804d9ff062b5614996414461fd70dca00b
5
5
  SHA512:
6
- metadata.gz: 7195e3bc746ab0c58111d0843bf9e0843cd5ea5e2712b9fdaef5ea487787f29b620bae9faa593eb476819f5bdcdbc69def2501d36ed15f14dd93867c28a8b500
7
- data.tar.gz: 2c936b7fc7e9e21e1b0ba0ac938abd91513dd019d4ce652ebb4d2a5b9b0e0585d9eddb24e7f65d17cc2231dc6646f512e71098335d82ccf41296e2d9a03f5096
6
+ metadata.gz: 0faba8accbbb9709bb68ed1b688a9728ad4e34125a9eb28f8a6eb50db3c19c320f1bbf89f9ce84ea66fadc5fbc4b7a8bc836b32904a5ad50e8ff49678f21a120
7
+ data.tar.gz: 720d2c649056d5ffaf460725aaffd456081999a0311801cc11332795f81382836e88f77ef2d5d3ae30ca9a0e64801851cdf7af6e52858307e67beacf817def57
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
 
data/ext/c/extconf.rb CHANGED
@@ -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')
data/ext/c/lexer.c CHANGED
@@ -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()