occi 2.1.1 → 2.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,7 +5,7 @@
5
5
  # Generated using ANTLR version: 3.2.1-SNAPSHOT Jul 31, 2010 19:34:52
6
6
  # Ruby runtime library version: 1.8.11
7
7
  # Input grammar file: OCCIANTLR.g
8
- # Generated at: 2012-06-09 10:31:15
8
+ # Generated at: 2012-06-12 16:37:00
9
9
  #
10
10
 
11
11
  # ~~~> start load path setup
@@ -76,17 +76,18 @@ module OCCIANTLR
76
76
  module TokenData
77
77
 
78
78
  # define the token constants
79
- define_tokens( :T__29 => 29, :T__28 => 28, :T__27 => 27, :T__26 => 26,
80
- :T__25 => 25, :T__24 => 24, :T__23 => 23, :ESC => 8,
81
- :T__22 => 22, :T__21 => 21, :T__20 => 20, :EOF => -1,
82
- :T__9 => 9, :T__19 => 19, :T__16 => 16, :T__15 => 15,
83
- :T__18 => 18, :T__17 => 17, :T__12 => 12, :T__11 => 11,
84
- :T__14 => 14, :T__13 => 13, :T__10 => 10, :DIGIT => 7,
85
- :LOALPHA => 5, :T__42 => 42, :T__43 => 43, :T__40 => 40,
86
- :T__41 => 41, :T__44 => 44, :T__30 => 30, :T__31 => 31,
87
- :T__32 => 32, :T__33 => 33, :WS => 4, :T__34 => 34, :T__35 => 35,
88
- :T__36 => 36, :T__37 => 37, :UPALPHA => 6, :T__38 => 38,
89
- :T__39 => 39 )
79
+ define_tokens( :TERM => 45, :LT => 18, :CLASS => 11, :ATTRIBUTES => 15,
80
+ :ESC => 42, :EQUALS => 9, :EOF => -1, :ACTION => 41,
81
+ :ACTIONS => 16, :AT => 27, :QUOTE => 10, :SLASH => 37,
82
+ :TILDE => 33, :PLUS => 31, :DIGIT => 26, :LOALPHA => 24,
83
+ :DOT => 32, :X_OCCI_ATTRIBUTE_KEY => 22, :PERCENT => 28,
84
+ :DASH => 38, :HASH => 34, :AMPERSAND => 36, :CATEGORY => 21,
85
+ :UNDERSCORE => 29, :REL => 13, :CATEGORY_KEY => 4, :SEMICOLON => 6,
86
+ :LINK => 44, :SQUOTE => 43, :KIND => 39, :SCHEME => 8,
87
+ :COLON => 5, :MIXIN => 40, :WS => 7, :QUESTION => 35,
88
+ :UPALPHA => 25, :LINK_KEY => 17, :LOCATION => 14, :GT => 19,
89
+ :X_OCCI_LOCATION_KEY => 23, :SELF => 20, :TITLE => 12,
90
+ :BACKSLASH => 30 )
90
91
 
91
92
  # register the proper human-readable name or literal value
92
93
  # for each token type
@@ -94,13 +95,14 @@ module OCCIANTLR
94
95
  # this is necessary because anonymous tokens, which are
95
96
  # created from literal values in the grammar, do not
96
97
  # have descriptive names
97
- register_names( "WS", "LOALPHA", "UPALPHA", "DIGIT", "ESC", "'Category'",
98
- "':'", "';'", "'scheme'", "'='", "'\"'", "'class'",
99
- "'title'", "'rel'", "'location'", "'attributes'", "'actions'",
100
- "'Link'", "'<'", "'>'", "'self'", "'category'", "'X-OCCI-Attribute'",
101
- "'X-OCCI-Location'", "'@'", "'%'", "'_'", "'\\\\'",
102
- "'+'", "'.'", "'~'", "'#'", "'?'", "'&'", "'/'", "'-'",
103
- "'action'", "'kind'", "'mixin'", "'term'", "'\\''" )
98
+ register_names( "CATEGORY_KEY", "COLON", "SEMICOLON", "WS", "SCHEME",
99
+ "EQUALS", "QUOTE", "CLASS", "TITLE", "REL", "LOCATION",
100
+ "ATTRIBUTES", "ACTIONS", "LINK_KEY", "LT", "GT", "SELF",
101
+ "CATEGORY", "X_OCCI_ATTRIBUTE_KEY", "X_OCCI_LOCATION_KEY",
102
+ "LOALPHA", "UPALPHA", "DIGIT", "AT", "PERCENT", "UNDERSCORE",
103
+ "BACKSLASH", "PLUS", "DOT", "TILDE", "HASH", "QUESTION",
104
+ "AMPERSAND", "SLASH", "DASH", "KIND", "MIXIN", "ACTION",
105
+ "ESC", "SQUOTE", "LINK", "TERM" )
104
106
 
105
107
  end
106
108
 
@@ -115,7 +117,8 @@ module OCCIANTLR
115
117
  :link_attributes, :x_occi_attribute, :x_occi_location,
116
118
  :uri, :term, :scheme, :class_type, :title, :attribute,
117
119
  :attribute_name, :attribute_component, :attribute_value,
118
- :string, :number ].freeze
120
+ :string, :number, :reserved_words, :quoted_string,
121
+ :digits ].freeze
119
122
 
120
123
 
121
124
  include TokenData
@@ -137,7 +140,7 @@ module OCCIANTLR
137
140
  # parser rule category
138
141
  #
139
142
  # (in OCCIANTLR.g)
140
- # 25:1: category returns [hash] : 'Category' ':' category_value ;
143
+ # 25:1: category returns [hash] : CATEGORY_KEY COLON category_value ;
141
144
  #
142
145
  def category
143
146
  # -> uncomment the next line to manually enable rule tracing
@@ -146,9 +149,9 @@ module OCCIANTLR
146
149
  category_value1 = nil
147
150
 
148
151
  begin
149
- # at line 26:4: 'Category' ':' category_value
150
- match( T__9, TOKENS_FOLLOWING_T__9_IN_category_39 )
151
- match( T__10, TOKENS_FOLLOWING_T__10_IN_category_41 )
152
+ # at line 26:4: CATEGORY_KEY COLON category_value
153
+ match( CATEGORY_KEY, TOKENS_FOLLOWING_CATEGORY_KEY_IN_category_39 )
154
+ match( COLON, TOKENS_FOLLOWING_COLON_IN_category_41 )
152
155
  @state.following.push( TOKENS_FOLLOWING_category_value_IN_category_43 )
153
156
  category_value1 = category_value
154
157
  @state.following.pop
@@ -174,7 +177,7 @@ module OCCIANTLR
174
177
  # parser rule category_value
175
178
  #
176
179
  # (in OCCIANTLR.g)
177
- # 27:3: category_value returns [hash] : category_term category_scheme category_class ( category_title )? ( category_rel )? ( category_location )? ( category_attributes )? ( category_actions )? ( ';' )? ;
180
+ # 27:3: category_value returns [hash] : category_term category_scheme category_class ( category_title )? ( category_rel )? ( category_location )? ( category_attributes )? ( category_actions )? ( SEMICOLON )? ;
178
181
  #
179
182
  def category_value
180
183
  # -> uncomment the next line to manually enable rule tracing
@@ -192,7 +195,7 @@ module OCCIANTLR
192
195
  hash = Hashie::Mash.new( {:kinds=>[],:mixins=>[],:actions=>[] } )
193
196
 
194
197
  begin
195
- # at line 29:15: category_term category_scheme category_class ( category_title )? ( category_rel )? ( category_location )? ( category_attributes )? ( category_actions )? ( ';' )?
198
+ # at line 29:15: category_term category_scheme category_class ( category_title )? ( category_rel )? ( category_location )? ( category_attributes )? ( category_actions )? ( SEMICOLON )?
196
199
  @state.following.push( TOKENS_FOLLOWING_category_term_IN_category_value_75 )
197
200
  category_term3 = category_term
198
201
  @state.following.pop
@@ -206,16 +209,16 @@ module OCCIANTLR
206
209
  alt_1 = 2
207
210
  look_1_0 = @input.peek( 1 )
208
211
 
209
- if ( look_1_0 == T__11 )
212
+ if ( look_1_0 == SEMICOLON )
210
213
  look_1_1 = @input.peek( 2 )
211
214
 
212
215
  if ( look_1_1 == WS )
213
216
  look_1_3 = @input.peek( 3 )
214
217
 
215
- if ( look_1_3 == T__16 )
218
+ if ( look_1_3 == TITLE )
216
219
  alt_1 = 1
217
220
  end
218
- elsif ( look_1_1 == T__16 )
221
+ elsif ( look_1_1 == TITLE )
219
222
  alt_1 = 1
220
223
  end
221
224
  end
@@ -231,16 +234,16 @@ module OCCIANTLR
231
234
  alt_2 = 2
232
235
  look_2_0 = @input.peek( 1 )
233
236
 
234
- if ( look_2_0 == T__11 )
237
+ if ( look_2_0 == SEMICOLON )
235
238
  look_2_1 = @input.peek( 2 )
236
239
 
237
240
  if ( look_2_1 == WS )
238
241
  look_2_3 = @input.peek( 3 )
239
242
 
240
- if ( look_2_3 == T__17 )
243
+ if ( look_2_3 == REL )
241
244
  alt_2 = 1
242
245
  end
243
- elsif ( look_2_1 == T__17 )
246
+ elsif ( look_2_1 == REL )
244
247
  alt_2 = 1
245
248
  end
246
249
  end
@@ -256,16 +259,16 @@ module OCCIANTLR
256
259
  alt_3 = 2
257
260
  look_3_0 = @input.peek( 1 )
258
261
 
259
- if ( look_3_0 == T__11 )
262
+ if ( look_3_0 == SEMICOLON )
260
263
  look_3_1 = @input.peek( 2 )
261
264
 
262
265
  if ( look_3_1 == WS )
263
266
  look_3_3 = @input.peek( 3 )
264
267
 
265
- if ( look_3_3 == T__18 )
268
+ if ( look_3_3 == LOCATION )
266
269
  alt_3 = 1
267
270
  end
268
- elsif ( look_3_1 == T__18 )
271
+ elsif ( look_3_1 == LOCATION )
269
272
  alt_3 = 1
270
273
  end
271
274
  end
@@ -281,16 +284,16 @@ module OCCIANTLR
281
284
  alt_4 = 2
282
285
  look_4_0 = @input.peek( 1 )
283
286
 
284
- if ( look_4_0 == T__11 )
287
+ if ( look_4_0 == SEMICOLON )
285
288
  look_4_1 = @input.peek( 2 )
286
289
 
287
290
  if ( look_4_1 == WS )
288
291
  look_4_3 = @input.peek( 3 )
289
292
 
290
- if ( look_4_3 == T__19 )
293
+ if ( look_4_3 == ATTRIBUTES )
291
294
  alt_4 = 1
292
295
  end
293
- elsif ( look_4_1 == T__19 )
296
+ elsif ( look_4_1 == ATTRIBUTES )
294
297
  alt_4 = 1
295
298
  end
296
299
  end
@@ -306,10 +309,10 @@ module OCCIANTLR
306
309
  alt_5 = 2
307
310
  look_5_0 = @input.peek( 1 )
308
311
 
309
- if ( look_5_0 == T__11 )
312
+ if ( look_5_0 == SEMICOLON )
310
313
  look_5_1 = @input.peek( 2 )
311
314
 
312
- if ( look_5_1 == WS || look_5_1 == T__20 )
315
+ if ( look_5_1 == WS || look_5_1 == ACTIONS )
313
316
  alt_5 = 1
314
317
  end
315
318
  end
@@ -321,17 +324,17 @@ module OCCIANTLR
321
324
  @state.following.pop
322
325
 
323
326
  end
324
- # at line 29:148: ( ';' )?
327
+ # at line 29:148: ( SEMICOLON )?
325
328
  alt_6 = 2
326
329
  look_6_0 = @input.peek( 1 )
327
330
 
328
- if ( look_6_0 == T__11 )
331
+ if ( look_6_0 == SEMICOLON )
329
332
  alt_6 = 1
330
333
  end
331
334
  case alt_6
332
335
  when 1
333
- # at line 29:148: ';'
334
- match( T__11, TOKENS_FOLLOWING_T__11_IN_category_value_96 )
336
+ # at line 29:148: SEMICOLON
337
+ match( SEMICOLON, TOKENS_FOLLOWING_SEMICOLON_IN_category_value_96 )
335
338
 
336
339
  end
337
340
  # --> action
@@ -414,7 +417,7 @@ module OCCIANTLR
414
417
  # parser rule category_scheme
415
418
  #
416
419
  # (in OCCIANTLR.g)
417
- # 43:3: category_scheme returns [value] : ';' ( WS )? 'scheme' '=' '\"' scheme '\"' ;
420
+ # 43:3: category_scheme returns [value] : SEMICOLON ( WS )? SCHEME EQUALS QUOTE scheme QUOTE ;
418
421
  #
419
422
  def category_scheme
420
423
  # -> uncomment the next line to manually enable rule tracing
@@ -423,9 +426,9 @@ module OCCIANTLR
423
426
  scheme11 = nil
424
427
 
425
428
  begin
426
- # at line 43:37: ';' ( WS )? 'scheme' '=' '\"' scheme '\"'
427
- match( T__11, TOKENS_FOLLOWING_T__11_IN_category_scheme_157 )
428
- # at line 43:41: ( WS )?
429
+ # at line 43:37: SEMICOLON ( WS )? SCHEME EQUALS QUOTE scheme QUOTE
430
+ match( SEMICOLON, TOKENS_FOLLOWING_SEMICOLON_IN_category_scheme_157 )
431
+ # at line 43:47: ( WS )?
429
432
  alt_8 = 2
430
433
  look_8_0 = @input.peek( 1 )
431
434
 
@@ -434,17 +437,17 @@ module OCCIANTLR
434
437
  end
435
438
  case alt_8
436
439
  when 1
437
- # at line 43:41: WS
440
+ # at line 43:47: WS
438
441
  match( WS, TOKENS_FOLLOWING_WS_IN_category_scheme_159 )
439
442
 
440
443
  end
441
- match( T__12, TOKENS_FOLLOWING_T__12_IN_category_scheme_162 )
442
- match( T__13, TOKENS_FOLLOWING_T__13_IN_category_scheme_164 )
443
- match( T__14, TOKENS_FOLLOWING_T__14_IN_category_scheme_166 )
444
+ match( SCHEME, TOKENS_FOLLOWING_SCHEME_IN_category_scheme_162 )
445
+ match( EQUALS, TOKENS_FOLLOWING_EQUALS_IN_category_scheme_164 )
446
+ match( QUOTE, TOKENS_FOLLOWING_QUOTE_IN_category_scheme_166 )
444
447
  @state.following.push( TOKENS_FOLLOWING_scheme_IN_category_scheme_168 )
445
448
  scheme11 = scheme
446
449
  @state.following.pop
447
- match( T__14, TOKENS_FOLLOWING_T__14_IN_category_scheme_170 )
450
+ match( QUOTE, TOKENS_FOLLOWING_QUOTE_IN_category_scheme_170 )
448
451
  # --> action
449
452
  value = ( scheme11 && @input.to_s( scheme11.start, scheme11.stop ) )
450
453
  # <-- action
@@ -467,7 +470,7 @@ module OCCIANTLR
467
470
  # parser rule category_class
468
471
  #
469
472
  # (in OCCIANTLR.g)
470
- # 45:3: category_class returns [value] : ';' ( WS )? 'class' '=' '\"' class_type '\"' ;
473
+ # 45:3: category_class returns [value] : SEMICOLON ( WS )? CLASS EQUALS QUOTE class_type QUOTE ;
471
474
  #
472
475
  def category_class
473
476
  # -> uncomment the next line to manually enable rule tracing
@@ -476,9 +479,9 @@ module OCCIANTLR
476
479
  class_type12 = nil
477
480
 
478
481
  begin
479
- # at line 45:37: ';' ( WS )? 'class' '=' '\"' class_type '\"'
480
- match( T__11, TOKENS_FOLLOWING_T__11_IN_category_class_199 )
481
- # at line 45:41: ( WS )?
482
+ # at line 45:37: SEMICOLON ( WS )? CLASS EQUALS QUOTE class_type QUOTE
483
+ match( SEMICOLON, TOKENS_FOLLOWING_SEMICOLON_IN_category_class_199 )
484
+ # at line 45:47: ( WS )?
482
485
  alt_9 = 2
483
486
  look_9_0 = @input.peek( 1 )
484
487
 
@@ -487,17 +490,17 @@ module OCCIANTLR
487
490
  end
488
491
  case alt_9
489
492
  when 1
490
- # at line 45:41: WS
493
+ # at line 45:47: WS
491
494
  match( WS, TOKENS_FOLLOWING_WS_IN_category_class_201 )
492
495
 
493
496
  end
494
- match( T__15, TOKENS_FOLLOWING_T__15_IN_category_class_204 )
495
- match( T__13, TOKENS_FOLLOWING_T__13_IN_category_class_206 )
496
- match( T__14, TOKENS_FOLLOWING_T__14_IN_category_class_208 )
497
+ match( CLASS, TOKENS_FOLLOWING_CLASS_IN_category_class_204 )
498
+ match( EQUALS, TOKENS_FOLLOWING_EQUALS_IN_category_class_206 )
499
+ match( QUOTE, TOKENS_FOLLOWING_QUOTE_IN_category_class_208 )
497
500
  @state.following.push( TOKENS_FOLLOWING_class_type_IN_category_class_210 )
498
501
  class_type12 = class_type
499
502
  @state.following.pop
500
- match( T__14, TOKENS_FOLLOWING_T__14_IN_category_class_212 )
503
+ match( QUOTE, TOKENS_FOLLOWING_QUOTE_IN_category_class_212 )
501
504
  # --> action
502
505
  value = ( class_type12 && @input.to_s( class_type12.start, class_type12.stop ) )
503
506
  # <-- action
@@ -520,7 +523,7 @@ module OCCIANTLR
520
523
  # parser rule category_title
521
524
  #
522
525
  # (in OCCIANTLR.g)
523
- # 47:3: category_title returns [value] : ';' ( WS )? 'title' '=' '\"' title '\"' ;
526
+ # 47:3: category_title returns [value] : SEMICOLON ( WS )? TITLE EQUALS QUOTE title QUOTE ;
524
527
  #
525
528
  def category_title
526
529
  # -> uncomment the next line to manually enable rule tracing
@@ -529,9 +532,9 @@ module OCCIANTLR
529
532
  title13 = nil
530
533
 
531
534
  begin
532
- # at line 47:37: ';' ( WS )? 'title' '=' '\"' title '\"'
533
- match( T__11, TOKENS_FOLLOWING_T__11_IN_category_title_237 )
534
- # at line 47:41: ( WS )?
535
+ # at line 47:37: SEMICOLON ( WS )? TITLE EQUALS QUOTE title QUOTE
536
+ match( SEMICOLON, TOKENS_FOLLOWING_SEMICOLON_IN_category_title_237 )
537
+ # at line 47:47: ( WS )?
535
538
  alt_10 = 2
536
539
  look_10_0 = @input.peek( 1 )
537
540
 
@@ -540,17 +543,17 @@ module OCCIANTLR
540
543
  end
541
544
  case alt_10
542
545
  when 1
543
- # at line 47:41: WS
546
+ # at line 47:47: WS
544
547
  match( WS, TOKENS_FOLLOWING_WS_IN_category_title_239 )
545
548
 
546
549
  end
547
- match( T__16, TOKENS_FOLLOWING_T__16_IN_category_title_242 )
548
- match( T__13, TOKENS_FOLLOWING_T__13_IN_category_title_244 )
549
- match( T__14, TOKENS_FOLLOWING_T__14_IN_category_title_246 )
550
+ match( TITLE, TOKENS_FOLLOWING_TITLE_IN_category_title_242 )
551
+ match( EQUALS, TOKENS_FOLLOWING_EQUALS_IN_category_title_244 )
552
+ match( QUOTE, TOKENS_FOLLOWING_QUOTE_IN_category_title_246 )
550
553
  @state.following.push( TOKENS_FOLLOWING_title_IN_category_title_248 )
551
554
  title13 = title
552
555
  @state.following.pop
553
- match( T__14, TOKENS_FOLLOWING_T__14_IN_category_title_250 )
556
+ match( QUOTE, TOKENS_FOLLOWING_QUOTE_IN_category_title_250 )
554
557
  # --> action
555
558
  value = ( title13 && @input.to_s( title13.start, title13.stop ) )
556
559
  # <-- action
@@ -573,7 +576,7 @@ module OCCIANTLR
573
576
  # parser rule category_rel
574
577
  #
575
578
  # (in OCCIANTLR.g)
576
- # 49:3: category_rel returns [value] : ';' ( WS )? 'rel' '=' '\"' uri '\"' ;
579
+ # 49:3: category_rel returns [value] : SEMICOLON ( WS )? REL EQUALS QUOTE uri QUOTE ;
577
580
  #
578
581
  def category_rel
579
582
  # -> uncomment the next line to manually enable rule tracing
@@ -582,9 +585,9 @@ module OCCIANTLR
582
585
  uri14 = nil
583
586
 
584
587
  begin
585
- # at line 49:35: ';' ( WS )? 'rel' '=' '\"' uri '\"'
586
- match( T__11, TOKENS_FOLLOWING_T__11_IN_category_rel_277 )
587
- # at line 49:39: ( WS )?
588
+ # at line 49:35: SEMICOLON ( WS )? REL EQUALS QUOTE uri QUOTE
589
+ match( SEMICOLON, TOKENS_FOLLOWING_SEMICOLON_IN_category_rel_277 )
590
+ # at line 49:45: ( WS )?
588
591
  alt_11 = 2
589
592
  look_11_0 = @input.peek( 1 )
590
593
 
@@ -593,17 +596,17 @@ module OCCIANTLR
593
596
  end
594
597
  case alt_11
595
598
  when 1
596
- # at line 49:39: WS
599
+ # at line 49:45: WS
597
600
  match( WS, TOKENS_FOLLOWING_WS_IN_category_rel_279 )
598
601
 
599
602
  end
600
- match( T__17, TOKENS_FOLLOWING_T__17_IN_category_rel_282 )
601
- match( T__13, TOKENS_FOLLOWING_T__13_IN_category_rel_284 )
602
- match( T__14, TOKENS_FOLLOWING_T__14_IN_category_rel_286 )
603
+ match( REL, TOKENS_FOLLOWING_REL_IN_category_rel_282 )
604
+ match( EQUALS, TOKENS_FOLLOWING_EQUALS_IN_category_rel_284 )
605
+ match( QUOTE, TOKENS_FOLLOWING_QUOTE_IN_category_rel_286 )
603
606
  @state.following.push( TOKENS_FOLLOWING_uri_IN_category_rel_288 )
604
607
  uri14 = uri
605
608
  @state.following.pop
606
- match( T__14, TOKENS_FOLLOWING_T__14_IN_category_rel_290 )
609
+ match( QUOTE, TOKENS_FOLLOWING_QUOTE_IN_category_rel_290 )
607
610
  # --> action
608
611
  value = ( uri14 && @input.to_s( uri14.start, uri14.stop ) )
609
612
  # <-- action
@@ -626,7 +629,7 @@ module OCCIANTLR
626
629
  # parser rule category_location
627
630
  #
628
631
  # (in OCCIANTLR.g)
629
- # 51:3: category_location returns [value] : ';' ( WS )? 'location' '=' '\"' uri '\"' ;
632
+ # 51:3: category_location returns [value] : SEMICOLON ( WS )? LOCATION EQUALS QUOTE uri QUOTE ;
630
633
  #
631
634
  def category_location
632
635
  # -> uncomment the next line to manually enable rule tracing
@@ -635,9 +638,9 @@ module OCCIANTLR
635
638
  uri15 = nil
636
639
 
637
640
  begin
638
- # at line 51:39: ';' ( WS )? 'location' '=' '\"' uri '\"'
639
- match( T__11, TOKENS_FOLLOWING_T__11_IN_category_location_315 )
640
- # at line 51:43: ( WS )?
641
+ # at line 51:39: SEMICOLON ( WS )? LOCATION EQUALS QUOTE uri QUOTE
642
+ match( SEMICOLON, TOKENS_FOLLOWING_SEMICOLON_IN_category_location_315 )
643
+ # at line 51:49: ( WS )?
641
644
  alt_12 = 2
642
645
  look_12_0 = @input.peek( 1 )
643
646
 
@@ -646,17 +649,17 @@ module OCCIANTLR
646
649
  end
647
650
  case alt_12
648
651
  when 1
649
- # at line 51:43: WS
652
+ # at line 51:49: WS
650
653
  match( WS, TOKENS_FOLLOWING_WS_IN_category_location_317 )
651
654
 
652
655
  end
653
- match( T__18, TOKENS_FOLLOWING_T__18_IN_category_location_320 )
654
- match( T__13, TOKENS_FOLLOWING_T__13_IN_category_location_322 )
655
- match( T__14, TOKENS_FOLLOWING_T__14_IN_category_location_324 )
656
+ match( LOCATION, TOKENS_FOLLOWING_LOCATION_IN_category_location_320 )
657
+ match( EQUALS, TOKENS_FOLLOWING_EQUALS_IN_category_location_322 )
658
+ match( QUOTE, TOKENS_FOLLOWING_QUOTE_IN_category_location_324 )
656
659
  @state.following.push( TOKENS_FOLLOWING_uri_IN_category_location_326 )
657
660
  uri15 = uri
658
661
  @state.following.pop
659
- match( T__14, TOKENS_FOLLOWING_T__14_IN_category_location_328 )
662
+ match( QUOTE, TOKENS_FOLLOWING_QUOTE_IN_category_location_328 )
660
663
  # --> action
661
664
  value = ( uri15 && @input.to_s( uri15.start, uri15.stop ) )
662
665
  # <-- action
@@ -679,7 +682,7 @@ module OCCIANTLR
679
682
  # parser rule category_attributes
680
683
  #
681
684
  # (in OCCIANTLR.g)
682
- # 53:3: category_attributes returns [hash] : ';' ( WS )? 'attributes' '=' '\"' attr= attribute_name ( WS next_attr= attribute_name )* '\"' ;
685
+ # 53:3: category_attributes returns [hash] : SEMICOLON ( WS )? ATTRIBUTES EQUALS QUOTE attr= attribute_name ( WS next_attr= attribute_name )* QUOTE ;
683
686
  #
684
687
  def category_attributes
685
688
  # -> uncomment the next line to manually enable rule tracing
@@ -691,9 +694,9 @@ module OCCIANTLR
691
694
  hash = Hashie::Mash.new
692
695
 
693
696
  begin
694
- # at line 54:10: ';' ( WS )? 'attributes' '=' '\"' attr= attribute_name ( WS next_attr= attribute_name )* '\"'
695
- match( T__11, TOKENS_FOLLOWING_T__11_IN_category_attributes_367 )
696
- # at line 54:14: ( WS )?
697
+ # at line 54:10: SEMICOLON ( WS )? ATTRIBUTES EQUALS QUOTE attr= attribute_name ( WS next_attr= attribute_name )* QUOTE
698
+ match( SEMICOLON, TOKENS_FOLLOWING_SEMICOLON_IN_category_attributes_367 )
699
+ # at line 54:20: ( WS )?
697
700
  alt_13 = 2
698
701
  look_13_0 = @input.peek( 1 )
699
702
 
@@ -702,13 +705,13 @@ module OCCIANTLR
702
705
  end
703
706
  case alt_13
704
707
  when 1
705
- # at line 54:14: WS
708
+ # at line 54:20: WS
706
709
  match( WS, TOKENS_FOLLOWING_WS_IN_category_attributes_369 )
707
710
 
708
711
  end
709
- match( T__19, TOKENS_FOLLOWING_T__19_IN_category_attributes_372 )
710
- match( T__13, TOKENS_FOLLOWING_T__13_IN_category_attributes_374 )
711
- match( T__14, TOKENS_FOLLOWING_T__14_IN_category_attributes_376 )
712
+ match( ATTRIBUTES, TOKENS_FOLLOWING_ATTRIBUTES_IN_category_attributes_372 )
713
+ match( EQUALS, TOKENS_FOLLOWING_EQUALS_IN_category_attributes_374 )
714
+ match( QUOTE, TOKENS_FOLLOWING_QUOTE_IN_category_attributes_376 )
712
715
  @state.following.push( TOKENS_FOLLOWING_attribute_name_IN_category_attributes_380 )
713
716
  attr = attribute_name
714
717
  @state.following.pop
@@ -739,7 +742,7 @@ module OCCIANTLR
739
742
  break # out of loop for decision 14
740
743
  end
741
744
  end # loop for decision 14
742
- match( T__14, TOKENS_FOLLOWING_T__14_IN_category_attributes_407 )
745
+ match( QUOTE, TOKENS_FOLLOWING_QUOTE_IN_category_attributes_407 )
743
746
 
744
747
  rescue ANTLR3::Error::RecognitionError => re
745
748
  report_error(re)
@@ -759,7 +762,7 @@ module OCCIANTLR
759
762
  # parser rule category_actions
760
763
  #
761
764
  # (in OCCIANTLR.g)
762
- # 56:3: category_actions returns [array] : ';' ( WS )? 'actions' '=' '\"' act= uri ( WS next_act= uri )* '\"' ;
765
+ # 56:3: category_actions returns [array] : SEMICOLON ( WS )? ACTIONS EQUALS QUOTE act= uri ( WS next_act= uri )* QUOTE ;
763
766
  #
764
767
  def category_actions
765
768
  # -> uncomment the next line to manually enable rule tracing
@@ -771,9 +774,9 @@ module OCCIANTLR
771
774
  array = Array.new
772
775
 
773
776
  begin
774
- # at line 57:10: ';' ( WS )? 'actions' '=' '\"' act= uri ( WS next_act= uri )* '\"'
775
- match( T__11, TOKENS_FOLLOWING_T__11_IN_category_actions_437 )
776
- # at line 57:14: ( WS )?
777
+ # at line 57:10: SEMICOLON ( WS )? ACTIONS EQUALS QUOTE act= uri ( WS next_act= uri )* QUOTE
778
+ match( SEMICOLON, TOKENS_FOLLOWING_SEMICOLON_IN_category_actions_437 )
779
+ # at line 57:20: ( WS )?
777
780
  alt_15 = 2
778
781
  look_15_0 = @input.peek( 1 )
779
782
 
@@ -782,13 +785,13 @@ module OCCIANTLR
782
785
  end
783
786
  case alt_15
784
787
  when 1
785
- # at line 57:14: WS
788
+ # at line 57:20: WS
786
789
  match( WS, TOKENS_FOLLOWING_WS_IN_category_actions_439 )
787
790
 
788
791
  end
789
- match( T__20, TOKENS_FOLLOWING_T__20_IN_category_actions_442 )
790
- match( T__13, TOKENS_FOLLOWING_T__13_IN_category_actions_444 )
791
- match( T__14, TOKENS_FOLLOWING_T__14_IN_category_actions_446 )
792
+ match( ACTIONS, TOKENS_FOLLOWING_ACTIONS_IN_category_actions_442 )
793
+ match( EQUALS, TOKENS_FOLLOWING_EQUALS_IN_category_actions_444 )
794
+ match( QUOTE, TOKENS_FOLLOWING_QUOTE_IN_category_actions_446 )
792
795
  @state.following.push( TOKENS_FOLLOWING_uri_IN_category_actions_450 )
793
796
  act = uri
794
797
  @state.following.pop
@@ -819,7 +822,7 @@ module OCCIANTLR
819
822
  break # out of loop for decision 16
820
823
  end
821
824
  end # loop for decision 16
822
- match( T__14, TOKENS_FOLLOWING_T__14_IN_category_actions_477 )
825
+ match( QUOTE, TOKENS_FOLLOWING_QUOTE_IN_category_actions_477 )
823
826
 
824
827
  rescue ANTLR3::Error::RecognitionError => re
825
828
  report_error(re)
@@ -839,7 +842,7 @@ module OCCIANTLR
839
842
  # parser rule link
840
843
  #
841
844
  # (in OCCIANTLR.g)
842
- # 69:1: link returns [hash] : 'Link' ':' link_value ;
845
+ # 69:1: link returns [hash] : LINK_KEY COLON link_value ;
843
846
  #
844
847
  def link
845
848
  # -> uncomment the next line to manually enable rule tracing
@@ -848,9 +851,9 @@ module OCCIANTLR
848
851
  link_value16 = nil
849
852
 
850
853
  begin
851
- # at line 70:4: 'Link' ':' link_value
852
- match( T__21, TOKENS_FOLLOWING_T__21_IN_link_494 )
853
- match( T__10, TOKENS_FOLLOWING_T__10_IN_link_496 )
854
+ # at line 70:4: LINK_KEY COLON link_value
855
+ match( LINK_KEY, TOKENS_FOLLOWING_LINK_KEY_IN_link_494 )
856
+ match( COLON, TOKENS_FOLLOWING_COLON_IN_link_496 )
854
857
  @state.following.push( TOKENS_FOLLOWING_link_value_IN_link_498 )
855
858
  link_value16 = link_value
856
859
  @state.following.pop
@@ -876,7 +879,7 @@ module OCCIANTLR
876
879
  # parser rule link_value
877
880
  #
878
881
  # (in OCCIANTLR.g)
879
- # 71:2: link_value returns [hash] : link_target link_rel ( link_self )? ( link_category )? link_attributes ( ';' )? ;
882
+ # 71:2: link_value returns [hash] : link_target link_rel ( link_self )? ( link_category )? link_attributes ( SEMICOLON )? ;
880
883
  #
881
884
  def link_value
882
885
  # -> uncomment the next line to manually enable rule tracing
@@ -891,7 +894,7 @@ module OCCIANTLR
891
894
  hash = Hashie::Mash.new
892
895
 
893
896
  begin
894
- # at line 73:6: link_target link_rel ( link_self )? ( link_category )? link_attributes ( ';' )?
897
+ # at line 73:6: link_target link_rel ( link_self )? ( link_category )? link_attributes ( SEMICOLON )?
895
898
  @state.following.push( TOKENS_FOLLOWING_link_target_IN_link_value_520 )
896
899
  link_target17 = link_target
897
900
  @state.following.pop
@@ -906,21 +909,7 @@ module OCCIANTLR
906
909
  # <-- action
907
910
  # at line 75:6: ( link_self )?
908
911
  alt_17 = 2
909
- look_17_0 = @input.peek( 1 )
910
-
911
- if ( look_17_0 == T__11 )
912
- look_17_1 = @input.peek( 2 )
913
-
914
- if ( look_17_1 == WS )
915
- look_17_3 = @input.peek( 3 )
916
-
917
- if ( look_17_3 == T__24 )
918
- alt_17 = 1
919
- end
920
- elsif ( look_17_1 == T__24 )
921
- alt_17 = 1
922
- end
923
- end
912
+ alt_17 = @dfa17.predict( @input )
924
913
  case alt_17
925
914
  when 1
926
915
  # at line 75:6: link_self
@@ -934,21 +923,7 @@ module OCCIANTLR
934
923
  # <-- action
935
924
  # at line 76:6: ( link_category )?
936
925
  alt_18 = 2
937
- look_18_0 = @input.peek( 1 )
938
-
939
- if ( look_18_0 == T__11 )
940
- look_18_1 = @input.peek( 2 )
941
-
942
- if ( look_18_1 == WS )
943
- look_18_3 = @input.peek( 3 )
944
-
945
- if ( look_18_3 == T__25 )
946
- alt_18 = 1
947
- end
948
- elsif ( look_18_1 == T__25 )
949
- alt_18 = 1
950
- end
951
- end
926
+ alt_18 = @dfa18.predict( @input )
952
927
  case alt_18
953
928
  when 1
954
929
  # at line 76:6: link_category
@@ -966,17 +941,17 @@ module OCCIANTLR
966
941
  # --> action
967
942
  hash[:attributes] = link_attributes21
968
943
  # <-- action
969
- # at line 78:6: ( ';' )?
944
+ # at line 78:6: ( SEMICOLON )?
970
945
  alt_19 = 2
971
946
  look_19_0 = @input.peek( 1 )
972
947
 
973
- if ( look_19_0 == T__11 )
948
+ if ( look_19_0 == SEMICOLON )
974
949
  alt_19 = 1
975
950
  end
976
951
  case alt_19
977
952
  when 1
978
- # at line 78:6: ';'
979
- match( T__11, TOKENS_FOLLOWING_T__11_IN_link_value_567 )
953
+ # at line 78:6: SEMICOLON
954
+ match( SEMICOLON, TOKENS_FOLLOWING_SEMICOLON_IN_link_value_567 )
980
955
 
981
956
  end
982
957
 
@@ -998,7 +973,7 @@ module OCCIANTLR
998
973
  # parser rule link_target
999
974
  #
1000
975
  # (in OCCIANTLR.g)
1001
- # 80:2: link_target returns [value] : ( WS )? '<' uri '>' ;
976
+ # 80:2: link_target returns [value] : ( WS )? LT uri GT ;
1002
977
  #
1003
978
  def link_target
1004
979
  # -> uncomment the next line to manually enable rule tracing
@@ -1007,7 +982,7 @@ module OCCIANTLR
1007
982
  uri22 = nil
1008
983
 
1009
984
  begin
1010
- # at line 80:32: ( WS )? '<' uri '>'
985
+ # at line 80:32: ( WS )? LT uri GT
1011
986
  # at line 80:32: ( WS )?
1012
987
  alt_20 = 2
1013
988
  look_20_0 = @input.peek( 1 )
@@ -1021,11 +996,11 @@ module OCCIANTLR
1021
996
  match( WS, TOKENS_FOLLOWING_WS_IN_link_target_586 )
1022
997
 
1023
998
  end
1024
- match( T__22, TOKENS_FOLLOWING_T__22_IN_link_target_589 )
999
+ match( LT, TOKENS_FOLLOWING_LT_IN_link_target_589 )
1025
1000
  @state.following.push( TOKENS_FOLLOWING_uri_IN_link_target_591 )
1026
1001
  uri22 = uri
1027
1002
  @state.following.pop
1028
- match( T__23, TOKENS_FOLLOWING_T__23_IN_link_target_593 )
1003
+ match( GT, TOKENS_FOLLOWING_GT_IN_link_target_593 )
1029
1004
  # --> action
1030
1005
  value = ( uri22 && @input.to_s( uri22.start, uri22.stop ) )
1031
1006
  # <-- action
@@ -1048,7 +1023,7 @@ module OCCIANTLR
1048
1023
  # parser rule link_rel
1049
1024
  #
1050
1025
  # (in OCCIANTLR.g)
1051
- # 81:2: link_rel returns [value] : ';' ( WS )? 'rel' '=' '\"' uri '\"' ;
1026
+ # 81:2: link_rel returns [value] : SEMICOLON ( WS )? REL EQUALS QUOTE uri QUOTE ;
1052
1027
  #
1053
1028
  def link_rel
1054
1029
  # -> uncomment the next line to manually enable rule tracing
@@ -1057,9 +1032,9 @@ module OCCIANTLR
1057
1032
  uri23 = nil
1058
1033
 
1059
1034
  begin
1060
- # at line 81:30: ';' ( WS )? 'rel' '=' '\"' uri '\"'
1061
- match( T__11, TOKENS_FOLLOWING_T__11_IN_link_rel_608 )
1062
- # at line 81:34: ( WS )?
1035
+ # at line 81:30: SEMICOLON ( WS )? REL EQUALS QUOTE uri QUOTE
1036
+ match( SEMICOLON, TOKENS_FOLLOWING_SEMICOLON_IN_link_rel_608 )
1037
+ # at line 81:40: ( WS )?
1063
1038
  alt_21 = 2
1064
1039
  look_21_0 = @input.peek( 1 )
1065
1040
 
@@ -1068,17 +1043,17 @@ module OCCIANTLR
1068
1043
  end
1069
1044
  case alt_21
1070
1045
  when 1
1071
- # at line 81:34: WS
1046
+ # at line 81:40: WS
1072
1047
  match( WS, TOKENS_FOLLOWING_WS_IN_link_rel_610 )
1073
1048
 
1074
1049
  end
1075
- match( T__17, TOKENS_FOLLOWING_T__17_IN_link_rel_613 )
1076
- match( T__13, TOKENS_FOLLOWING_T__13_IN_link_rel_615 )
1077
- match( T__14, TOKENS_FOLLOWING_T__14_IN_link_rel_617 )
1050
+ match( REL, TOKENS_FOLLOWING_REL_IN_link_rel_613 )
1051
+ match( EQUALS, TOKENS_FOLLOWING_EQUALS_IN_link_rel_615 )
1052
+ match( QUOTE, TOKENS_FOLLOWING_QUOTE_IN_link_rel_617 )
1078
1053
  @state.following.push( TOKENS_FOLLOWING_uri_IN_link_rel_619 )
1079
1054
  uri23 = uri
1080
1055
  @state.following.pop
1081
- match( T__14, TOKENS_FOLLOWING_T__14_IN_link_rel_621 )
1056
+ match( QUOTE, TOKENS_FOLLOWING_QUOTE_IN_link_rel_621 )
1082
1057
  # --> action
1083
1058
  value = ( uri23 && @input.to_s( uri23.start, uri23.stop ) )
1084
1059
  # <-- action
@@ -1101,7 +1076,7 @@ module OCCIANTLR
1101
1076
  # parser rule link_self
1102
1077
  #
1103
1078
  # (in OCCIANTLR.g)
1104
- # 82:2: link_self returns [value] : ';' ( WS )? 'self' '=' '\"' uri '\"' ;
1079
+ # 82:2: link_self returns [value] : SEMICOLON ( WS )? SELF EQUALS QUOTE uri QUOTE ;
1105
1080
  #
1106
1081
  def link_self
1107
1082
  # -> uncomment the next line to manually enable rule tracing
@@ -1110,9 +1085,9 @@ module OCCIANTLR
1110
1085
  uri24 = nil
1111
1086
 
1112
1087
  begin
1113
- # at line 82:31: ';' ( WS )? 'self' '=' '\"' uri '\"'
1114
- match( T__11, TOKENS_FOLLOWING_T__11_IN_link_self_636 )
1115
- # at line 82:35: ( WS )?
1088
+ # at line 82:31: SEMICOLON ( WS )? SELF EQUALS QUOTE uri QUOTE
1089
+ match( SEMICOLON, TOKENS_FOLLOWING_SEMICOLON_IN_link_self_636 )
1090
+ # at line 82:41: ( WS )?
1116
1091
  alt_22 = 2
1117
1092
  look_22_0 = @input.peek( 1 )
1118
1093
 
@@ -1121,17 +1096,17 @@ module OCCIANTLR
1121
1096
  end
1122
1097
  case alt_22
1123
1098
  when 1
1124
- # at line 82:35: WS
1099
+ # at line 82:41: WS
1125
1100
  match( WS, TOKENS_FOLLOWING_WS_IN_link_self_638 )
1126
1101
 
1127
1102
  end
1128
- match( T__24, TOKENS_FOLLOWING_T__24_IN_link_self_641 )
1129
- match( T__13, TOKENS_FOLLOWING_T__13_IN_link_self_643 )
1130
- match( T__14, TOKENS_FOLLOWING_T__14_IN_link_self_645 )
1103
+ match( SELF, TOKENS_FOLLOWING_SELF_IN_link_self_641 )
1104
+ match( EQUALS, TOKENS_FOLLOWING_EQUALS_IN_link_self_643 )
1105
+ match( QUOTE, TOKENS_FOLLOWING_QUOTE_IN_link_self_645 )
1131
1106
  @state.following.push( TOKENS_FOLLOWING_uri_IN_link_self_647 )
1132
1107
  uri24 = uri
1133
1108
  @state.following.pop
1134
- match( T__14, TOKENS_FOLLOWING_T__14_IN_link_self_649 )
1109
+ match( QUOTE, TOKENS_FOLLOWING_QUOTE_IN_link_self_649 )
1135
1110
  # --> action
1136
1111
  value = ( uri24 && @input.to_s( uri24.start, uri24.stop ) )
1137
1112
  # <-- action
@@ -1154,7 +1129,7 @@ module OCCIANTLR
1154
1129
  # parser rule link_category
1155
1130
  #
1156
1131
  # (in OCCIANTLR.g)
1157
- # 83:2: link_category returns [value] : ';' ( WS )? 'category' '=' '\"' uri '\"' ;
1132
+ # 83:2: link_category returns [value] : SEMICOLON ( WS )? CATEGORY EQUALS QUOTE uri QUOTE ;
1158
1133
  #
1159
1134
  def link_category
1160
1135
  # -> uncomment the next line to manually enable rule tracing
@@ -1163,9 +1138,9 @@ module OCCIANTLR
1163
1138
  uri25 = nil
1164
1139
 
1165
1140
  begin
1166
- # at line 83:35: ';' ( WS )? 'category' '=' '\"' uri '\"'
1167
- match( T__11, TOKENS_FOLLOWING_T__11_IN_link_category_664 )
1168
- # at line 83:39: ( WS )?
1141
+ # at line 83:35: SEMICOLON ( WS )? CATEGORY EQUALS QUOTE uri QUOTE
1142
+ match( SEMICOLON, TOKENS_FOLLOWING_SEMICOLON_IN_link_category_664 )
1143
+ # at line 83:45: ( WS )?
1169
1144
  alt_23 = 2
1170
1145
  look_23_0 = @input.peek( 1 )
1171
1146
 
@@ -1174,17 +1149,17 @@ module OCCIANTLR
1174
1149
  end
1175
1150
  case alt_23
1176
1151
  when 1
1177
- # at line 83:39: WS
1152
+ # at line 83:45: WS
1178
1153
  match( WS, TOKENS_FOLLOWING_WS_IN_link_category_666 )
1179
1154
 
1180
1155
  end
1181
- match( T__25, TOKENS_FOLLOWING_T__25_IN_link_category_669 )
1182
- match( T__13, TOKENS_FOLLOWING_T__13_IN_link_category_671 )
1183
- match( T__14, TOKENS_FOLLOWING_T__14_IN_link_category_673 )
1156
+ match( CATEGORY, TOKENS_FOLLOWING_CATEGORY_IN_link_category_669 )
1157
+ match( EQUALS, TOKENS_FOLLOWING_EQUALS_IN_link_category_671 )
1158
+ match( QUOTE, TOKENS_FOLLOWING_QUOTE_IN_link_category_673 )
1184
1159
  @state.following.push( TOKENS_FOLLOWING_uri_IN_link_category_675 )
1185
1160
  uri25 = uri
1186
1161
  @state.following.pop
1187
- match( T__14, TOKENS_FOLLOWING_T__14_IN_link_category_677 )
1162
+ match( QUOTE, TOKENS_FOLLOWING_QUOTE_IN_link_category_677 )
1188
1163
  # --> action
1189
1164
  value = ( uri25 && @input.to_s( uri25.start, uri25.stop ) )
1190
1165
  # <-- action
@@ -1207,7 +1182,7 @@ module OCCIANTLR
1207
1182
  # parser rule link_attributes
1208
1183
  #
1209
1184
  # (in OCCIANTLR.g)
1210
- # 84:2: link_attributes returns [hash] : ( ';' ( WS )? attribute )* ;
1185
+ # 84:2: link_attributes returns [hash] : ( SEMICOLON ( WS )? attribute )* ;
1211
1186
  #
1212
1187
  def link_attributes
1213
1188
  # -> uncomment the next line to manually enable rule tracing
@@ -1218,16 +1193,16 @@ module OCCIANTLR
1218
1193
  hash = Hashie::Mash.new
1219
1194
 
1220
1195
  begin
1221
- # at line 85:8: ( ';' ( WS )? attribute )*
1222
- # at line 85:8: ( ';' ( WS )? attribute )*
1196
+ # at line 85:8: ( SEMICOLON ( WS )? attribute )*
1197
+ # at line 85:8: ( SEMICOLON ( WS )? attribute )*
1223
1198
  while true # decision 25
1224
1199
  alt_25 = 2
1225
1200
  look_25_0 = @input.peek( 1 )
1226
1201
 
1227
- if ( look_25_0 == T__11 )
1202
+ if ( look_25_0 == SEMICOLON )
1228
1203
  look_25_1 = @input.peek( 2 )
1229
1204
 
1230
- if ( look_25_1.between?( WS, LOALPHA ) )
1205
+ if ( look_25_1.between?( WS, SCHEME ) || look_25_1.between?( CLASS, ACTIONS ) || look_25_1.between?( SELF, CATEGORY ) || look_25_1 == LOALPHA || look_25_1.between?( KIND, ACTION ) || look_25_1.between?( LINK, TERM ) )
1231
1206
  alt_25 = 1
1232
1207
 
1233
1208
  end
@@ -1235,9 +1210,9 @@ module OCCIANTLR
1235
1210
  end
1236
1211
  case alt_25
1237
1212
  when 1
1238
- # at line 85:9: ';' ( WS )? attribute
1239
- match( T__11, TOKENS_FOLLOWING_T__11_IN_link_attributes_703 )
1240
- # at line 85:13: ( WS )?
1213
+ # at line 85:9: SEMICOLON ( WS )? attribute
1214
+ match( SEMICOLON, TOKENS_FOLLOWING_SEMICOLON_IN_link_attributes_703 )
1215
+ # at line 85:19: ( WS )?
1241
1216
  alt_24 = 2
1242
1217
  look_24_0 = @input.peek( 1 )
1243
1218
 
@@ -1246,7 +1221,7 @@ module OCCIANTLR
1246
1221
  end
1247
1222
  case alt_24
1248
1223
  when 1
1249
- # at line 85:13: WS
1224
+ # at line 85:19: WS
1250
1225
  match( WS, TOKENS_FOLLOWING_WS_IN_link_attributes_705 )
1251
1226
 
1252
1227
  end
@@ -1280,7 +1255,7 @@ module OCCIANTLR
1280
1255
  # parser rule x_occi_attribute
1281
1256
  #
1282
1257
  # (in OCCIANTLR.g)
1283
- # 97:1: x_occi_attribute returns [hash] : 'X-OCCI-Attribute' ':' ( WS )? attribute ( ';' )? ;
1258
+ # 97:1: x_occi_attribute returns [hash] : X_OCCI_ATTRIBUTE_KEY COLON ( WS )? attribute ( SEMICOLON )? ;
1284
1259
  #
1285
1260
  def x_occi_attribute
1286
1261
  # -> uncomment the next line to manually enable rule tracing
@@ -1289,10 +1264,10 @@ module OCCIANTLR
1289
1264
  attribute27 = nil
1290
1265
 
1291
1266
  begin
1292
- # at line 98:4: 'X-OCCI-Attribute' ':' ( WS )? attribute ( ';' )?
1293
- match( T__26, TOKENS_FOLLOWING_T__26_IN_x_occi_attribute_729 )
1294
- match( T__10, TOKENS_FOLLOWING_T__10_IN_x_occi_attribute_731 )
1295
- # at line 98:27: ( WS )?
1267
+ # at line 98:4: X_OCCI_ATTRIBUTE_KEY COLON ( WS )? attribute ( SEMICOLON )?
1268
+ match( X_OCCI_ATTRIBUTE_KEY, TOKENS_FOLLOWING_X_OCCI_ATTRIBUTE_KEY_IN_x_occi_attribute_729 )
1269
+ match( COLON, TOKENS_FOLLOWING_COLON_IN_x_occi_attribute_731 )
1270
+ # at line 98:31: ( WS )?
1296
1271
  alt_26 = 2
1297
1272
  look_26_0 = @input.peek( 1 )
1298
1273
 
@@ -1301,24 +1276,24 @@ module OCCIANTLR
1301
1276
  end
1302
1277
  case alt_26
1303
1278
  when 1
1304
- # at line 98:27: WS
1279
+ # at line 98:31: WS
1305
1280
  match( WS, TOKENS_FOLLOWING_WS_IN_x_occi_attribute_733 )
1306
1281
 
1307
1282
  end
1308
1283
  @state.following.push( TOKENS_FOLLOWING_attribute_IN_x_occi_attribute_736 )
1309
1284
  attribute27 = attribute
1310
1285
  @state.following.pop
1311
- # at line 98:41: ( ';' )?
1286
+ # at line 98:45: ( SEMICOLON )?
1312
1287
  alt_27 = 2
1313
1288
  look_27_0 = @input.peek( 1 )
1314
1289
 
1315
- if ( look_27_0 == T__11 )
1290
+ if ( look_27_0 == SEMICOLON )
1316
1291
  alt_27 = 1
1317
1292
  end
1318
1293
  case alt_27
1319
1294
  when 1
1320
- # at line 98:41: ';'
1321
- match( T__11, TOKENS_FOLLOWING_T__11_IN_x_occi_attribute_738 )
1295
+ # at line 98:45: SEMICOLON
1296
+ match( SEMICOLON, TOKENS_FOLLOWING_SEMICOLON_IN_x_occi_attribute_738 )
1322
1297
 
1323
1298
  end
1324
1299
  # --> action
@@ -1343,7 +1318,7 @@ module OCCIANTLR
1343
1318
  # parser rule x_occi_location
1344
1319
  #
1345
1320
  # (in OCCIANTLR.g)
1346
- # 106:1: x_occi_location returns [location] : 'X-OCCI-Location' ':' ( WS )? uri ( ';' )? ;
1321
+ # 106:1: x_occi_location returns [location] : X_OCCI_LOCATION_KEY COLON ( WS )? uri ( SEMICOLON )? ;
1347
1322
  #
1348
1323
  def x_occi_location
1349
1324
  # -> uncomment the next line to manually enable rule tracing
@@ -1352,10 +1327,10 @@ module OCCIANTLR
1352
1327
  uri28 = nil
1353
1328
 
1354
1329
  begin
1355
- # at line 107:4: 'X-OCCI-Location' ':' ( WS )? uri ( ';' )?
1356
- match( T__27, TOKENS_FOLLOWING_T__27_IN_x_occi_location_758 )
1357
- match( T__10, TOKENS_FOLLOWING_T__10_IN_x_occi_location_760 )
1358
- # at line 107:26: ( WS )?
1330
+ # at line 107:4: X_OCCI_LOCATION_KEY COLON ( WS )? uri ( SEMICOLON )?
1331
+ match( X_OCCI_LOCATION_KEY, TOKENS_FOLLOWING_X_OCCI_LOCATION_KEY_IN_x_occi_location_758 )
1332
+ match( COLON, TOKENS_FOLLOWING_COLON_IN_x_occi_location_760 )
1333
+ # at line 107:30: ( WS )?
1359
1334
  alt_28 = 2
1360
1335
  look_28_0 = @input.peek( 1 )
1361
1336
 
@@ -1364,24 +1339,24 @@ module OCCIANTLR
1364
1339
  end
1365
1340
  case alt_28
1366
1341
  when 1
1367
- # at line 107:26: WS
1342
+ # at line 107:30: WS
1368
1343
  match( WS, TOKENS_FOLLOWING_WS_IN_x_occi_location_762 )
1369
1344
 
1370
1345
  end
1371
1346
  @state.following.push( TOKENS_FOLLOWING_uri_IN_x_occi_location_765 )
1372
1347
  uri28 = uri
1373
1348
  @state.following.pop
1374
- # at line 107:34: ( ';' )?
1349
+ # at line 107:38: ( SEMICOLON )?
1375
1350
  alt_29 = 2
1376
1351
  look_29_0 = @input.peek( 1 )
1377
1352
 
1378
- if ( look_29_0 == T__11 )
1353
+ if ( look_29_0 == SEMICOLON )
1379
1354
  alt_29 = 1
1380
1355
  end
1381
1356
  case alt_29
1382
1357
  when 1
1383
- # at line 107:34: ';'
1384
- match( T__11, TOKENS_FOLLOWING_T__11_IN_x_occi_location_767 )
1358
+ # at line 107:38: SEMICOLON
1359
+ match( SEMICOLON, TOKENS_FOLLOWING_SEMICOLON_IN_x_occi_location_767 )
1385
1360
 
1386
1361
  end
1387
1362
  # --> action
@@ -1407,7 +1382,7 @@ module OCCIANTLR
1407
1382
  # parser rule uri
1408
1383
  #
1409
1384
  # (in OCCIANTLR.g)
1410
- # 109:1: uri : ( LOALPHA | UPALPHA | DIGIT | '@' | ':' | '%' | '_' | '\\\\' | '+' | '.' | '~' | '#' | '?' | '&' | '/' | '=' | '-' | 'action' | 'kind' | 'mixin' | 'location' | 'attributes' | 'rel' | 'title' | 'actions' | 'scheme' | 'term' | 'category' | 'self' | 'Link' )+ ;
1385
+ # 109:1: uri : ( LOALPHA | UPALPHA | DIGIT | AT | COLON | PERCENT | UNDERSCORE | BACKSLASH | PLUS | DOT | TILDE | HASH | QUESTION | AMPERSAND | SLASH | EQUALS | DASH | X_OCCI_ATTRIBUTE_KEY | X_OCCI_LOCATION_KEY | reserved_words )+ ;
1411
1386
  #
1412
1387
  def uri
1413
1388
  # -> uncomment the next line to manually enable rule tracing
@@ -1418,29 +1393,115 @@ module OCCIANTLR
1418
1393
  return_value.start = @input.look
1419
1394
 
1420
1395
  begin
1421
- # at line 109:9: ( LOALPHA | UPALPHA | DIGIT | '@' | ':' | '%' | '_' | '\\\\' | '+' | '.' | '~' | '#' | '?' | '&' | '/' | '=' | '-' | 'action' | 'kind' | 'mixin' | 'location' | 'attributes' | 'rel' | 'title' | 'actions' | 'scheme' | 'term' | 'category' | 'self' | 'Link' )+
1422
- # at file 109:9: ( LOALPHA | UPALPHA | DIGIT | '@' | ':' | '%' | '_' | '\\\\' | '+' | '.' | '~' | '#' | '?' | '&' | '/' | '=' | '-' | 'action' | 'kind' | 'mixin' | 'location' | 'attributes' | 'rel' | 'title' | 'actions' | 'scheme' | 'term' | 'category' | 'self' | 'Link' )+
1396
+ # at line 109:9: ( LOALPHA | UPALPHA | DIGIT | AT | COLON | PERCENT | UNDERSCORE | BACKSLASH | PLUS | DOT | TILDE | HASH | QUESTION | AMPERSAND | SLASH | EQUALS | DASH | X_OCCI_ATTRIBUTE_KEY | X_OCCI_LOCATION_KEY | reserved_words )+
1397
+ # at file 109:9: ( LOALPHA | UPALPHA | DIGIT | AT | COLON | PERCENT | UNDERSCORE | BACKSLASH | PLUS | DOT | TILDE | HASH | QUESTION | AMPERSAND | SLASH | EQUALS | DASH | X_OCCI_ATTRIBUTE_KEY | X_OCCI_LOCATION_KEY | reserved_words )+
1423
1398
  match_count_30 = 0
1424
1399
  while true
1425
- alt_30 = 2
1426
- look_30_0 = @input.peek( 1 )
1427
-
1428
- if ( look_30_0.between?( LOALPHA, DIGIT ) || look_30_0 == T__10 || look_30_0.between?( T__12, T__13 ) || look_30_0.between?( T__16, T__21 ) || look_30_0.between?( T__24, T__25 ) || look_30_0.between?( T__28, T__43 ) )
1429
- alt_30 = 1
1430
-
1400
+ alt_30 = 21
1401
+ case look_30 = @input.peek( 1 )
1402
+ when LOALPHA then alt_30 = 1
1403
+ when UPALPHA then alt_30 = 2
1404
+ when DIGIT then alt_30 = 3
1405
+ when AT then alt_30 = 4
1406
+ when COLON then alt_30 = 5
1407
+ when PERCENT then alt_30 = 6
1408
+ when UNDERSCORE then alt_30 = 7
1409
+ when BACKSLASH then alt_30 = 8
1410
+ when PLUS then alt_30 = 9
1411
+ when DOT then alt_30 = 10
1412
+ when TILDE then alt_30 = 11
1413
+ when HASH then alt_30 = 12
1414
+ when QUESTION then alt_30 = 13
1415
+ when AMPERSAND then alt_30 = 14
1416
+ when SLASH then alt_30 = 15
1417
+ when EQUALS then alt_30 = 16
1418
+ when DASH then alt_30 = 17
1419
+ when X_OCCI_ATTRIBUTE_KEY then alt_30 = 18
1420
+ when X_OCCI_LOCATION_KEY then alt_30 = 19
1421
+ when SCHEME, CLASS, TITLE, REL, LOCATION, ATTRIBUTES, ACTIONS, SELF, CATEGORY, KIND, MIXIN, ACTION, LINK, TERM then alt_30 = 20
1431
1422
  end
1432
1423
  case alt_30
1433
1424
  when 1
1434
- # at line
1435
- if @input.peek( 1 ).between?( LOALPHA, DIGIT ) || @input.peek(1) == T__10 || @input.peek( 1 ).between?( T__12, T__13 ) || @input.peek( 1 ).between?( T__16, T__21 ) || @input.peek( 1 ).between?( T__24, T__25 ) || @input.peek( 1 ).between?( T__28, T__43 )
1436
- @input.consume
1437
- @state.error_recovery = false
1438
- else
1439
- mse = MismatchedSet( nil )
1440
- raise mse
1441
- end
1425
+ # at line 109:11: LOALPHA
1426
+ match( LOALPHA, TOKENS_FOLLOWING_LOALPHA_IN_uri_783 )
1427
+
1428
+ when 2
1429
+ # at line 109:21: UPALPHA
1430
+ match( UPALPHA, TOKENS_FOLLOWING_UPALPHA_IN_uri_787 )
1431
+
1432
+ when 3
1433
+ # at line 109:31: DIGIT
1434
+ match( DIGIT, TOKENS_FOLLOWING_DIGIT_IN_uri_791 )
1435
+
1436
+ when 4
1437
+ # at line 109:39: AT
1438
+ match( AT, TOKENS_FOLLOWING_AT_IN_uri_795 )
1439
+
1440
+ when 5
1441
+ # at line 109:44: COLON
1442
+ match( COLON, TOKENS_FOLLOWING_COLON_IN_uri_799 )
1443
+
1444
+ when 6
1445
+ # at line 109:52: PERCENT
1446
+ match( PERCENT, TOKENS_FOLLOWING_PERCENT_IN_uri_803 )
1447
+
1448
+ when 7
1449
+ # at line 109:62: UNDERSCORE
1450
+ match( UNDERSCORE, TOKENS_FOLLOWING_UNDERSCORE_IN_uri_807 )
1451
+
1452
+ when 8
1453
+ # at line 109:75: BACKSLASH
1454
+ match( BACKSLASH, TOKENS_FOLLOWING_BACKSLASH_IN_uri_811 )
1455
+
1456
+ when 9
1457
+ # at line 109:87: PLUS
1458
+ match( PLUS, TOKENS_FOLLOWING_PLUS_IN_uri_815 )
1459
+
1460
+ when 10
1461
+ # at line 109:94: DOT
1462
+ match( DOT, TOKENS_FOLLOWING_DOT_IN_uri_819 )
1463
+
1464
+ when 11
1465
+ # at line 109:100: TILDE
1466
+ match( TILDE, TOKENS_FOLLOWING_TILDE_IN_uri_823 )
1467
+
1468
+ when 12
1469
+ # at line 109:108: HASH
1470
+ match( HASH, TOKENS_FOLLOWING_HASH_IN_uri_827 )
1471
+
1472
+ when 13
1473
+ # at line 109:115: QUESTION
1474
+ match( QUESTION, TOKENS_FOLLOWING_QUESTION_IN_uri_831 )
1475
+
1476
+ when 14
1477
+ # at line 109:126: AMPERSAND
1478
+ match( AMPERSAND, TOKENS_FOLLOWING_AMPERSAND_IN_uri_835 )
1479
+
1480
+ when 15
1481
+ # at line 109:138: SLASH
1482
+ match( SLASH, TOKENS_FOLLOWING_SLASH_IN_uri_839 )
1483
+
1484
+ when 16
1485
+ # at line 109:146: EQUALS
1486
+ match( EQUALS, TOKENS_FOLLOWING_EQUALS_IN_uri_843 )
1442
1487
 
1488
+ when 17
1489
+ # at line 109:155: DASH
1490
+ match( DASH, TOKENS_FOLLOWING_DASH_IN_uri_847 )
1443
1491
 
1492
+ when 18
1493
+ # at line 109:162: X_OCCI_ATTRIBUTE_KEY
1494
+ match( X_OCCI_ATTRIBUTE_KEY, TOKENS_FOLLOWING_X_OCCI_ATTRIBUTE_KEY_IN_uri_851 )
1495
+
1496
+ when 19
1497
+ # at line 109:185: X_OCCI_LOCATION_KEY
1498
+ match( X_OCCI_LOCATION_KEY, TOKENS_FOLLOWING_X_OCCI_LOCATION_KEY_IN_uri_855 )
1499
+
1500
+ when 20
1501
+ # at line 109:207: reserved_words
1502
+ @state.following.push( TOKENS_FOLLOWING_reserved_words_IN_uri_859 )
1503
+ reserved_words
1504
+ @state.following.pop
1444
1505
 
1445
1506
  else
1446
1507
  match_count_30 > 0 and break
@@ -1474,7 +1535,7 @@ module OCCIANTLR
1474
1535
  # parser rule term
1475
1536
  #
1476
1537
  # (in OCCIANTLR.g)
1477
- # 110:1: term : LOALPHA ( LOALPHA | DIGIT | '-' | '_' )* ;
1538
+ # 110:1: term : ( LOALPHA | reserved_words ) ( LOALPHA | DIGIT | DASH | UNDERSCORE | reserved_words )* ;
1478
1539
  #
1479
1540
  def term
1480
1541
  # -> uncomment the next line to manually enable rule tracing
@@ -1485,34 +1546,67 @@ module OCCIANTLR
1485
1546
  return_value.start = @input.look
1486
1547
 
1487
1548
  begin
1488
- # at line 110:10: LOALPHA ( LOALPHA | DIGIT | '-' | '_' )*
1489
- match( LOALPHA, TOKENS_FOLLOWING_LOALPHA_IN_term_911 )
1490
- # at line 110:18: ( LOALPHA | DIGIT | '-' | '_' )*
1491
- while true # decision 31
1549
+ # at line 110:10: ( LOALPHA | reserved_words ) ( LOALPHA | DIGIT | DASH | UNDERSCORE | reserved_words )*
1550
+ # at line 110:10: ( LOALPHA | reserved_words )
1551
+ alt_31 = 2
1552
+ look_31_0 = @input.peek( 1 )
1553
+
1554
+ if ( look_31_0 == LOALPHA )
1555
+ alt_31 = 1
1556
+ elsif ( look_31_0 == SCHEME || look_31_0.between?( CLASS, ACTIONS ) || look_31_0.between?( SELF, CATEGORY ) || look_31_0.between?( KIND, ACTION ) || look_31_0.between?( LINK, TERM ) )
1492
1557
  alt_31 = 2
1493
- look_31_0 = @input.peek( 1 )
1558
+ else
1559
+ raise NoViableAlternative( "", 31, 0 )
1560
+ end
1561
+ case alt_31
1562
+ when 1
1563
+ # at line 110:12: LOALPHA
1564
+ match( LOALPHA, TOKENS_FOLLOWING_LOALPHA_IN_term_872 )
1494
1565
 
1495
- if ( look_31_0 == LOALPHA || look_31_0 == DIGIT || look_31_0 == T__30 || look_31_0 == T__39 )
1496
- alt_31 = 1
1566
+ when 2
1567
+ # at line 110:22: reserved_words
1568
+ @state.following.push( TOKENS_FOLLOWING_reserved_words_IN_term_876 )
1569
+ reserved_words
1570
+ @state.following.pop
1497
1571
 
1572
+ end
1573
+ # at line 110:39: ( LOALPHA | DIGIT | DASH | UNDERSCORE | reserved_words )*
1574
+ while true # decision 32
1575
+ alt_32 = 6
1576
+ case look_32 = @input.peek( 1 )
1577
+ when LOALPHA then alt_32 = 1
1578
+ when DIGIT then alt_32 = 2
1579
+ when DASH then alt_32 = 3
1580
+ when UNDERSCORE then alt_32 = 4
1581
+ when SCHEME, CLASS, TITLE, REL, LOCATION, ATTRIBUTES, ACTIONS, SELF, CATEGORY, KIND, MIXIN, ACTION, LINK, TERM then alt_32 = 5
1498
1582
  end
1499
- case alt_31
1583
+ case alt_32
1500
1584
  when 1
1501
- # at line
1502
- if @input.peek(1) == LOALPHA || @input.peek(1) == DIGIT || @input.peek(1) == T__30 || @input.peek(1) == T__39
1503
- @input.consume
1504
- @state.error_recovery = false
1505
- else
1506
- mse = MismatchedSet( nil )
1507
- raise mse
1508
- end
1585
+ # at line 110:41: LOALPHA
1586
+ match( LOALPHA, TOKENS_FOLLOWING_LOALPHA_IN_term_882 )
1509
1587
 
1588
+ when 2
1589
+ # at line 110:51: DIGIT
1590
+ match( DIGIT, TOKENS_FOLLOWING_DIGIT_IN_term_886 )
1510
1591
 
1592
+ when 3
1593
+ # at line 110:59: DASH
1594
+ match( DASH, TOKENS_FOLLOWING_DASH_IN_term_890 )
1595
+
1596
+ when 4
1597
+ # at line 110:66: UNDERSCORE
1598
+ match( UNDERSCORE, TOKENS_FOLLOWING_UNDERSCORE_IN_term_894 )
1599
+
1600
+ when 5
1601
+ # at line 110:79: reserved_words
1602
+ @state.following.push( TOKENS_FOLLOWING_reserved_words_IN_term_898 )
1603
+ reserved_words
1604
+ @state.following.pop
1511
1605
 
1512
1606
  else
1513
- break # out of loop for decision 31
1607
+ break # out of loop for decision 32
1514
1608
  end
1515
- end # loop for decision 31
1609
+ end # loop for decision 32
1516
1610
  # - - - - - - - rule clean up - - - - - - - -
1517
1611
  return_value.stop = @input.look( -1 )
1518
1612
 
@@ -1547,7 +1641,7 @@ module OCCIANTLR
1547
1641
 
1548
1642
  begin
1549
1643
  # at line 111:20: uri
1550
- @state.following.push( TOKENS_FOLLOWING_uri_IN_scheme_946 )
1644
+ @state.following.push( TOKENS_FOLLOWING_uri_IN_scheme_918 )
1551
1645
  uri
1552
1646
  @state.following.pop
1553
1647
  # - - - - - - - rule clean up - - - - - - - -
@@ -1572,7 +1666,7 @@ module OCCIANTLR
1572
1666
  # parser rule class_type
1573
1667
  #
1574
1668
  # (in OCCIANTLR.g)
1575
- # 112:1: class_type : ( 'kind' | 'mixin' | 'action' ) ;
1669
+ # 112:1: class_type : ( KIND | MIXIN | ACTION ) ;
1576
1670
  #
1577
1671
  def class_type
1578
1672
  # -> uncomment the next line to manually enable rule tracing
@@ -1583,8 +1677,8 @@ module OCCIANTLR
1583
1677
  return_value.start = @input.look
1584
1678
 
1585
1679
  begin
1586
- # at line 112:15: ( 'kind' | 'mixin' | 'action' )
1587
- if @input.peek( 1 ).between?( T__40, T__42 )
1680
+ # at line 112:15: ( KIND | MIXIN | ACTION )
1681
+ if @input.peek( 1 ).between?( KIND, ACTION )
1588
1682
  @input.consume
1589
1683
  @state.error_recovery = false
1590
1684
  else
@@ -1615,7 +1709,7 @@ module OCCIANTLR
1615
1709
  # parser rule title
1616
1710
  #
1617
1711
  # (in OCCIANTLR.g)
1618
- # 113:1: title : ( ESC | ~ ( '\\\\' | '\"' | '\\'' ) | '\\'' )* ;
1712
+ # 113:1: title : ( ESC | ~ ( BACKSLASH | QUOTE | SQUOTE ) | SQUOTE )* ;
1619
1713
  #
1620
1714
  def title
1621
1715
  # -> uncomment the next line to manually enable rule tracing
@@ -1626,20 +1720,20 @@ module OCCIANTLR
1626
1720
  return_value.start = @input.look
1627
1721
 
1628
1722
  begin
1629
- # at line 113:11: ( ESC | ~ ( '\\\\' | '\"' | '\\'' ) | '\\'' )*
1630
- # at line 113:11: ( ESC | ~ ( '\\\\' | '\"' | '\\'' ) | '\\'' )*
1631
- while true # decision 32
1632
- alt_32 = 2
1633
- look_32_0 = @input.peek( 1 )
1723
+ # at line 113:11: ( ESC | ~ ( BACKSLASH | QUOTE | SQUOTE ) | SQUOTE )*
1724
+ # at line 113:11: ( ESC | ~ ( BACKSLASH | QUOTE | SQUOTE ) | SQUOTE )*
1725
+ while true # decision 33
1726
+ alt_33 = 2
1727
+ look_33_0 = @input.peek( 1 )
1634
1728
 
1635
- if ( look_32_0.between?( WS, T__13 ) || look_32_0.between?( T__15, T__30 ) || look_32_0.between?( T__32, T__44 ) )
1636
- alt_32 = 1
1729
+ if ( look_33_0.between?( CATEGORY_KEY, EQUALS ) || look_33_0.between?( CLASS, UNDERSCORE ) || look_33_0.between?( PLUS, TERM ) )
1730
+ alt_33 = 1
1637
1731
 
1638
1732
  end
1639
- case alt_32
1733
+ case alt_33
1640
1734
  when 1
1641
1735
  # at line
1642
- if @input.peek( 1 ).between?( WS, T__13 ) || @input.peek( 1 ).between?( T__15, T__30 ) || @input.peek( 1 ).between?( T__32, T__44 )
1736
+ if @input.peek( 1 ).between?( CATEGORY_KEY, EQUALS ) || @input.peek( 1 ).between?( CLASS, UNDERSCORE ) || @input.peek( 1 ).between?( PLUS, TERM )
1643
1737
  @input.consume
1644
1738
  @state.error_recovery = false
1645
1739
  else
@@ -1650,9 +1744,9 @@ module OCCIANTLR
1650
1744
 
1651
1745
 
1652
1746
  else
1653
- break # out of loop for decision 32
1747
+ break # out of loop for decision 33
1654
1748
  end
1655
- end # loop for decision 32
1749
+ end # loop for decision 33
1656
1750
  # - - - - - - - rule clean up - - - - - - - -
1657
1751
  return_value.stop = @input.look( -1 )
1658
1752
 
@@ -1674,7 +1768,7 @@ module OCCIANTLR
1674
1768
  # parser rule attribute
1675
1769
  #
1676
1770
  # (in OCCIANTLR.g)
1677
- # 114:1: attribute returns [hash] : comp_first= attribute_component ( '.' comp_next= attribute_component )* '=' attribute_value ;
1771
+ # 114:1: attribute returns [hash] : comp_first= attribute_component ( '.' comp_next= attribute_component )* EQUALS attribute_value ;
1678
1772
  #
1679
1773
  def attribute
1680
1774
  # -> uncomment the next line to manually enable rule tracing
@@ -1687,27 +1781,27 @@ module OCCIANTLR
1687
1781
  hash = Hashie::Mash.new
1688
1782
 
1689
1783
  begin
1690
- # at line 115:6: comp_first= attribute_component ( '.' comp_next= attribute_component )* '=' attribute_value
1691
- @state.following.push( TOKENS_FOLLOWING_attribute_component_IN_attribute_1023 )
1784
+ # at line 115:6: comp_first= attribute_component ( '.' comp_next= attribute_component )* EQUALS attribute_value
1785
+ @state.following.push( TOKENS_FOLLOWING_attribute_component_IN_attribute_995 )
1692
1786
  comp_first = attribute_component
1693
1787
  @state.following.pop
1694
1788
  # --> action
1695
1789
  cur_hash = hash; comp = ( comp_first && @input.to_s( comp_first.start, comp_first.stop ) )
1696
1790
  # <-- action
1697
1791
  # at line 116:6: ( '.' comp_next= attribute_component )*
1698
- while true # decision 33
1699
- alt_33 = 2
1700
- look_33_0 = @input.peek( 1 )
1792
+ while true # decision 34
1793
+ alt_34 = 2
1794
+ look_34_0 = @input.peek( 1 )
1701
1795
 
1702
- if ( look_33_0 == T__33 )
1703
- alt_33 = 1
1796
+ if ( look_34_0 == DOT )
1797
+ alt_34 = 1
1704
1798
 
1705
1799
  end
1706
- case alt_33
1800
+ case alt_34
1707
1801
  when 1
1708
1802
  # at line 116:8: '.' comp_next= attribute_component
1709
- match( T__33, TOKENS_FOLLOWING_T__33_IN_attribute_1034 )
1710
- @state.following.push( TOKENS_FOLLOWING_attribute_component_IN_attribute_1038 )
1803
+ match( DOT, TOKENS_FOLLOWING_DOT_IN_attribute_1006 )
1804
+ @state.following.push( TOKENS_FOLLOWING_attribute_component_IN_attribute_1010 )
1711
1805
  comp_next = attribute_component
1712
1806
  @state.following.pop
1713
1807
  # --> action
@@ -1715,11 +1809,11 @@ module OCCIANTLR
1715
1809
  # <-- action
1716
1810
 
1717
1811
  else
1718
- break # out of loop for decision 33
1812
+ break # out of loop for decision 34
1719
1813
  end
1720
- end # loop for decision 33
1721
- match( T__13, TOKENS_FOLLOWING_T__13_IN_attribute_1049 )
1722
- @state.following.push( TOKENS_FOLLOWING_attribute_value_IN_attribute_1051 )
1814
+ end # loop for decision 34
1815
+ match( EQUALS, TOKENS_FOLLOWING_EQUALS_IN_attribute_1021 )
1816
+ @state.following.push( TOKENS_FOLLOWING_attribute_value_IN_attribute_1023 )
1723
1817
  attribute_value29 = attribute_value
1724
1818
  @state.following.pop
1725
1819
  # --> action
@@ -1757,26 +1851,26 @@ module OCCIANTLR
1757
1851
 
1758
1852
  begin
1759
1853
  # at line 119:27: comp_first= attribute_component ( '.' comp_next= attribute_component )*
1760
- @state.following.push( TOKENS_FOLLOWING_attribute_component_IN_attribute_name_1095 )
1854
+ @state.following.push( TOKENS_FOLLOWING_attribute_component_IN_attribute_name_1067 )
1761
1855
  comp_first = attribute_component
1762
1856
  @state.following.pop
1763
1857
  # --> action
1764
1858
  cur_hash = hash; comp = ( comp_first && @input.to_s( comp_first.start, comp_first.stop ) )
1765
1859
  # <-- action
1766
1860
  # at line 120:6: ( '.' comp_next= attribute_component )*
1767
- while true # decision 34
1768
- alt_34 = 2
1769
- look_34_0 = @input.peek( 1 )
1861
+ while true # decision 35
1862
+ alt_35 = 2
1863
+ look_35_0 = @input.peek( 1 )
1770
1864
 
1771
- if ( look_34_0 == T__33 )
1772
- alt_34 = 1
1865
+ if ( look_35_0 == DOT )
1866
+ alt_35 = 1
1773
1867
 
1774
1868
  end
1775
- case alt_34
1869
+ case alt_35
1776
1870
  when 1
1777
1871
  # at line 120:8: '.' comp_next= attribute_component
1778
- match( T__33, TOKENS_FOLLOWING_T__33_IN_attribute_name_1106 )
1779
- @state.following.push( TOKENS_FOLLOWING_attribute_component_IN_attribute_name_1110 )
1872
+ match( DOT, TOKENS_FOLLOWING_DOT_IN_attribute_name_1078 )
1873
+ @state.following.push( TOKENS_FOLLOWING_attribute_component_IN_attribute_name_1082 )
1780
1874
  comp_next = attribute_component
1781
1875
  @state.following.pop
1782
1876
  # --> action
@@ -1784,9 +1878,9 @@ module OCCIANTLR
1784
1878
  # <-- action
1785
1879
 
1786
1880
  else
1787
- break # out of loop for decision 34
1881
+ break # out of loop for decision 35
1788
1882
  end
1789
- end # loop for decision 34
1883
+ end # loop for decision 35
1790
1884
  # --> action
1791
1885
  cur_hash[comp.to_sym] = ATTRIBUTE
1792
1886
  # <-- action
@@ -1810,7 +1904,7 @@ module OCCIANTLR
1810
1904
  # parser rule attribute_component
1811
1905
  #
1812
1906
  # (in OCCIANTLR.g)
1813
- # 122:1: attribute_component : LOALPHA ( LOALPHA | DIGIT | '-' | '_' )* ;
1907
+ # 122:1: attribute_component : ( LOALPHA | reserved_words ) ( LOALPHA | DIGIT | DASH | UNDERSCORE | reserved_words )* ;
1814
1908
  #
1815
1909
  def attribute_component
1816
1910
  # -> uncomment the next line to manually enable rule tracing
@@ -1821,34 +1915,67 @@ module OCCIANTLR
1821
1915
  return_value.start = @input.look
1822
1916
 
1823
1917
  begin
1824
- # at line 122:23: LOALPHA ( LOALPHA | DIGIT | '-' | '_' )*
1825
- match( LOALPHA, TOKENS_FOLLOWING_LOALPHA_IN_attribute_component_1128 )
1826
- # at line 122:31: ( LOALPHA | DIGIT | '-' | '_' )*
1827
- while true # decision 35
1828
- alt_35 = 2
1829
- look_35_0 = @input.peek( 1 )
1918
+ # at line 122:23: ( LOALPHA | reserved_words ) ( LOALPHA | DIGIT | DASH | UNDERSCORE | reserved_words )*
1919
+ # at line 122:23: ( LOALPHA | reserved_words )
1920
+ alt_36 = 2
1921
+ look_36_0 = @input.peek( 1 )
1830
1922
 
1831
- if ( look_35_0 == LOALPHA || look_35_0 == DIGIT || look_35_0 == T__30 || look_35_0 == T__39 )
1832
- alt_35 = 1
1923
+ if ( look_36_0 == LOALPHA )
1924
+ alt_36 = 1
1925
+ elsif ( look_36_0 == SCHEME || look_36_0.between?( CLASS, ACTIONS ) || look_36_0.between?( SELF, CATEGORY ) || look_36_0.between?( KIND, ACTION ) || look_36_0.between?( LINK, TERM ) )
1926
+ alt_36 = 2
1927
+ else
1928
+ raise NoViableAlternative( "", 36, 0 )
1929
+ end
1930
+ case alt_36
1931
+ when 1
1932
+ # at line 122:25: LOALPHA
1933
+ match( LOALPHA, TOKENS_FOLLOWING_LOALPHA_IN_attribute_component_1102 )
1833
1934
 
1935
+ when 2
1936
+ # at line 122:35: reserved_words
1937
+ @state.following.push( TOKENS_FOLLOWING_reserved_words_IN_attribute_component_1106 )
1938
+ reserved_words
1939
+ @state.following.pop
1940
+
1941
+ end
1942
+ # at line 122:51: ( LOALPHA | DIGIT | DASH | UNDERSCORE | reserved_words )*
1943
+ while true # decision 37
1944
+ alt_37 = 6
1945
+ case look_37 = @input.peek( 1 )
1946
+ when LOALPHA then alt_37 = 1
1947
+ when DIGIT then alt_37 = 2
1948
+ when DASH then alt_37 = 3
1949
+ when UNDERSCORE then alt_37 = 4
1950
+ when SCHEME, CLASS, TITLE, REL, LOCATION, ATTRIBUTES, ACTIONS, SELF, CATEGORY, KIND, MIXIN, ACTION, LINK, TERM then alt_37 = 5
1834
1951
  end
1835
- case alt_35
1952
+ case alt_37
1836
1953
  when 1
1837
- # at line
1838
- if @input.peek(1) == LOALPHA || @input.peek(1) == DIGIT || @input.peek(1) == T__30 || @input.peek(1) == T__39
1839
- @input.consume
1840
- @state.error_recovery = false
1841
- else
1842
- mse = MismatchedSet( nil )
1843
- raise mse
1844
- end
1954
+ # at line 122:53: LOALPHA
1955
+ match( LOALPHA, TOKENS_FOLLOWING_LOALPHA_IN_attribute_component_1111 )
1845
1956
 
1957
+ when 2
1958
+ # at line 122:63: DIGIT
1959
+ match( DIGIT, TOKENS_FOLLOWING_DIGIT_IN_attribute_component_1115 )
1846
1960
 
1961
+ when 3
1962
+ # at line 122:71: DASH
1963
+ match( DASH, TOKENS_FOLLOWING_DASH_IN_attribute_component_1119 )
1964
+
1965
+ when 4
1966
+ # at line 122:78: UNDERSCORE
1967
+ match( UNDERSCORE, TOKENS_FOLLOWING_UNDERSCORE_IN_attribute_component_1123 )
1968
+
1969
+ when 5
1970
+ # at line 122:91: reserved_words
1971
+ @state.following.push( TOKENS_FOLLOWING_reserved_words_IN_attribute_component_1127 )
1972
+ reserved_words
1973
+ @state.following.pop
1847
1974
 
1848
1975
  else
1849
- break # out of loop for decision 35
1976
+ break # out of loop for decision 37
1850
1977
  end
1851
- end # loop for decision 35
1978
+ end # loop for decision 37
1852
1979
  # - - - - - - - rule clean up - - - - - - - -
1853
1980
  return_value.stop = @input.look( -1 )
1854
1981
 
@@ -1882,20 +2009,20 @@ module OCCIANTLR
1882
2009
  begin
1883
2010
  # at line 123:35: ( string | number )
1884
2011
  # at line 123:35: ( string | number )
1885
- alt_36 = 2
1886
- look_36_0 = @input.peek( 1 )
2012
+ alt_38 = 2
2013
+ look_38_0 = @input.peek( 1 )
1887
2014
 
1888
- if ( look_36_0 == T__14 )
1889
- alt_36 = 1
1890
- elsif ( look_36_0 == EOF || look_36_0 == DIGIT || look_36_0 == T__11 || look_36_0 == T__33 )
1891
- alt_36 = 2
2015
+ if ( look_38_0 == QUOTE )
2016
+ alt_38 = 1
2017
+ elsif ( look_38_0 == DIGIT )
2018
+ alt_38 = 2
1892
2019
  else
1893
- raise NoViableAlternative( "", 36, 0 )
2020
+ raise NoViableAlternative( "", 38, 0 )
1894
2021
  end
1895
- case alt_36
2022
+ case alt_38
1896
2023
  when 1
1897
2024
  # at line 123:37: string
1898
- @state.following.push( TOKENS_FOLLOWING_string_IN_attribute_value_1160 )
2025
+ @state.following.push( TOKENS_FOLLOWING_string_IN_attribute_value_1144 )
1899
2026
  string30 = string
1900
2027
  @state.following.pop
1901
2028
  # --> action
@@ -1904,7 +2031,7 @@ module OCCIANTLR
1904
2031
 
1905
2032
  when 2
1906
2033
  # at line 123:71: number
1907
- @state.following.push( TOKENS_FOLLOWING_number_IN_attribute_value_1166 )
2034
+ @state.following.push( TOKENS_FOLLOWING_number_IN_attribute_value_1150 )
1908
2035
  number31 = number
1909
2036
  @state.following.pop
1910
2037
  # --> action
@@ -1932,7 +2059,7 @@ module OCCIANTLR
1932
2059
  # parser rule string
1933
2060
  #
1934
2061
  # (in OCCIANTLR.g)
1935
- # 124:1: string : ( '\"' ( ESC | ~ ( '\\\\' | '\"' | '\\'' ) | '\\'' )* '\"' ) ;
2062
+ # 124:1: string : quoted_string ;
1936
2063
  #
1937
2064
  def string
1938
2065
  # -> uncomment the next line to manually enable rule tracing
@@ -1943,38 +2070,10 @@ module OCCIANTLR
1943
2070
  return_value.start = @input.look
1944
2071
 
1945
2072
  begin
1946
- # at line 124:12: ( '\"' ( ESC | ~ ( '\\\\' | '\"' | '\\'' ) | '\\'' )* '\"' )
1947
- # at line 124:12: ( '\"' ( ESC | ~ ( '\\\\' | '\"' | '\\'' ) | '\\'' )* '\"' )
1948
- # at line 124:14: '\"' ( ESC | ~ ( '\\\\' | '\"' | '\\'' ) | '\\'' )* '\"'
1949
- match( T__14, TOKENS_FOLLOWING_T__14_IN_string_1181 )
1950
- # at line 124:18: ( ESC | ~ ( '\\\\' | '\"' | '\\'' ) | '\\'' )*
1951
- while true # decision 37
1952
- alt_37 = 2
1953
- look_37_0 = @input.peek( 1 )
1954
-
1955
- if ( look_37_0.between?( WS, T__13 ) || look_37_0.between?( T__15, T__30 ) || look_37_0.between?( T__32, T__44 ) )
1956
- alt_37 = 1
1957
-
1958
- end
1959
- case alt_37
1960
- when 1
1961
- # at line
1962
- if @input.peek( 1 ).between?( WS, T__13 ) || @input.peek( 1 ).between?( T__15, T__30 ) || @input.peek( 1 ).between?( T__32, T__44 )
1963
- @input.consume
1964
- @state.error_recovery = false
1965
- else
1966
- mse = MismatchedSet( nil )
1967
- raise mse
1968
- end
1969
-
1970
-
1971
-
1972
- else
1973
- break # out of loop for decision 37
1974
- end
1975
- end # loop for decision 37
1976
- match( T__14, TOKENS_FOLLOWING_T__14_IN_string_1211 )
1977
-
2073
+ # at line 124:12: quoted_string
2074
+ @state.following.push( TOKENS_FOLLOWING_quoted_string_IN_string_1163 )
2075
+ quoted_string
2076
+ @state.following.pop
1978
2077
  # - - - - - - - rule clean up - - - - - - - -
1979
2078
  return_value.stop = @input.look( -1 )
1980
2079
 
@@ -1997,7 +2096,7 @@ module OCCIANTLR
1997
2096
  # parser rule number
1998
2097
  #
1999
2098
  # (in OCCIANTLR.g)
2000
- # 125:1: number : ( ( DIGIT )* ( '.' ( DIGIT )+ )? ) ;
2099
+ # 125:1: number : ( digits ( DOT digits )? ) ;
2001
2100
  #
2002
2101
  def number
2003
2102
  # -> uncomment the next line to manually enable rule tracing
@@ -2008,68 +2107,177 @@ module OCCIANTLR
2008
2107
  return_value.start = @input.look
2009
2108
 
2010
2109
  begin
2011
- # at line 125:12: ( ( DIGIT )* ( '.' ( DIGIT )+ )? )
2012
- # at line 125:12: ( ( DIGIT )* ( '.' ( DIGIT )+ )? )
2013
- # at line 125:14: ( DIGIT )* ( '.' ( DIGIT )+ )?
2014
- # at line 125:14: ( DIGIT )*
2015
- while true # decision 38
2016
- alt_38 = 2
2017
- look_38_0 = @input.peek( 1 )
2110
+ # at line 125:12: ( digits ( DOT digits )? )
2111
+ # at line 125:12: ( digits ( DOT digits )? )
2112
+ # at line 125:14: digits ( DOT digits )?
2113
+ @state.following.push( TOKENS_FOLLOWING_digits_IN_number_1174 )
2114
+ digits
2115
+ @state.following.pop
2116
+ # at line 125:21: ( DOT digits )?
2117
+ alt_39 = 2
2118
+ look_39_0 = @input.peek( 1 )
2119
+
2120
+ if ( look_39_0 == DOT )
2121
+ alt_39 = 1
2122
+ end
2123
+ case alt_39
2124
+ when 1
2125
+ # at line 125:23: DOT digits
2126
+ match( DOT, TOKENS_FOLLOWING_DOT_IN_number_1178 )
2127
+ @state.following.push( TOKENS_FOLLOWING_digits_IN_number_1180 )
2128
+ digits
2129
+ @state.following.pop
2130
+
2131
+ end
2132
+
2133
+ # - - - - - - - rule clean up - - - - - - - -
2134
+ return_value.stop = @input.look( -1 )
2135
+
2136
+ rescue ANTLR3::Error::RecognitionError => re
2137
+ report_error(re)
2138
+ recover(re)
2139
+
2140
+ ensure
2141
+ # -> uncomment the next line to manually enable rule tracing
2142
+ # trace_out( __method__, 30 )
2143
+
2144
+ end
2145
+
2146
+ return return_value
2147
+ end
2148
+
2149
+
2150
+ #
2151
+ # parser rule reserved_words
2152
+ #
2153
+ # (in OCCIANTLR.g)
2154
+ # 126:1: reserved_words : ( ACTION | ACTIONS | ATTRIBUTES | CATEGORY | CLASS | KIND | LINK | LOCATION | MIXIN | REL | SCHEME | SELF | TERM | TITLE ) ;
2155
+ #
2156
+ def reserved_words
2157
+ # -> uncomment the next line to manually enable rule tracing
2158
+ # trace_in( __method__, 31 )
2159
+
2160
+ begin
2161
+ # at line 127:4: ( ACTION | ACTIONS | ATTRIBUTES | CATEGORY | CLASS | KIND | LINK | LOCATION | MIXIN | REL | SCHEME | SELF | TERM | TITLE )
2162
+ if @input.peek(1) == SCHEME || @input.peek( 1 ).between?( CLASS, ACTIONS ) || @input.peek( 1 ).between?( SELF, CATEGORY ) || @input.peek( 1 ).between?( KIND, ACTION ) || @input.peek( 1 ).between?( LINK, TERM )
2163
+ @input.consume
2164
+ @state.error_recovery = false
2165
+ else
2166
+ mse = MismatchedSet( nil )
2167
+ raise mse
2168
+ end
2169
+
2170
+
2171
+
2172
+ rescue ANTLR3::Error::RecognitionError => re
2173
+ report_error(re)
2174
+ recover(re)
2175
+
2176
+ ensure
2177
+ # -> uncomment the next line to manually enable rule tracing
2178
+ # trace_out( __method__, 31 )
2179
+
2180
+ end
2181
+
2182
+ return
2183
+ end
2018
2184
 
2019
- if ( look_38_0 == DIGIT )
2020
- alt_38 = 1
2185
+
2186
+ #
2187
+ # parser rule quoted_string
2188
+ #
2189
+ # (in OCCIANTLR.g)
2190
+ # 185:1: quoted_string : ( QUOTE ( ESC | ~ ( '\\\\' | QUOTE | '\\'' ) | '\\'' )* QUOTE ) ;
2191
+ #
2192
+ def quoted_string
2193
+ # -> uncomment the next line to manually enable rule tracing
2194
+ # trace_in( __method__, 32 )
2195
+
2196
+ begin
2197
+ # at line 186:4: ( QUOTE ( ESC | ~ ( '\\\\' | QUOTE | '\\'' ) | '\\'' )* QUOTE )
2198
+ # at line 186:4: ( QUOTE ( ESC | ~ ( '\\\\' | QUOTE | '\\'' ) | '\\'' )* QUOTE )
2199
+ # at line 186:6: QUOTE ( ESC | ~ ( '\\\\' | QUOTE | '\\'' ) | '\\'' )* QUOTE
2200
+ match( QUOTE, TOKENS_FOLLOWING_QUOTE_IN_quoted_string_1629 )
2201
+ # at line 186:12: ( ESC | ~ ( '\\\\' | QUOTE | '\\'' ) | '\\'' )*
2202
+ while true # decision 40
2203
+ alt_40 = 2
2204
+ look_40_0 = @input.peek( 1 )
2205
+
2206
+ if ( look_40_0.between?( CATEGORY_KEY, EQUALS ) || look_40_0.between?( CLASS, UNDERSCORE ) || look_40_0.between?( PLUS, TERM ) )
2207
+ alt_40 = 1
2021
2208
 
2022
2209
  end
2023
- case alt_38
2210
+ case alt_40
2024
2211
  when 1
2025
- # at line 125:14: DIGIT
2026
- match( DIGIT, TOKENS_FOLLOWING_DIGIT_IN_number_1223 )
2212
+ # at line
2213
+ if @input.peek( 1 ).between?( CATEGORY_KEY, EQUALS ) || @input.peek( 1 ).between?( CLASS, UNDERSCORE ) || @input.peek( 1 ).between?( PLUS, TERM )
2214
+ @input.consume
2215
+ @state.error_recovery = false
2216
+ else
2217
+ mse = MismatchedSet( nil )
2218
+ raise mse
2219
+ end
2220
+
2221
+
2027
2222
 
2028
2223
  else
2029
- break # out of loop for decision 38
2224
+ break # out of loop for decision 40
2030
2225
  end
2031
- end # loop for decision 38
2032
- # at line 125:21: ( '.' ( DIGIT )+ )?
2033
- alt_40 = 2
2034
- look_40_0 = @input.peek( 1 )
2226
+ end # loop for decision 40
2227
+ match( QUOTE, TOKENS_FOLLOWING_QUOTE_IN_quoted_string_1659 )
2035
2228
 
2036
- if ( look_40_0 == T__33 )
2037
- alt_40 = 1
2038
- end
2039
- case alt_40
2040
- when 1
2041
- # at line 125:23: '.' ( DIGIT )+
2042
- match( T__33, TOKENS_FOLLOWING_T__33_IN_number_1228 )
2043
- # at file 125:27: ( DIGIT )+
2044
- match_count_39 = 0
2045
- while true
2046
- alt_39 = 2
2047
- look_39_0 = @input.peek( 1 )
2048
2229
 
2049
- if ( look_39_0 == DIGIT )
2050
- alt_39 = 1
2230
+ rescue ANTLR3::Error::RecognitionError => re
2231
+ report_error(re)
2232
+ recover(re)
2051
2233
 
2052
- end
2053
- case alt_39
2054
- when 1
2055
- # at line 125:27: DIGIT
2056
- match( DIGIT, TOKENS_FOLLOWING_DIGIT_IN_number_1230 )
2234
+ ensure
2235
+ # -> uncomment the next line to manually enable rule tracing
2236
+ # trace_out( __method__, 32 )
2057
2237
 
2058
- else
2059
- match_count_39 > 0 and break
2060
- eee = EarlyExit(39)
2238
+ end
2239
+
2240
+ return
2241
+ end
2061
2242
 
2062
2243
 
2063
- raise eee
2064
- end
2065
- match_count_39 += 1
2244
+ #
2245
+ # parser rule digits
2246
+ #
2247
+ # (in OCCIANTLR.g)
2248
+ # 187:1: digits : ( DIGIT )+ ;
2249
+ #
2250
+ def digits
2251
+ # -> uncomment the next line to manually enable rule tracing
2252
+ # trace_in( __method__, 33 )
2253
+
2254
+ begin
2255
+ # at line 187:10: ( DIGIT )+
2256
+ # at file 187:10: ( DIGIT )+
2257
+ match_count_41 = 0
2258
+ while true
2259
+ alt_41 = 2
2260
+ look_41_0 = @input.peek( 1 )
2261
+
2262
+ if ( look_41_0 == DIGIT )
2263
+ alt_41 = 1
2264
+
2066
2265
  end
2266
+ case alt_41
2267
+ when 1
2268
+ # at line 187:10: DIGIT
2269
+ match( DIGIT, TOKENS_FOLLOWING_DIGIT_IN_digits_1668 )
2270
+
2271
+ else
2272
+ match_count_41 > 0 and break
2273
+ eee = EarlyExit(41)
2067
2274
 
2068
2275
 
2276
+ raise eee
2277
+ end
2278
+ match_count_41 += 1
2069
2279
  end
2070
2280
 
2071
- # - - - - - - - rule clean up - - - - - - - -
2072
- return_value.stop = @input.look( -1 )
2073
2281
 
2074
2282
  rescue ANTLR3::Error::RecognitionError => re
2075
2283
  report_error(re)
@@ -2077,153 +2285,434 @@ module OCCIANTLR
2077
2285
 
2078
2286
  ensure
2079
2287
  # -> uncomment the next line to manually enable rule tracing
2080
- # trace_out( __method__, 30 )
2288
+ # trace_out( __method__, 33 )
2081
2289
 
2082
2290
  end
2083
2291
 
2084
- return return_value
2292
+ return
2085
2293
  end
2086
2294
 
2087
2295
 
2088
2296
 
2089
- TOKENS_FOLLOWING_T__9_IN_category_39 = Set[ 10 ]
2090
- TOKENS_FOLLOWING_T__10_IN_category_41 = Set[ 4, 5 ]
2297
+ # - - - - - - - - - - DFA definitions - - - - - - - - - - -
2298
+ class DFA17 < ANTLR3::DFA
2299
+ EOT = unpack( 28, -1 )
2300
+ EOF = unpack( 2, 2, 26, -1 )
2301
+ MIN = unpack( 1, 6, 1, 7, 1, -1, 2, 8, 1, 10, 8, 4, 1, -1, 12, 4,
2302
+ 1, -1 )
2303
+ MAX = unpack( 1, 6, 1, 45, 1, -1, 2, 45, 1, 26, 8, 45, 1, -1, 12,
2304
+ 45, 1, -1 )
2305
+ ACCEPT = unpack( 2, -1, 1, 2, 11, -1, 1, 1, 12, -1, 1, 1 )
2306
+ SPECIAL = unpack( 28, -1 )
2307
+ TRANSITION = [
2308
+ unpack( 1, 1 ),
2309
+ unpack( 1, 3, 1, 2, 2, -1, 6, 2, 3, -1, 1, 4, 1, 2, 2, -1, 1, 2,
2310
+ 14, -1, 3, 2, 2, -1, 2, 2 ),
2311
+ unpack( ),
2312
+ unpack( 1, 2, 2, -1, 6, 2, 3, -1, 1, 4, 1, 2, 2, -1, 1, 2, 14,
2313
+ -1, 3, 2, 2, -1, 2, 2 ),
2314
+ unpack( 1, 2, 1, 5, 1, -1, 6, 2, 3, -1, 2, 2, 2, -1, 1, 2, 1, -1,
2315
+ 1, 2, 2, -1, 1, 2, 2, -1, 1, 2, 5, -1, 4, 2, 2, -1, 2,
2316
+ 2 ),
2317
+ unpack( 1, 6, 15, -1, 1, 2 ),
2318
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 2, 6, 26, 3, 2, 2,
2319
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2320
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2321
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2322
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2323
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2324
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2325
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2326
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2327
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2328
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2329
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2330
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2331
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2332
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2333
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2334
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2335
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2336
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2337
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2338
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2339
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2340
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2341
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2342
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2343
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2344
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2345
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2346
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2347
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2348
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2349
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2350
+ unpack( ),
2351
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2352
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2353
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2354
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2355
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2356
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2357
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2358
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2359
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2360
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2361
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2362
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2363
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2364
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2365
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2366
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2367
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2368
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2369
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2370
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2371
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2372
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2373
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2374
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2375
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2376
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2377
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2378
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2379
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2380
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2381
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2382
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2383
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2384
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2385
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2386
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2387
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2388
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2389
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2390
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2391
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2392
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2393
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2394
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2395
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2396
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2397
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2398
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2399
+ unpack( )
2400
+ ].freeze
2401
+
2402
+ ( 0 ... MIN.length ).zip( MIN, MAX ) do | i, a, z |
2403
+ if a > 0 and z < 0
2404
+ MAX[ i ] %= 0x10000
2405
+ end
2406
+ end
2407
+
2408
+ @decision = 17
2409
+
2410
+
2411
+ def description
2412
+ <<-'__dfa_description__'.strip!
2413
+ 75:6: ( link_self )?
2414
+ __dfa_description__
2415
+ end
2416
+ end
2417
+ class DFA18 < ANTLR3::DFA
2418
+ EOT = unpack( 28, -1 )
2419
+ EOF = unpack( 2, 2, 26, -1 )
2420
+ MIN = unpack( 1, 6, 1, 7, 1, -1, 2, 8, 1, 10, 8, 4, 1, -1, 12, 4,
2421
+ 1, -1 )
2422
+ MAX = unpack( 1, 6, 1, 45, 1, -1, 2, 45, 1, 26, 8, 45, 1, -1, 12,
2423
+ 45, 1, -1 )
2424
+ ACCEPT = unpack( 2, -1, 1, 2, 11, -1, 1, 1, 12, -1, 1, 1 )
2425
+ SPECIAL = unpack( 28, -1 )
2426
+ TRANSITION = [
2427
+ unpack( 1, 1 ),
2428
+ unpack( 1, 3, 1, 2, 2, -1, 6, 2, 3, -1, 1, 2, 1, 4, 2, -1, 1, 2,
2429
+ 14, -1, 3, 2, 2, -1, 2, 2 ),
2430
+ unpack( ),
2431
+ unpack( 1, 2, 2, -1, 6, 2, 3, -1, 1, 2, 1, 4, 2, -1, 1, 2, 14,
2432
+ -1, 3, 2, 2, -1, 2, 2 ),
2433
+ unpack( 1, 2, 1, 5, 1, -1, 6, 2, 3, -1, 2, 2, 2, -1, 1, 2, 1, -1,
2434
+ 1, 2, 2, -1, 1, 2, 2, -1, 1, 2, 5, -1, 4, 2, 2, -1, 2,
2435
+ 2 ),
2436
+ unpack( 1, 6, 15, -1, 1, 2 ),
2437
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 2, 6, 26, 3, 2, 2,
2438
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2439
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2440
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2441
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2442
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2443
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2444
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2445
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2446
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2447
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2448
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2449
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2450
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2451
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2452
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2453
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2454
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2455
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2456
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2457
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2458
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2459
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2460
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2461
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2462
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2463
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2464
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2465
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2466
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2467
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2468
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2469
+ unpack( ),
2470
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2471
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2472
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2473
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2474
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2475
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2476
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2477
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2478
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2479
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2480
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2481
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2482
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2483
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2484
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2485
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2486
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2487
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2488
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2489
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2490
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2491
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2492
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2493
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2494
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2495
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2496
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2497
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2498
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2499
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2500
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2501
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2502
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2503
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2504
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2505
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2506
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2507
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2508
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2509
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2510
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2511
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2512
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2513
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2514
+ unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2515
+ 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2516
+ 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2517
+ 1, 23, 3, 26, 2, 2, 2, 26 ),
2518
+ unpack( )
2519
+ ].freeze
2520
+
2521
+ ( 0 ... MIN.length ).zip( MIN, MAX ) do | i, a, z |
2522
+ if a > 0 and z < 0
2523
+ MAX[ i ] %= 0x10000
2524
+ end
2525
+ end
2526
+
2527
+ @decision = 18
2528
+
2529
+
2530
+ def description
2531
+ <<-'__dfa_description__'.strip!
2532
+ 76:6: ( link_category )?
2533
+ __dfa_description__
2534
+ end
2535
+ end
2536
+
2537
+
2538
+ private
2539
+
2540
+ def initialize_dfas
2541
+ super rescue nil
2542
+ @dfa17 = DFA17.new( self, 17 )
2543
+ @dfa18 = DFA18.new( self, 18 )
2544
+
2545
+ end
2546
+ TOKENS_FOLLOWING_CATEGORY_KEY_IN_category_39 = Set[ 5 ]
2547
+ TOKENS_FOLLOWING_COLON_IN_category_41 = Set[ 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 39, 40, 41, 44, 45 ]
2091
2548
  TOKENS_FOLLOWING_category_value_IN_category_43 = Set[ 1 ]
2092
- TOKENS_FOLLOWING_category_term_IN_category_value_75 = Set[ 11 ]
2093
- TOKENS_FOLLOWING_category_scheme_IN_category_value_77 = Set[ 11 ]
2094
- TOKENS_FOLLOWING_category_class_IN_category_value_79 = Set[ 1, 11 ]
2095
- TOKENS_FOLLOWING_category_title_IN_category_value_81 = Set[ 1, 11 ]
2096
- TOKENS_FOLLOWING_category_rel_IN_category_value_84 = Set[ 1, 11 ]
2097
- TOKENS_FOLLOWING_category_location_IN_category_value_87 = Set[ 1, 11 ]
2098
- TOKENS_FOLLOWING_category_attributes_IN_category_value_90 = Set[ 1, 11 ]
2099
- TOKENS_FOLLOWING_category_actions_IN_category_value_93 = Set[ 1, 11 ]
2100
- TOKENS_FOLLOWING_T__11_IN_category_value_96 = Set[ 1 ]
2101
- TOKENS_FOLLOWING_WS_IN_category_term_128 = Set[ 4, 5 ]
2549
+ TOKENS_FOLLOWING_category_term_IN_category_value_75 = Set[ 6 ]
2550
+ TOKENS_FOLLOWING_category_scheme_IN_category_value_77 = Set[ 6 ]
2551
+ TOKENS_FOLLOWING_category_class_IN_category_value_79 = Set[ 1, 6 ]
2552
+ TOKENS_FOLLOWING_category_title_IN_category_value_81 = Set[ 1, 6 ]
2553
+ TOKENS_FOLLOWING_category_rel_IN_category_value_84 = Set[ 1, 6 ]
2554
+ TOKENS_FOLLOWING_category_location_IN_category_value_87 = Set[ 1, 6 ]
2555
+ TOKENS_FOLLOWING_category_attributes_IN_category_value_90 = Set[ 1, 6 ]
2556
+ TOKENS_FOLLOWING_category_actions_IN_category_value_93 = Set[ 1, 6 ]
2557
+ TOKENS_FOLLOWING_SEMICOLON_IN_category_value_96 = Set[ 1 ]
2558
+ TOKENS_FOLLOWING_WS_IN_category_term_128 = Set[ 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 39, 40, 41, 44, 45 ]
2102
2559
  TOKENS_FOLLOWING_term_IN_category_term_131 = Set[ 1 ]
2103
- TOKENS_FOLLOWING_T__11_IN_category_scheme_157 = Set[ 4, 12 ]
2104
- TOKENS_FOLLOWING_WS_IN_category_scheme_159 = Set[ 12 ]
2105
- TOKENS_FOLLOWING_T__12_IN_category_scheme_162 = Set[ 13 ]
2106
- TOKENS_FOLLOWING_T__13_IN_category_scheme_164 = Set[ 14 ]
2107
- TOKENS_FOLLOWING_T__14_IN_category_scheme_166 = Set[ 5, 6, 7, 10, 12, 13, 16, 17, 18, 19, 20, 21, 24, 25, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43 ]
2108
- TOKENS_FOLLOWING_scheme_IN_category_scheme_168 = Set[ 14 ]
2109
- TOKENS_FOLLOWING_T__14_IN_category_scheme_170 = Set[ 1 ]
2110
- TOKENS_FOLLOWING_T__11_IN_category_class_199 = Set[ 4, 15 ]
2111
- TOKENS_FOLLOWING_WS_IN_category_class_201 = Set[ 15 ]
2112
- TOKENS_FOLLOWING_T__15_IN_category_class_204 = Set[ 13 ]
2113
- TOKENS_FOLLOWING_T__13_IN_category_class_206 = Set[ 14 ]
2114
- TOKENS_FOLLOWING_T__14_IN_category_class_208 = Set[ 40, 41, 42 ]
2115
- TOKENS_FOLLOWING_class_type_IN_category_class_210 = Set[ 14 ]
2116
- TOKENS_FOLLOWING_T__14_IN_category_class_212 = Set[ 1 ]
2117
- TOKENS_FOLLOWING_T__11_IN_category_title_237 = Set[ 4, 16 ]
2118
- TOKENS_FOLLOWING_WS_IN_category_title_239 = Set[ 16 ]
2119
- TOKENS_FOLLOWING_T__16_IN_category_title_242 = Set[ 13 ]
2120
- TOKENS_FOLLOWING_T__13_IN_category_title_244 = Set[ 14 ]
2121
- TOKENS_FOLLOWING_T__14_IN_category_title_246 = Set[ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44 ]
2122
- TOKENS_FOLLOWING_title_IN_category_title_248 = Set[ 14 ]
2123
- TOKENS_FOLLOWING_T__14_IN_category_title_250 = Set[ 1 ]
2124
- TOKENS_FOLLOWING_T__11_IN_category_rel_277 = Set[ 4, 17 ]
2125
- TOKENS_FOLLOWING_WS_IN_category_rel_279 = Set[ 17 ]
2126
- TOKENS_FOLLOWING_T__17_IN_category_rel_282 = Set[ 13 ]
2127
- TOKENS_FOLLOWING_T__13_IN_category_rel_284 = Set[ 14 ]
2128
- TOKENS_FOLLOWING_T__14_IN_category_rel_286 = Set[ 5, 6, 7, 10, 12, 13, 16, 17, 18, 19, 20, 21, 24, 25, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43 ]
2129
- TOKENS_FOLLOWING_uri_IN_category_rel_288 = Set[ 14 ]
2130
- TOKENS_FOLLOWING_T__14_IN_category_rel_290 = Set[ 1 ]
2131
- TOKENS_FOLLOWING_T__11_IN_category_location_315 = Set[ 4, 18 ]
2132
- TOKENS_FOLLOWING_WS_IN_category_location_317 = Set[ 18 ]
2133
- TOKENS_FOLLOWING_T__18_IN_category_location_320 = Set[ 13 ]
2134
- TOKENS_FOLLOWING_T__13_IN_category_location_322 = Set[ 14 ]
2135
- TOKENS_FOLLOWING_T__14_IN_category_location_324 = Set[ 5, 6, 7, 10, 12, 13, 16, 17, 18, 19, 20, 21, 24, 25, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43 ]
2136
- TOKENS_FOLLOWING_uri_IN_category_location_326 = Set[ 14 ]
2137
- TOKENS_FOLLOWING_T__14_IN_category_location_328 = Set[ 1 ]
2138
- TOKENS_FOLLOWING_T__11_IN_category_attributes_367 = Set[ 4, 19 ]
2139
- TOKENS_FOLLOWING_WS_IN_category_attributes_369 = Set[ 19 ]
2140
- TOKENS_FOLLOWING_T__19_IN_category_attributes_372 = Set[ 13 ]
2141
- TOKENS_FOLLOWING_T__13_IN_category_attributes_374 = Set[ 14 ]
2142
- TOKENS_FOLLOWING_T__14_IN_category_attributes_376 = Set[ 5 ]
2143
- TOKENS_FOLLOWING_attribute_name_IN_category_attributes_380 = Set[ 4, 14 ]
2144
- TOKENS_FOLLOWING_WS_IN_category_attributes_395 = Set[ 5 ]
2145
- TOKENS_FOLLOWING_attribute_name_IN_category_attributes_399 = Set[ 4, 14 ]
2146
- TOKENS_FOLLOWING_T__14_IN_category_attributes_407 = Set[ 1 ]
2147
- TOKENS_FOLLOWING_T__11_IN_category_actions_437 = Set[ 4, 20 ]
2148
- TOKENS_FOLLOWING_WS_IN_category_actions_439 = Set[ 20 ]
2149
- TOKENS_FOLLOWING_T__20_IN_category_actions_442 = Set[ 13 ]
2150
- TOKENS_FOLLOWING_T__13_IN_category_actions_444 = Set[ 14 ]
2151
- TOKENS_FOLLOWING_T__14_IN_category_actions_446 = Set[ 5, 6, 7, 10, 12, 13, 16, 17, 18, 19, 20, 21, 24, 25, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43 ]
2152
- TOKENS_FOLLOWING_uri_IN_category_actions_450 = Set[ 4, 14 ]
2153
- TOKENS_FOLLOWING_WS_IN_category_actions_466 = Set[ 5, 6, 7, 10, 12, 13, 16, 17, 18, 19, 20, 21, 24, 25, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43 ]
2154
- TOKENS_FOLLOWING_uri_IN_category_actions_470 = Set[ 4, 14 ]
2155
- TOKENS_FOLLOWING_T__14_IN_category_actions_477 = Set[ 1 ]
2156
- TOKENS_FOLLOWING_T__21_IN_link_494 = Set[ 10 ]
2157
- TOKENS_FOLLOWING_T__10_IN_link_496 = Set[ 4, 22 ]
2560
+ TOKENS_FOLLOWING_SEMICOLON_IN_category_scheme_157 = Set[ 7, 8 ]
2561
+ TOKENS_FOLLOWING_WS_IN_category_scheme_159 = Set[ 8 ]
2562
+ TOKENS_FOLLOWING_SCHEME_IN_category_scheme_162 = Set[ 9 ]
2563
+ TOKENS_FOLLOWING_EQUALS_IN_category_scheme_164 = Set[ 10 ]
2564
+ TOKENS_FOLLOWING_QUOTE_IN_category_scheme_166 = Set[ 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2565
+ TOKENS_FOLLOWING_scheme_IN_category_scheme_168 = Set[ 10 ]
2566
+ TOKENS_FOLLOWING_QUOTE_IN_category_scheme_170 = Set[ 1 ]
2567
+ TOKENS_FOLLOWING_SEMICOLON_IN_category_class_199 = Set[ 7, 11 ]
2568
+ TOKENS_FOLLOWING_WS_IN_category_class_201 = Set[ 11 ]
2569
+ TOKENS_FOLLOWING_CLASS_IN_category_class_204 = Set[ 9 ]
2570
+ TOKENS_FOLLOWING_EQUALS_IN_category_class_206 = Set[ 10 ]
2571
+ TOKENS_FOLLOWING_QUOTE_IN_category_class_208 = Set[ 39, 40, 41 ]
2572
+ TOKENS_FOLLOWING_class_type_IN_category_class_210 = Set[ 10 ]
2573
+ TOKENS_FOLLOWING_QUOTE_IN_category_class_212 = Set[ 1 ]
2574
+ TOKENS_FOLLOWING_SEMICOLON_IN_category_title_237 = Set[ 7, 12 ]
2575
+ TOKENS_FOLLOWING_WS_IN_category_title_239 = Set[ 12 ]
2576
+ TOKENS_FOLLOWING_TITLE_IN_category_title_242 = Set[ 9 ]
2577
+ TOKENS_FOLLOWING_EQUALS_IN_category_title_244 = Set[ 10 ]
2578
+ TOKENS_FOLLOWING_QUOTE_IN_category_title_246 = Set[ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45 ]
2579
+ TOKENS_FOLLOWING_title_IN_category_title_248 = Set[ 10 ]
2580
+ TOKENS_FOLLOWING_QUOTE_IN_category_title_250 = Set[ 1 ]
2581
+ TOKENS_FOLLOWING_SEMICOLON_IN_category_rel_277 = Set[ 7, 13 ]
2582
+ TOKENS_FOLLOWING_WS_IN_category_rel_279 = Set[ 13 ]
2583
+ TOKENS_FOLLOWING_REL_IN_category_rel_282 = Set[ 9 ]
2584
+ TOKENS_FOLLOWING_EQUALS_IN_category_rel_284 = Set[ 10 ]
2585
+ TOKENS_FOLLOWING_QUOTE_IN_category_rel_286 = Set[ 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2586
+ TOKENS_FOLLOWING_uri_IN_category_rel_288 = Set[ 10 ]
2587
+ TOKENS_FOLLOWING_QUOTE_IN_category_rel_290 = Set[ 1 ]
2588
+ TOKENS_FOLLOWING_SEMICOLON_IN_category_location_315 = Set[ 7, 14 ]
2589
+ TOKENS_FOLLOWING_WS_IN_category_location_317 = Set[ 14 ]
2590
+ TOKENS_FOLLOWING_LOCATION_IN_category_location_320 = Set[ 9 ]
2591
+ TOKENS_FOLLOWING_EQUALS_IN_category_location_322 = Set[ 10 ]
2592
+ TOKENS_FOLLOWING_QUOTE_IN_category_location_324 = Set[ 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2593
+ TOKENS_FOLLOWING_uri_IN_category_location_326 = Set[ 10 ]
2594
+ TOKENS_FOLLOWING_QUOTE_IN_category_location_328 = Set[ 1 ]
2595
+ TOKENS_FOLLOWING_SEMICOLON_IN_category_attributes_367 = Set[ 7, 15 ]
2596
+ TOKENS_FOLLOWING_WS_IN_category_attributes_369 = Set[ 15 ]
2597
+ TOKENS_FOLLOWING_ATTRIBUTES_IN_category_attributes_372 = Set[ 9 ]
2598
+ TOKENS_FOLLOWING_EQUALS_IN_category_attributes_374 = Set[ 10 ]
2599
+ TOKENS_FOLLOWING_QUOTE_IN_category_attributes_376 = Set[ 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 39, 40, 41, 44, 45 ]
2600
+ TOKENS_FOLLOWING_attribute_name_IN_category_attributes_380 = Set[ 7, 10 ]
2601
+ TOKENS_FOLLOWING_WS_IN_category_attributes_395 = Set[ 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 39, 40, 41, 44, 45 ]
2602
+ TOKENS_FOLLOWING_attribute_name_IN_category_attributes_399 = Set[ 7, 10 ]
2603
+ TOKENS_FOLLOWING_QUOTE_IN_category_attributes_407 = Set[ 1 ]
2604
+ TOKENS_FOLLOWING_SEMICOLON_IN_category_actions_437 = Set[ 7, 16 ]
2605
+ TOKENS_FOLLOWING_WS_IN_category_actions_439 = Set[ 16 ]
2606
+ TOKENS_FOLLOWING_ACTIONS_IN_category_actions_442 = Set[ 9 ]
2607
+ TOKENS_FOLLOWING_EQUALS_IN_category_actions_444 = Set[ 10 ]
2608
+ TOKENS_FOLLOWING_QUOTE_IN_category_actions_446 = Set[ 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2609
+ TOKENS_FOLLOWING_uri_IN_category_actions_450 = Set[ 7, 10 ]
2610
+ TOKENS_FOLLOWING_WS_IN_category_actions_466 = Set[ 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2611
+ TOKENS_FOLLOWING_uri_IN_category_actions_470 = Set[ 7, 10 ]
2612
+ TOKENS_FOLLOWING_QUOTE_IN_category_actions_477 = Set[ 1 ]
2613
+ TOKENS_FOLLOWING_LINK_KEY_IN_link_494 = Set[ 5 ]
2614
+ TOKENS_FOLLOWING_COLON_IN_link_496 = Set[ 7, 18 ]
2158
2615
  TOKENS_FOLLOWING_link_value_IN_link_498 = Set[ 1 ]
2159
- TOKENS_FOLLOWING_link_target_IN_link_value_520 = Set[ 11 ]
2160
- TOKENS_FOLLOWING_link_rel_IN_link_value_529 = Set[ 11 ]
2161
- TOKENS_FOLLOWING_link_self_IN_link_value_538 = Set[ 11 ]
2162
- TOKENS_FOLLOWING_link_category_IN_link_value_548 = Set[ 11 ]
2163
- TOKENS_FOLLOWING_link_attributes_IN_link_value_558 = Set[ 1, 11 ]
2164
- TOKENS_FOLLOWING_T__11_IN_link_value_567 = Set[ 1 ]
2165
- TOKENS_FOLLOWING_WS_IN_link_target_586 = Set[ 22 ]
2166
- TOKENS_FOLLOWING_T__22_IN_link_target_589 = Set[ 5, 6, 7, 10, 12, 13, 16, 17, 18, 19, 20, 21, 24, 25, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43 ]
2167
- TOKENS_FOLLOWING_uri_IN_link_target_591 = Set[ 23 ]
2168
- TOKENS_FOLLOWING_T__23_IN_link_target_593 = Set[ 1 ]
2169
- TOKENS_FOLLOWING_T__11_IN_link_rel_608 = Set[ 4, 17 ]
2170
- TOKENS_FOLLOWING_WS_IN_link_rel_610 = Set[ 17 ]
2171
- TOKENS_FOLLOWING_T__17_IN_link_rel_613 = Set[ 13 ]
2172
- TOKENS_FOLLOWING_T__13_IN_link_rel_615 = Set[ 14 ]
2173
- TOKENS_FOLLOWING_T__14_IN_link_rel_617 = Set[ 5, 6, 7, 10, 12, 13, 16, 17, 18, 19, 20, 21, 24, 25, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43 ]
2174
- TOKENS_FOLLOWING_uri_IN_link_rel_619 = Set[ 14 ]
2175
- TOKENS_FOLLOWING_T__14_IN_link_rel_621 = Set[ 1 ]
2176
- TOKENS_FOLLOWING_T__11_IN_link_self_636 = Set[ 4, 24 ]
2177
- TOKENS_FOLLOWING_WS_IN_link_self_638 = Set[ 24 ]
2178
- TOKENS_FOLLOWING_T__24_IN_link_self_641 = Set[ 13 ]
2179
- TOKENS_FOLLOWING_T__13_IN_link_self_643 = Set[ 14 ]
2180
- TOKENS_FOLLOWING_T__14_IN_link_self_645 = Set[ 5, 6, 7, 10, 12, 13, 16, 17, 18, 19, 20, 21, 24, 25, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43 ]
2181
- TOKENS_FOLLOWING_uri_IN_link_self_647 = Set[ 14 ]
2182
- TOKENS_FOLLOWING_T__14_IN_link_self_649 = Set[ 1 ]
2183
- TOKENS_FOLLOWING_T__11_IN_link_category_664 = Set[ 4, 25 ]
2184
- TOKENS_FOLLOWING_WS_IN_link_category_666 = Set[ 25 ]
2185
- TOKENS_FOLLOWING_T__25_IN_link_category_669 = Set[ 13 ]
2186
- TOKENS_FOLLOWING_T__13_IN_link_category_671 = Set[ 14 ]
2187
- TOKENS_FOLLOWING_T__14_IN_link_category_673 = Set[ 5, 6, 7, 10, 12, 13, 16, 17, 18, 19, 20, 21, 24, 25, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43 ]
2188
- TOKENS_FOLLOWING_uri_IN_link_category_675 = Set[ 14 ]
2189
- TOKENS_FOLLOWING_T__14_IN_link_category_677 = Set[ 1 ]
2190
- TOKENS_FOLLOWING_T__11_IN_link_attributes_703 = Set[ 4, 5 ]
2191
- TOKENS_FOLLOWING_WS_IN_link_attributes_705 = Set[ 4, 5 ]
2192
- TOKENS_FOLLOWING_attribute_IN_link_attributes_708 = Set[ 1, 11 ]
2193
- TOKENS_FOLLOWING_T__26_IN_x_occi_attribute_729 = Set[ 10 ]
2194
- TOKENS_FOLLOWING_T__10_IN_x_occi_attribute_731 = Set[ 4, 5 ]
2195
- TOKENS_FOLLOWING_WS_IN_x_occi_attribute_733 = Set[ 4, 5 ]
2196
- TOKENS_FOLLOWING_attribute_IN_x_occi_attribute_736 = Set[ 1, 11 ]
2197
- TOKENS_FOLLOWING_T__11_IN_x_occi_attribute_738 = Set[ 1 ]
2198
- TOKENS_FOLLOWING_T__27_IN_x_occi_location_758 = Set[ 10 ]
2199
- TOKENS_FOLLOWING_T__10_IN_x_occi_location_760 = Set[ 4, 5, 6, 7, 10, 12, 13, 16, 17, 18, 19, 20, 21, 24, 25, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43 ]
2200
- TOKENS_FOLLOWING_WS_IN_x_occi_location_762 = Set[ 5, 6, 7, 10, 12, 13, 16, 17, 18, 19, 20, 21, 24, 25, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43 ]
2201
- TOKENS_FOLLOWING_uri_IN_x_occi_location_765 = Set[ 1, 11 ]
2202
- TOKENS_FOLLOWING_T__11_IN_x_occi_location_767 = Set[ 1 ]
2203
- TOKENS_FOLLOWING_set_IN_uri_781 = Set[ 1, 5, 6, 7, 10, 12, 13, 16, 17, 18, 19, 20, 21, 24, 25, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43 ]
2204
- TOKENS_FOLLOWING_LOALPHA_IN_term_911 = Set[ 1, 5, 7, 30, 39 ]
2205
- TOKENS_FOLLOWING_set_IN_term_913 = Set[ 1, 5, 7, 30, 39 ]
2206
- TOKENS_FOLLOWING_uri_IN_scheme_946 = Set[ 1 ]
2207
- TOKENS_FOLLOWING_set_IN_class_type_955 = Set[ 1 ]
2208
- TOKENS_FOLLOWING_set_IN_title_976 = Set[ 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44 ]
2209
- TOKENS_FOLLOWING_attribute_component_IN_attribute_1023 = Set[ 13, 33 ]
2210
- TOKENS_FOLLOWING_T__33_IN_attribute_1034 = Set[ 5 ]
2211
- TOKENS_FOLLOWING_attribute_component_IN_attribute_1038 = Set[ 13, 33 ]
2212
- TOKENS_FOLLOWING_T__13_IN_attribute_1049 = Set[ 7, 14, 33 ]
2213
- TOKENS_FOLLOWING_attribute_value_IN_attribute_1051 = Set[ 1 ]
2214
- TOKENS_FOLLOWING_attribute_component_IN_attribute_name_1095 = Set[ 1, 33 ]
2215
- TOKENS_FOLLOWING_T__33_IN_attribute_name_1106 = Set[ 5 ]
2216
- TOKENS_FOLLOWING_attribute_component_IN_attribute_name_1110 = Set[ 1, 33 ]
2217
- TOKENS_FOLLOWING_LOALPHA_IN_attribute_component_1128 = Set[ 1, 5, 7, 30, 39 ]
2218
- TOKENS_FOLLOWING_set_IN_attribute_component_1130 = Set[ 1, 5, 7, 30, 39 ]
2219
- TOKENS_FOLLOWING_string_IN_attribute_value_1160 = Set[ 1 ]
2220
- TOKENS_FOLLOWING_number_IN_attribute_value_1166 = Set[ 1 ]
2221
- TOKENS_FOLLOWING_T__14_IN_string_1181 = Set[ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44 ]
2222
- TOKENS_FOLLOWING_set_IN_string_1183 = Set[ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44 ]
2223
- TOKENS_FOLLOWING_T__14_IN_string_1211 = Set[ 1 ]
2224
- TOKENS_FOLLOWING_DIGIT_IN_number_1223 = Set[ 1, 7, 33 ]
2225
- TOKENS_FOLLOWING_T__33_IN_number_1228 = Set[ 7 ]
2226
- TOKENS_FOLLOWING_DIGIT_IN_number_1230 = Set[ 1, 7 ]
2616
+ TOKENS_FOLLOWING_link_target_IN_link_value_520 = Set[ 6 ]
2617
+ TOKENS_FOLLOWING_link_rel_IN_link_value_529 = Set[ 6 ]
2618
+ TOKENS_FOLLOWING_link_self_IN_link_value_538 = Set[ 6 ]
2619
+ TOKENS_FOLLOWING_link_category_IN_link_value_548 = Set[ 6 ]
2620
+ TOKENS_FOLLOWING_link_attributes_IN_link_value_558 = Set[ 1, 6 ]
2621
+ TOKENS_FOLLOWING_SEMICOLON_IN_link_value_567 = Set[ 1 ]
2622
+ TOKENS_FOLLOWING_WS_IN_link_target_586 = Set[ 18 ]
2623
+ TOKENS_FOLLOWING_LT_IN_link_target_589 = Set[ 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2624
+ TOKENS_FOLLOWING_uri_IN_link_target_591 = Set[ 19 ]
2625
+ TOKENS_FOLLOWING_GT_IN_link_target_593 = Set[ 1 ]
2626
+ TOKENS_FOLLOWING_SEMICOLON_IN_link_rel_608 = Set[ 7, 13 ]
2627
+ TOKENS_FOLLOWING_WS_IN_link_rel_610 = Set[ 13 ]
2628
+ TOKENS_FOLLOWING_REL_IN_link_rel_613 = Set[ 9 ]
2629
+ TOKENS_FOLLOWING_EQUALS_IN_link_rel_615 = Set[ 10 ]
2630
+ TOKENS_FOLLOWING_QUOTE_IN_link_rel_617 = Set[ 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2631
+ TOKENS_FOLLOWING_uri_IN_link_rel_619 = Set[ 10 ]
2632
+ TOKENS_FOLLOWING_QUOTE_IN_link_rel_621 = Set[ 1 ]
2633
+ TOKENS_FOLLOWING_SEMICOLON_IN_link_self_636 = Set[ 7, 20 ]
2634
+ TOKENS_FOLLOWING_WS_IN_link_self_638 = Set[ 20 ]
2635
+ TOKENS_FOLLOWING_SELF_IN_link_self_641 = Set[ 9 ]
2636
+ TOKENS_FOLLOWING_EQUALS_IN_link_self_643 = Set[ 10 ]
2637
+ TOKENS_FOLLOWING_QUOTE_IN_link_self_645 = Set[ 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2638
+ TOKENS_FOLLOWING_uri_IN_link_self_647 = Set[ 10 ]
2639
+ TOKENS_FOLLOWING_QUOTE_IN_link_self_649 = Set[ 1 ]
2640
+ TOKENS_FOLLOWING_SEMICOLON_IN_link_category_664 = Set[ 7, 21 ]
2641
+ TOKENS_FOLLOWING_WS_IN_link_category_666 = Set[ 21 ]
2642
+ TOKENS_FOLLOWING_CATEGORY_IN_link_category_669 = Set[ 9 ]
2643
+ TOKENS_FOLLOWING_EQUALS_IN_link_category_671 = Set[ 10 ]
2644
+ TOKENS_FOLLOWING_QUOTE_IN_link_category_673 = Set[ 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2645
+ TOKENS_FOLLOWING_uri_IN_link_category_675 = Set[ 10 ]
2646
+ TOKENS_FOLLOWING_QUOTE_IN_link_category_677 = Set[ 1 ]
2647
+ TOKENS_FOLLOWING_SEMICOLON_IN_link_attributes_703 = Set[ 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 39, 40, 41, 44, 45 ]
2648
+ TOKENS_FOLLOWING_WS_IN_link_attributes_705 = Set[ 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 39, 40, 41, 44, 45 ]
2649
+ TOKENS_FOLLOWING_attribute_IN_link_attributes_708 = Set[ 1, 6 ]
2650
+ TOKENS_FOLLOWING_X_OCCI_ATTRIBUTE_KEY_IN_x_occi_attribute_729 = Set[ 5 ]
2651
+ TOKENS_FOLLOWING_COLON_IN_x_occi_attribute_731 = Set[ 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 39, 40, 41, 44, 45 ]
2652
+ TOKENS_FOLLOWING_WS_IN_x_occi_attribute_733 = Set[ 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 39, 40, 41, 44, 45 ]
2653
+ TOKENS_FOLLOWING_attribute_IN_x_occi_attribute_736 = Set[ 1, 6 ]
2654
+ TOKENS_FOLLOWING_SEMICOLON_IN_x_occi_attribute_738 = Set[ 1 ]
2655
+ TOKENS_FOLLOWING_X_OCCI_LOCATION_KEY_IN_x_occi_location_758 = Set[ 5 ]
2656
+ TOKENS_FOLLOWING_COLON_IN_x_occi_location_760 = Set[ 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2657
+ TOKENS_FOLLOWING_WS_IN_x_occi_location_762 = Set[ 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2658
+ TOKENS_FOLLOWING_uri_IN_x_occi_location_765 = Set[ 1, 6 ]
2659
+ TOKENS_FOLLOWING_SEMICOLON_IN_x_occi_location_767 = Set[ 1 ]
2660
+ TOKENS_FOLLOWING_LOALPHA_IN_uri_783 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2661
+ TOKENS_FOLLOWING_UPALPHA_IN_uri_787 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2662
+ TOKENS_FOLLOWING_DIGIT_IN_uri_791 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2663
+ TOKENS_FOLLOWING_AT_IN_uri_795 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2664
+ TOKENS_FOLLOWING_COLON_IN_uri_799 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2665
+ TOKENS_FOLLOWING_PERCENT_IN_uri_803 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2666
+ TOKENS_FOLLOWING_UNDERSCORE_IN_uri_807 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2667
+ TOKENS_FOLLOWING_BACKSLASH_IN_uri_811 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2668
+ TOKENS_FOLLOWING_PLUS_IN_uri_815 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2669
+ TOKENS_FOLLOWING_DOT_IN_uri_819 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2670
+ TOKENS_FOLLOWING_TILDE_IN_uri_823 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2671
+ TOKENS_FOLLOWING_HASH_IN_uri_827 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2672
+ TOKENS_FOLLOWING_QUESTION_IN_uri_831 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2673
+ TOKENS_FOLLOWING_AMPERSAND_IN_uri_835 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2674
+ TOKENS_FOLLOWING_SLASH_IN_uri_839 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2675
+ TOKENS_FOLLOWING_EQUALS_IN_uri_843 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2676
+ TOKENS_FOLLOWING_DASH_IN_uri_847 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2677
+ TOKENS_FOLLOWING_X_OCCI_ATTRIBUTE_KEY_IN_uri_851 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2678
+ TOKENS_FOLLOWING_X_OCCI_LOCATION_KEY_IN_uri_855 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2679
+ TOKENS_FOLLOWING_reserved_words_IN_uri_859 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2680
+ TOKENS_FOLLOWING_LOALPHA_IN_term_872 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 38, 39, 40, 41, 44, 45 ]
2681
+ TOKENS_FOLLOWING_reserved_words_IN_term_876 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 38, 39, 40, 41, 44, 45 ]
2682
+ TOKENS_FOLLOWING_LOALPHA_IN_term_882 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 38, 39, 40, 41, 44, 45 ]
2683
+ TOKENS_FOLLOWING_DIGIT_IN_term_886 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 38, 39, 40, 41, 44, 45 ]
2684
+ TOKENS_FOLLOWING_DASH_IN_term_890 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 38, 39, 40, 41, 44, 45 ]
2685
+ TOKENS_FOLLOWING_UNDERSCORE_IN_term_894 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 38, 39, 40, 41, 44, 45 ]
2686
+ TOKENS_FOLLOWING_reserved_words_IN_term_898 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 38, 39, 40, 41, 44, 45 ]
2687
+ TOKENS_FOLLOWING_uri_IN_scheme_918 = Set[ 1 ]
2688
+ TOKENS_FOLLOWING_set_IN_class_type_927 = Set[ 1 ]
2689
+ TOKENS_FOLLOWING_set_IN_title_948 = Set[ 1, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45 ]
2690
+ TOKENS_FOLLOWING_attribute_component_IN_attribute_995 = Set[ 9, 32 ]
2691
+ TOKENS_FOLLOWING_DOT_IN_attribute_1006 = Set[ 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 39, 40, 41, 44, 45 ]
2692
+ TOKENS_FOLLOWING_attribute_component_IN_attribute_1010 = Set[ 9, 32 ]
2693
+ TOKENS_FOLLOWING_EQUALS_IN_attribute_1021 = Set[ 10, 26 ]
2694
+ TOKENS_FOLLOWING_attribute_value_IN_attribute_1023 = Set[ 1 ]
2695
+ TOKENS_FOLLOWING_attribute_component_IN_attribute_name_1067 = Set[ 1, 32 ]
2696
+ TOKENS_FOLLOWING_DOT_IN_attribute_name_1078 = Set[ 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 39, 40, 41, 44, 45 ]
2697
+ TOKENS_FOLLOWING_attribute_component_IN_attribute_name_1082 = Set[ 1, 32 ]
2698
+ TOKENS_FOLLOWING_LOALPHA_IN_attribute_component_1102 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 38, 39, 40, 41, 44, 45 ]
2699
+ TOKENS_FOLLOWING_reserved_words_IN_attribute_component_1106 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 38, 39, 40, 41, 44, 45 ]
2700
+ TOKENS_FOLLOWING_LOALPHA_IN_attribute_component_1111 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 38, 39, 40, 41, 44, 45 ]
2701
+ TOKENS_FOLLOWING_DIGIT_IN_attribute_component_1115 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 38, 39, 40, 41, 44, 45 ]
2702
+ TOKENS_FOLLOWING_DASH_IN_attribute_component_1119 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 38, 39, 40, 41, 44, 45 ]
2703
+ TOKENS_FOLLOWING_UNDERSCORE_IN_attribute_component_1123 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 38, 39, 40, 41, 44, 45 ]
2704
+ TOKENS_FOLLOWING_reserved_words_IN_attribute_component_1127 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 38, 39, 40, 41, 44, 45 ]
2705
+ TOKENS_FOLLOWING_string_IN_attribute_value_1144 = Set[ 1 ]
2706
+ TOKENS_FOLLOWING_number_IN_attribute_value_1150 = Set[ 1 ]
2707
+ TOKENS_FOLLOWING_quoted_string_IN_string_1163 = Set[ 1 ]
2708
+ TOKENS_FOLLOWING_digits_IN_number_1174 = Set[ 1, 32 ]
2709
+ TOKENS_FOLLOWING_DOT_IN_number_1178 = Set[ 10, 26 ]
2710
+ TOKENS_FOLLOWING_digits_IN_number_1180 = Set[ 1 ]
2711
+ TOKENS_FOLLOWING_set_IN_reserved_words_1193 = Set[ 1 ]
2712
+ TOKENS_FOLLOWING_QUOTE_IN_quoted_string_1629 = Set[ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45 ]
2713
+ TOKENS_FOLLOWING_set_IN_quoted_string_1631 = Set[ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45 ]
2714
+ TOKENS_FOLLOWING_QUOTE_IN_quoted_string_1659 = Set[ 1 ]
2715
+ TOKENS_FOLLOWING_DIGIT_IN_digits_1668 = Set[ 1, 26 ]
2227
2716
 
2228
2717
  end # class Parser < ANTLR3::Parser
2229
2718