occi 2.0.6 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. data/.gitignore +1 -0
  2. data/.yardopts +1 -1
  3. data/Gemfile +3 -20
  4. data/Gemfile.lock +10 -59
  5. data/README.md +64 -2
  6. data/etc/model/infrastructure/compute.json +115 -0
  7. data/etc/model/infrastructure/ipnetwork.json +43 -0
  8. data/etc/model/infrastructure/ipnetworkinterface.json +43 -0
  9. data/etc/model/infrastructure/network.json +56 -0
  10. data/etc/model/infrastructure/networkinterface.json +40 -0
  11. data/etc/model/infrastructure/os_template.json +9 -0
  12. data/etc/model/infrastructure/resource_template.json +9 -0
  13. data/etc/model/infrastructure/storage.json +75 -0
  14. data/etc/model/infrastructure/storagelink.json +38 -0
  15. data/lib/occi/collection.rb +34 -0
  16. data/lib/occi/core/action.rb +0 -21
  17. data/lib/occi/core/attribute_properties.rb +0 -21
  18. data/lib/occi/core/attributes.rb +1 -20
  19. data/lib/occi/core/category.rb +0 -21
  20. data/lib/occi/core/entity.rb +7 -28
  21. data/lib/occi/core/kind.rb +1 -22
  22. data/lib/occi/core/link.rb +3 -23
  23. data/lib/occi/core/mixin.rb +0 -22
  24. data/lib/occi/core/resource.rb +3 -24
  25. data/lib/occi/log.rb +24 -22
  26. data/lib/occi/model.rb +102 -0
  27. data/lib/occi/{parse.rb → parser.rb} +73 -56
  28. data/lib/occi/version.rb +1 -1
  29. data/lib/occi.rb +17 -17
  30. data/lib/{occi/antlr → occiantlr}/.gitignore +0 -0
  31. data/lib/{occi/antlr/OCCI.g → occiantlr/OCCIANTLR.g} +17 -50
  32. data/lib/{occi/antlr/OCCI.tokens → occiantlr/OCCIANTLR.tokens} +4 -2
  33. data/lib/{occi/antlr/OCCILexer.rb → occiantlr/OCCIANTLRLexer.rb} +597 -555
  34. data/lib/occiantlr/OCCIANTLRParser.rb +2232 -0
  35. data/lib/{occi/antlr → occiantlr}/README.md +0 -0
  36. data/occi.gemspec +3 -0
  37. data/spec/occi/collection_spec.rb +19 -0
  38. data/spec/occi/log_spec.rb +16 -0
  39. data/spec/occi/model_spec.rb +26 -0
  40. data/spec/occi/parser_spec.rb +12 -0
  41. data/spec/occiantlr/parser_spec.rb +84 -0
  42. metadata +78 -14
  43. data/lib/occi/antlr/OCCIParser.rb +0 -2472
  44. data/lib/occi/core/collection.rb +0 -27
  45. data/lib/occi/exceptions.rb +0 -59
  46. data/lib/occi/registry.rb +0 -87
  47. data/spec/occi/antlr/parser_spec.rb +0 -82
@@ -0,0 +1,2232 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # OCCIANTLR.g
4
+ # --
5
+ # Generated using ANTLR version: 3.2.1-SNAPSHOT Jul 31, 2010 19:34:52
6
+ # Ruby runtime library version: 1.8.11
7
+ # Input grammar file: OCCIANTLR.g
8
+ # Generated at: 2012-06-09 10:31:15
9
+ #
10
+
11
+ # ~~~> start load path setup
12
+ this_directory = File.expand_path( File.dirname( __FILE__ ) )
13
+ $LOAD_PATH.unshift( this_directory ) unless $LOAD_PATH.include?( this_directory )
14
+
15
+ antlr_load_failed = proc do
16
+ load_path = $LOAD_PATH.map { |dir| ' - ' << dir }.join( $/ )
17
+ raise LoadError, <<-END.strip!
18
+
19
+ Failed to load the ANTLR3 runtime library (version 1.8.11):
20
+
21
+ Ensure the library has been installed on your system and is available
22
+ on the load path. If rubygems is available on your system, this can
23
+ be done with the command:
24
+
25
+ gem install antlr3
26
+
27
+ Current load path:
28
+ #{ load_path }
29
+
30
+ END
31
+ end
32
+
33
+ defined?( ANTLR3 ) or begin
34
+
35
+ # 1: try to load the ruby antlr3 runtime library from the system path
36
+ require 'antlr3'
37
+
38
+ rescue LoadError
39
+
40
+ # 2: try to load rubygems if it isn't already loaded
41
+ defined?( Gem ) or begin
42
+ require 'rubygems'
43
+ rescue LoadError
44
+ antlr_load_failed.call
45
+ end
46
+
47
+ # 3: try to activate the antlr3 gem
48
+ begin
49
+ Gem.activate( 'antlr3', '~> 1.8.11' )
50
+ rescue Gem::LoadError
51
+ antlr_load_failed.call
52
+ end
53
+
54
+ require 'antlr3'
55
+
56
+ end
57
+ # <~~~ end load path setup
58
+
59
+ # - - - - - - begin action @parser::header - - - - - -
60
+ # OCCIANTLR.g
61
+
62
+
63
+ require 'uri'
64
+ require 'hashie'
65
+ ATTRIBUTE = { :mutable => true, :required => false, :type => "string" }
66
+
67
+ # - - - - - - end action @parser::header - - - - - - -
68
+
69
+
70
+ module OCCIANTLR
71
+ # TokenData defines all of the token type integer values
72
+ # as constants, which will be included in all
73
+ # ANTLR-generated recognizers.
74
+ const_defined?( :TokenData ) or TokenData = ANTLR3::TokenScheme.new
75
+
76
+ module TokenData
77
+
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 )
90
+
91
+ # register the proper human-readable name or literal value
92
+ # for each token type
93
+ #
94
+ # this is necessary because anonymous tokens, which are
95
+ # created from literal values in the grammar, do not
96
+ # 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'", "'\\''" )
104
+
105
+ end
106
+
107
+
108
+ class Parser < ANTLR3::Parser
109
+ @grammar_home = OCCIANTLR
110
+
111
+ RULE_METHODS = [ :category, :category_value, :category_term, :category_scheme,
112
+ :category_class, :category_title, :category_rel, :category_location,
113
+ :category_attributes, :category_actions, :link, :link_value,
114
+ :link_target, :link_rel, :link_self, :link_category,
115
+ :link_attributes, :x_occi_attribute, :x_occi_location,
116
+ :uri, :term, :scheme, :class_type, :title, :attribute,
117
+ :attribute_name, :attribute_component, :attribute_value,
118
+ :string, :number ].freeze
119
+
120
+
121
+ include TokenData
122
+
123
+ begin
124
+ generated_using( "OCCIANTLR.g", "3.2.1-SNAPSHOT Jul 31, 2010 19:34:52", "1.8.11" )
125
+ rescue NoMethodError => error
126
+ # ignore
127
+ end
128
+
129
+ def initialize( input, options = {} )
130
+ super( input, options )
131
+
132
+
133
+ end
134
+ # - - - - - - - - - - - - Rules - - - - - - - - - - - - -
135
+
136
+ #
137
+ # parser rule category
138
+ #
139
+ # (in OCCIANTLR.g)
140
+ # 25:1: category returns [hash] : 'Category' ':' category_value ;
141
+ #
142
+ def category
143
+ # -> uncomment the next line to manually enable rule tracing
144
+ # trace_in( __method__, 1 )
145
+ hash = nil
146
+ category_value1 = nil
147
+
148
+ 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
+ @state.following.push( TOKENS_FOLLOWING_category_value_IN_category_43 )
153
+ category_value1 = category_value
154
+ @state.following.pop
155
+ # --> action
156
+ hash = category_value1
157
+ # <-- action
158
+
159
+ rescue ANTLR3::Error::RecognitionError => re
160
+ report_error(re)
161
+ recover(re)
162
+
163
+ ensure
164
+ # -> uncomment the next line to manually enable rule tracing
165
+ # trace_out( __method__, 1 )
166
+
167
+ end
168
+
169
+ return hash
170
+ end
171
+
172
+
173
+ #
174
+ # parser rule category_value
175
+ #
176
+ # (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 )? ( ';' )? ;
178
+ #
179
+ def category_value
180
+ # -> uncomment the next line to manually enable rule tracing
181
+ # trace_in( __method__, 2 )
182
+ hash = nil
183
+ category_class2 = nil
184
+ category_term3 = nil
185
+ category_scheme4 = nil
186
+ category_title5 = nil
187
+ category_rel6 = nil
188
+ category_location7 = nil
189
+ category_attributes8 = nil
190
+ category_actions9 = nil
191
+ # - - - - @init action - - - -
192
+ hash = Hashie::Mash.new( {:kinds=>[],:mixins=>[],:actions=>[] } )
193
+
194
+ begin
195
+ # at line 29:15: category_term category_scheme category_class ( category_title )? ( category_rel )? ( category_location )? ( category_attributes )? ( category_actions )? ( ';' )?
196
+ @state.following.push( TOKENS_FOLLOWING_category_term_IN_category_value_75 )
197
+ category_term3 = category_term
198
+ @state.following.pop
199
+ @state.following.push( TOKENS_FOLLOWING_category_scheme_IN_category_value_77 )
200
+ category_scheme4 = category_scheme
201
+ @state.following.pop
202
+ @state.following.push( TOKENS_FOLLOWING_category_class_IN_category_value_79 )
203
+ category_class2 = category_class
204
+ @state.following.pop
205
+ # at line 29:60: ( category_title )?
206
+ alt_1 = 2
207
+ look_1_0 = @input.peek( 1 )
208
+
209
+ if ( look_1_0 == T__11 )
210
+ look_1_1 = @input.peek( 2 )
211
+
212
+ if ( look_1_1 == WS )
213
+ look_1_3 = @input.peek( 3 )
214
+
215
+ if ( look_1_3 == T__16 )
216
+ alt_1 = 1
217
+ end
218
+ elsif ( look_1_1 == T__16 )
219
+ alt_1 = 1
220
+ end
221
+ end
222
+ case alt_1
223
+ when 1
224
+ # at line 29:60: category_title
225
+ @state.following.push( TOKENS_FOLLOWING_category_title_IN_category_value_81 )
226
+ category_title5 = category_title
227
+ @state.following.pop
228
+
229
+ end
230
+ # at line 29:76: ( category_rel )?
231
+ alt_2 = 2
232
+ look_2_0 = @input.peek( 1 )
233
+
234
+ if ( look_2_0 == T__11 )
235
+ look_2_1 = @input.peek( 2 )
236
+
237
+ if ( look_2_1 == WS )
238
+ look_2_3 = @input.peek( 3 )
239
+
240
+ if ( look_2_3 == T__17 )
241
+ alt_2 = 1
242
+ end
243
+ elsif ( look_2_1 == T__17 )
244
+ alt_2 = 1
245
+ end
246
+ end
247
+ case alt_2
248
+ when 1
249
+ # at line 29:76: category_rel
250
+ @state.following.push( TOKENS_FOLLOWING_category_rel_IN_category_value_84 )
251
+ category_rel6 = category_rel
252
+ @state.following.pop
253
+
254
+ end
255
+ # at line 29:90: ( category_location )?
256
+ alt_3 = 2
257
+ look_3_0 = @input.peek( 1 )
258
+
259
+ if ( look_3_0 == T__11 )
260
+ look_3_1 = @input.peek( 2 )
261
+
262
+ if ( look_3_1 == WS )
263
+ look_3_3 = @input.peek( 3 )
264
+
265
+ if ( look_3_3 == T__18 )
266
+ alt_3 = 1
267
+ end
268
+ elsif ( look_3_1 == T__18 )
269
+ alt_3 = 1
270
+ end
271
+ end
272
+ case alt_3
273
+ when 1
274
+ # at line 29:90: category_location
275
+ @state.following.push( TOKENS_FOLLOWING_category_location_IN_category_value_87 )
276
+ category_location7 = category_location
277
+ @state.following.pop
278
+
279
+ end
280
+ # at line 29:109: ( category_attributes )?
281
+ alt_4 = 2
282
+ look_4_0 = @input.peek( 1 )
283
+
284
+ if ( look_4_0 == T__11 )
285
+ look_4_1 = @input.peek( 2 )
286
+
287
+ if ( look_4_1 == WS )
288
+ look_4_3 = @input.peek( 3 )
289
+
290
+ if ( look_4_3 == T__19 )
291
+ alt_4 = 1
292
+ end
293
+ elsif ( look_4_1 == T__19 )
294
+ alt_4 = 1
295
+ end
296
+ end
297
+ case alt_4
298
+ when 1
299
+ # at line 29:109: category_attributes
300
+ @state.following.push( TOKENS_FOLLOWING_category_attributes_IN_category_value_90 )
301
+ category_attributes8 = category_attributes
302
+ @state.following.pop
303
+
304
+ end
305
+ # at line 29:130: ( category_actions )?
306
+ alt_5 = 2
307
+ look_5_0 = @input.peek( 1 )
308
+
309
+ if ( look_5_0 == T__11 )
310
+ look_5_1 = @input.peek( 2 )
311
+
312
+ if ( look_5_1 == WS || look_5_1 == T__20 )
313
+ alt_5 = 1
314
+ end
315
+ end
316
+ case alt_5
317
+ when 1
318
+ # at line 29:130: category_actions
319
+ @state.following.push( TOKENS_FOLLOWING_category_actions_IN_category_value_93 )
320
+ category_actions9 = category_actions
321
+ @state.following.pop
322
+
323
+ end
324
+ # at line 29:148: ( ';' )?
325
+ alt_6 = 2
326
+ look_6_0 = @input.peek( 1 )
327
+
328
+ if ( look_6_0 == T__11 )
329
+ alt_6 = 1
330
+ end
331
+ case alt_6
332
+ when 1
333
+ # at line 29:148: ';'
334
+ match( T__11, TOKENS_FOLLOWING_T__11_IN_category_value_96 )
335
+
336
+ end
337
+ # --> action
338
+ type = category_class2
339
+ cat = Hashie::Mash.new
340
+ cat.term = category_term3
341
+ cat.scheme = category_scheme4
342
+ cat.title = category_title5
343
+ cat.related = category_rel6
344
+ cat.location = category_location7
345
+ cat.attributes = category_attributes8
346
+ cat.actions = category_actions9
347
+ hash[(type+'s').to_sym] << cat
348
+
349
+ # <-- action
350
+
351
+ rescue ANTLR3::Error::RecognitionError => re
352
+ report_error(re)
353
+ recover(re)
354
+
355
+ ensure
356
+ # -> uncomment the next line to manually enable rule tracing
357
+ # trace_out( __method__, 2 )
358
+
359
+ end
360
+
361
+ return hash
362
+ end
363
+
364
+
365
+ #
366
+ # parser rule category_term
367
+ #
368
+ # (in OCCIANTLR.g)
369
+ # 41:3: category_term returns [value] : ( WS )? term ;
370
+ #
371
+ def category_term
372
+ # -> uncomment the next line to manually enable rule tracing
373
+ # trace_in( __method__, 3 )
374
+ value = nil
375
+ term10 = nil
376
+
377
+ begin
378
+ # at line 41:37: ( WS )? term
379
+ # at line 41:37: ( WS )?
380
+ alt_7 = 2
381
+ look_7_0 = @input.peek( 1 )
382
+
383
+ if ( look_7_0 == WS )
384
+ alt_7 = 1
385
+ end
386
+ case alt_7
387
+ when 1
388
+ # at line 41:37: WS
389
+ match( WS, TOKENS_FOLLOWING_WS_IN_category_term_128 )
390
+
391
+ end
392
+ @state.following.push( TOKENS_FOLLOWING_term_IN_category_term_131 )
393
+ term10 = term
394
+ @state.following.pop
395
+ # --> action
396
+ value = ( term10 && @input.to_s( term10.start, term10.stop ) )
397
+ # <-- action
398
+
399
+ rescue ANTLR3::Error::RecognitionError => re
400
+ report_error(re)
401
+ recover(re)
402
+
403
+ ensure
404
+ # -> uncomment the next line to manually enable rule tracing
405
+ # trace_out( __method__, 3 )
406
+
407
+ end
408
+
409
+ return value
410
+ end
411
+
412
+
413
+ #
414
+ # parser rule category_scheme
415
+ #
416
+ # (in OCCIANTLR.g)
417
+ # 43:3: category_scheme returns [value] : ';' ( WS )? 'scheme' '=' '\"' scheme '\"' ;
418
+ #
419
+ def category_scheme
420
+ # -> uncomment the next line to manually enable rule tracing
421
+ # trace_in( __method__, 4 )
422
+ value = nil
423
+ scheme11 = nil
424
+
425
+ 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
+ alt_8 = 2
430
+ look_8_0 = @input.peek( 1 )
431
+
432
+ if ( look_8_0 == WS )
433
+ alt_8 = 1
434
+ end
435
+ case alt_8
436
+ when 1
437
+ # at line 43:41: WS
438
+ match( WS, TOKENS_FOLLOWING_WS_IN_category_scheme_159 )
439
+
440
+ 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
+ @state.following.push( TOKENS_FOLLOWING_scheme_IN_category_scheme_168 )
445
+ scheme11 = scheme
446
+ @state.following.pop
447
+ match( T__14, TOKENS_FOLLOWING_T__14_IN_category_scheme_170 )
448
+ # --> action
449
+ value = ( scheme11 && @input.to_s( scheme11.start, scheme11.stop ) )
450
+ # <-- action
451
+
452
+ rescue ANTLR3::Error::RecognitionError => re
453
+ report_error(re)
454
+ recover(re)
455
+
456
+ ensure
457
+ # -> uncomment the next line to manually enable rule tracing
458
+ # trace_out( __method__, 4 )
459
+
460
+ end
461
+
462
+ return value
463
+ end
464
+
465
+
466
+ #
467
+ # parser rule category_class
468
+ #
469
+ # (in OCCIANTLR.g)
470
+ # 45:3: category_class returns [value] : ';' ( WS )? 'class' '=' '\"' class_type '\"' ;
471
+ #
472
+ def category_class
473
+ # -> uncomment the next line to manually enable rule tracing
474
+ # trace_in( __method__, 5 )
475
+ value = nil
476
+ class_type12 = nil
477
+
478
+ 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
+ alt_9 = 2
483
+ look_9_0 = @input.peek( 1 )
484
+
485
+ if ( look_9_0 == WS )
486
+ alt_9 = 1
487
+ end
488
+ case alt_9
489
+ when 1
490
+ # at line 45:41: WS
491
+ match( WS, TOKENS_FOLLOWING_WS_IN_category_class_201 )
492
+
493
+ 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
+ @state.following.push( TOKENS_FOLLOWING_class_type_IN_category_class_210 )
498
+ class_type12 = class_type
499
+ @state.following.pop
500
+ match( T__14, TOKENS_FOLLOWING_T__14_IN_category_class_212 )
501
+ # --> action
502
+ value = ( class_type12 && @input.to_s( class_type12.start, class_type12.stop ) )
503
+ # <-- action
504
+
505
+ rescue ANTLR3::Error::RecognitionError => re
506
+ report_error(re)
507
+ recover(re)
508
+
509
+ ensure
510
+ # -> uncomment the next line to manually enable rule tracing
511
+ # trace_out( __method__, 5 )
512
+
513
+ end
514
+
515
+ return value
516
+ end
517
+
518
+
519
+ #
520
+ # parser rule category_title
521
+ #
522
+ # (in OCCIANTLR.g)
523
+ # 47:3: category_title returns [value] : ';' ( WS )? 'title' '=' '\"' title '\"' ;
524
+ #
525
+ def category_title
526
+ # -> uncomment the next line to manually enable rule tracing
527
+ # trace_in( __method__, 6 )
528
+ value = nil
529
+ title13 = nil
530
+
531
+ 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
+ alt_10 = 2
536
+ look_10_0 = @input.peek( 1 )
537
+
538
+ if ( look_10_0 == WS )
539
+ alt_10 = 1
540
+ end
541
+ case alt_10
542
+ when 1
543
+ # at line 47:41: WS
544
+ match( WS, TOKENS_FOLLOWING_WS_IN_category_title_239 )
545
+
546
+ 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
+ @state.following.push( TOKENS_FOLLOWING_title_IN_category_title_248 )
551
+ title13 = title
552
+ @state.following.pop
553
+ match( T__14, TOKENS_FOLLOWING_T__14_IN_category_title_250 )
554
+ # --> action
555
+ value = ( title13 && @input.to_s( title13.start, title13.stop ) )
556
+ # <-- action
557
+
558
+ rescue ANTLR3::Error::RecognitionError => re
559
+ report_error(re)
560
+ recover(re)
561
+
562
+ ensure
563
+ # -> uncomment the next line to manually enable rule tracing
564
+ # trace_out( __method__, 6 )
565
+
566
+ end
567
+
568
+ return value
569
+ end
570
+
571
+
572
+ #
573
+ # parser rule category_rel
574
+ #
575
+ # (in OCCIANTLR.g)
576
+ # 49:3: category_rel returns [value] : ';' ( WS )? 'rel' '=' '\"' uri '\"' ;
577
+ #
578
+ def category_rel
579
+ # -> uncomment the next line to manually enable rule tracing
580
+ # trace_in( __method__, 7 )
581
+ value = nil
582
+ uri14 = nil
583
+
584
+ 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
+ alt_11 = 2
589
+ look_11_0 = @input.peek( 1 )
590
+
591
+ if ( look_11_0 == WS )
592
+ alt_11 = 1
593
+ end
594
+ case alt_11
595
+ when 1
596
+ # at line 49:39: WS
597
+ match( WS, TOKENS_FOLLOWING_WS_IN_category_rel_279 )
598
+
599
+ 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
+ @state.following.push( TOKENS_FOLLOWING_uri_IN_category_rel_288 )
604
+ uri14 = uri
605
+ @state.following.pop
606
+ match( T__14, TOKENS_FOLLOWING_T__14_IN_category_rel_290 )
607
+ # --> action
608
+ value = ( uri14 && @input.to_s( uri14.start, uri14.stop ) )
609
+ # <-- action
610
+
611
+ rescue ANTLR3::Error::RecognitionError => re
612
+ report_error(re)
613
+ recover(re)
614
+
615
+ ensure
616
+ # -> uncomment the next line to manually enable rule tracing
617
+ # trace_out( __method__, 7 )
618
+
619
+ end
620
+
621
+ return value
622
+ end
623
+
624
+
625
+ #
626
+ # parser rule category_location
627
+ #
628
+ # (in OCCIANTLR.g)
629
+ # 51:3: category_location returns [value] : ';' ( WS )? 'location' '=' '\"' uri '\"' ;
630
+ #
631
+ def category_location
632
+ # -> uncomment the next line to manually enable rule tracing
633
+ # trace_in( __method__, 8 )
634
+ value = nil
635
+ uri15 = nil
636
+
637
+ 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
+ alt_12 = 2
642
+ look_12_0 = @input.peek( 1 )
643
+
644
+ if ( look_12_0 == WS )
645
+ alt_12 = 1
646
+ end
647
+ case alt_12
648
+ when 1
649
+ # at line 51:43: WS
650
+ match( WS, TOKENS_FOLLOWING_WS_IN_category_location_317 )
651
+
652
+ 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
+ @state.following.push( TOKENS_FOLLOWING_uri_IN_category_location_326 )
657
+ uri15 = uri
658
+ @state.following.pop
659
+ match( T__14, TOKENS_FOLLOWING_T__14_IN_category_location_328 )
660
+ # --> action
661
+ value = ( uri15 && @input.to_s( uri15.start, uri15.stop ) )
662
+ # <-- action
663
+
664
+ rescue ANTLR3::Error::RecognitionError => re
665
+ report_error(re)
666
+ recover(re)
667
+
668
+ ensure
669
+ # -> uncomment the next line to manually enable rule tracing
670
+ # trace_out( __method__, 8 )
671
+
672
+ end
673
+
674
+ return value
675
+ end
676
+
677
+
678
+ #
679
+ # parser rule category_attributes
680
+ #
681
+ # (in OCCIANTLR.g)
682
+ # 53:3: category_attributes returns [hash] : ';' ( WS )? 'attributes' '=' '\"' attr= attribute_name ( WS next_attr= attribute_name )* '\"' ;
683
+ #
684
+ def category_attributes
685
+ # -> uncomment the next line to manually enable rule tracing
686
+ # trace_in( __method__, 9 )
687
+ hash = nil
688
+ attr = nil
689
+ next_attr = nil
690
+ # - - - - @init action - - - -
691
+ hash = Hashie::Mash.new
692
+
693
+ 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
+ alt_13 = 2
698
+ look_13_0 = @input.peek( 1 )
699
+
700
+ if ( look_13_0 == WS )
701
+ alt_13 = 1
702
+ end
703
+ case alt_13
704
+ when 1
705
+ # at line 54:14: WS
706
+ match( WS, TOKENS_FOLLOWING_WS_IN_category_attributes_369 )
707
+
708
+ 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
+ @state.following.push( TOKENS_FOLLOWING_attribute_name_IN_category_attributes_380 )
713
+ attr = attribute_name
714
+ @state.following.pop
715
+ # --> action
716
+ hash.merge!(attr)
717
+ # <-- action
718
+ # at line 55:10: ( WS next_attr= attribute_name )*
719
+ while true # decision 14
720
+ alt_14 = 2
721
+ look_14_0 = @input.peek( 1 )
722
+
723
+ if ( look_14_0 == WS )
724
+ alt_14 = 1
725
+
726
+ end
727
+ case alt_14
728
+ when 1
729
+ # at line 55:12: WS next_attr= attribute_name
730
+ match( WS, TOKENS_FOLLOWING_WS_IN_category_attributes_395 )
731
+ @state.following.push( TOKENS_FOLLOWING_attribute_name_IN_category_attributes_399 )
732
+ next_attr = attribute_name
733
+ @state.following.pop
734
+ # --> action
735
+ hash.merge!(next_attr)
736
+ # <-- action
737
+
738
+ else
739
+ break # out of loop for decision 14
740
+ end
741
+ end # loop for decision 14
742
+ match( T__14, TOKENS_FOLLOWING_T__14_IN_category_attributes_407 )
743
+
744
+ rescue ANTLR3::Error::RecognitionError => re
745
+ report_error(re)
746
+ recover(re)
747
+
748
+ ensure
749
+ # -> uncomment the next line to manually enable rule tracing
750
+ # trace_out( __method__, 9 )
751
+
752
+ end
753
+
754
+ return hash
755
+ end
756
+
757
+
758
+ #
759
+ # parser rule category_actions
760
+ #
761
+ # (in OCCIANTLR.g)
762
+ # 56:3: category_actions returns [array] : ';' ( WS )? 'actions' '=' '\"' act= uri ( WS next_act= uri )* '\"' ;
763
+ #
764
+ def category_actions
765
+ # -> uncomment the next line to manually enable rule tracing
766
+ # trace_in( __method__, 10 )
767
+ array = nil
768
+ act = nil
769
+ next_act = nil
770
+ # - - - - @init action - - - -
771
+ array = Array.new
772
+
773
+ 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
+ alt_15 = 2
778
+ look_15_0 = @input.peek( 1 )
779
+
780
+ if ( look_15_0 == WS )
781
+ alt_15 = 1
782
+ end
783
+ case alt_15
784
+ when 1
785
+ # at line 57:14: WS
786
+ match( WS, TOKENS_FOLLOWING_WS_IN_category_actions_439 )
787
+
788
+ 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
+ @state.following.push( TOKENS_FOLLOWING_uri_IN_category_actions_450 )
793
+ act = uri
794
+ @state.following.pop
795
+ # --> action
796
+ array << ( act && @input.to_s( act.start, act.stop ) )
797
+ # <-- action
798
+ # at line 58:10: ( WS next_act= uri )*
799
+ while true # decision 16
800
+ alt_16 = 2
801
+ look_16_0 = @input.peek( 1 )
802
+
803
+ if ( look_16_0 == WS )
804
+ alt_16 = 1
805
+
806
+ end
807
+ case alt_16
808
+ when 1
809
+ # at line 58:12: WS next_act= uri
810
+ match( WS, TOKENS_FOLLOWING_WS_IN_category_actions_466 )
811
+ @state.following.push( TOKENS_FOLLOWING_uri_IN_category_actions_470 )
812
+ next_act = uri
813
+ @state.following.pop
814
+ # --> action
815
+ array << ( next_act && @input.to_s( next_act.start, next_act.stop ) )
816
+ # <-- action
817
+
818
+ else
819
+ break # out of loop for decision 16
820
+ end
821
+ end # loop for decision 16
822
+ match( T__14, TOKENS_FOLLOWING_T__14_IN_category_actions_477 )
823
+
824
+ rescue ANTLR3::Error::RecognitionError => re
825
+ report_error(re)
826
+ recover(re)
827
+
828
+ ensure
829
+ # -> uncomment the next line to manually enable rule tracing
830
+ # trace_out( __method__, 10 )
831
+
832
+ end
833
+
834
+ return array
835
+ end
836
+
837
+
838
+ #
839
+ # parser rule link
840
+ #
841
+ # (in OCCIANTLR.g)
842
+ # 69:1: link returns [hash] : 'Link' ':' link_value ;
843
+ #
844
+ def link
845
+ # -> uncomment the next line to manually enable rule tracing
846
+ # trace_in( __method__, 11 )
847
+ hash = nil
848
+ link_value16 = nil
849
+
850
+ 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
+ @state.following.push( TOKENS_FOLLOWING_link_value_IN_link_498 )
855
+ link_value16 = link_value
856
+ @state.following.pop
857
+ # --> action
858
+ hash = link_value16
859
+ # <-- action
860
+
861
+ rescue ANTLR3::Error::RecognitionError => re
862
+ report_error(re)
863
+ recover(re)
864
+
865
+ ensure
866
+ # -> uncomment the next line to manually enable rule tracing
867
+ # trace_out( __method__, 11 )
868
+
869
+ end
870
+
871
+ return hash
872
+ end
873
+
874
+
875
+ #
876
+ # parser rule link_value
877
+ #
878
+ # (in OCCIANTLR.g)
879
+ # 71:2: link_value returns [hash] : link_target link_rel ( link_self )? ( link_category )? link_attributes ( ';' )? ;
880
+ #
881
+ def link_value
882
+ # -> uncomment the next line to manually enable rule tracing
883
+ # trace_in( __method__, 12 )
884
+ hash = nil
885
+ link_target17 = nil
886
+ link_rel18 = nil
887
+ link_self19 = nil
888
+ link_category20 = nil
889
+ link_attributes21 = nil
890
+ # - - - - @init action - - - -
891
+ hash = Hashie::Mash.new
892
+
893
+ begin
894
+ # at line 73:6: link_target link_rel ( link_self )? ( link_category )? link_attributes ( ';' )?
895
+ @state.following.push( TOKENS_FOLLOWING_link_target_IN_link_value_520 )
896
+ link_target17 = link_target
897
+ @state.following.pop
898
+ # --> action
899
+ hash[:target] = link_target17
900
+ # <-- action
901
+ @state.following.push( TOKENS_FOLLOWING_link_rel_IN_link_value_529 )
902
+ link_rel18 = link_rel
903
+ @state.following.pop
904
+ # --> action
905
+ hash[:rel] = link_rel18
906
+ # <-- action
907
+ # at line 75:6: ( link_self )?
908
+ 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
924
+ case alt_17
925
+ when 1
926
+ # at line 75:6: link_self
927
+ @state.following.push( TOKENS_FOLLOWING_link_self_IN_link_value_538 )
928
+ link_self19 = link_self
929
+ @state.following.pop
930
+
931
+ end
932
+ # --> action
933
+ hash[:self] = link_self19
934
+ # <-- action
935
+ # at line 76:6: ( link_category )?
936
+ 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
952
+ case alt_18
953
+ when 1
954
+ # at line 76:6: link_category
955
+ @state.following.push( TOKENS_FOLLOWING_link_category_IN_link_value_548 )
956
+ link_category20 = link_category
957
+ @state.following.pop
958
+
959
+ end
960
+ # --> action
961
+ hash[:category] = link_category20
962
+ # <-- action
963
+ @state.following.push( TOKENS_FOLLOWING_link_attributes_IN_link_value_558 )
964
+ link_attributes21 = link_attributes
965
+ @state.following.pop
966
+ # --> action
967
+ hash[:attributes] = link_attributes21
968
+ # <-- action
969
+ # at line 78:6: ( ';' )?
970
+ alt_19 = 2
971
+ look_19_0 = @input.peek( 1 )
972
+
973
+ if ( look_19_0 == T__11 )
974
+ alt_19 = 1
975
+ end
976
+ case alt_19
977
+ when 1
978
+ # at line 78:6: ';'
979
+ match( T__11, TOKENS_FOLLOWING_T__11_IN_link_value_567 )
980
+
981
+ end
982
+
983
+ rescue ANTLR3::Error::RecognitionError => re
984
+ report_error(re)
985
+ recover(re)
986
+
987
+ ensure
988
+ # -> uncomment the next line to manually enable rule tracing
989
+ # trace_out( __method__, 12 )
990
+
991
+ end
992
+
993
+ return hash
994
+ end
995
+
996
+
997
+ #
998
+ # parser rule link_target
999
+ #
1000
+ # (in OCCIANTLR.g)
1001
+ # 80:2: link_target returns [value] : ( WS )? '<' uri '>' ;
1002
+ #
1003
+ def link_target
1004
+ # -> uncomment the next line to manually enable rule tracing
1005
+ # trace_in( __method__, 13 )
1006
+ value = nil
1007
+ uri22 = nil
1008
+
1009
+ begin
1010
+ # at line 80:32: ( WS )? '<' uri '>'
1011
+ # at line 80:32: ( WS )?
1012
+ alt_20 = 2
1013
+ look_20_0 = @input.peek( 1 )
1014
+
1015
+ if ( look_20_0 == WS )
1016
+ alt_20 = 1
1017
+ end
1018
+ case alt_20
1019
+ when 1
1020
+ # at line 80:32: WS
1021
+ match( WS, TOKENS_FOLLOWING_WS_IN_link_target_586 )
1022
+
1023
+ end
1024
+ match( T__22, TOKENS_FOLLOWING_T__22_IN_link_target_589 )
1025
+ @state.following.push( TOKENS_FOLLOWING_uri_IN_link_target_591 )
1026
+ uri22 = uri
1027
+ @state.following.pop
1028
+ match( T__23, TOKENS_FOLLOWING_T__23_IN_link_target_593 )
1029
+ # --> action
1030
+ value = ( uri22 && @input.to_s( uri22.start, uri22.stop ) )
1031
+ # <-- action
1032
+
1033
+ rescue ANTLR3::Error::RecognitionError => re
1034
+ report_error(re)
1035
+ recover(re)
1036
+
1037
+ ensure
1038
+ # -> uncomment the next line to manually enable rule tracing
1039
+ # trace_out( __method__, 13 )
1040
+
1041
+ end
1042
+
1043
+ return value
1044
+ end
1045
+
1046
+
1047
+ #
1048
+ # parser rule link_rel
1049
+ #
1050
+ # (in OCCIANTLR.g)
1051
+ # 81:2: link_rel returns [value] : ';' ( WS )? 'rel' '=' '\"' uri '\"' ;
1052
+ #
1053
+ def link_rel
1054
+ # -> uncomment the next line to manually enable rule tracing
1055
+ # trace_in( __method__, 14 )
1056
+ value = nil
1057
+ uri23 = nil
1058
+
1059
+ 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 )?
1063
+ alt_21 = 2
1064
+ look_21_0 = @input.peek( 1 )
1065
+
1066
+ if ( look_21_0 == WS )
1067
+ alt_21 = 1
1068
+ end
1069
+ case alt_21
1070
+ when 1
1071
+ # at line 81:34: WS
1072
+ match( WS, TOKENS_FOLLOWING_WS_IN_link_rel_610 )
1073
+
1074
+ 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 )
1078
+ @state.following.push( TOKENS_FOLLOWING_uri_IN_link_rel_619 )
1079
+ uri23 = uri
1080
+ @state.following.pop
1081
+ match( T__14, TOKENS_FOLLOWING_T__14_IN_link_rel_621 )
1082
+ # --> action
1083
+ value = ( uri23 && @input.to_s( uri23.start, uri23.stop ) )
1084
+ # <-- action
1085
+
1086
+ rescue ANTLR3::Error::RecognitionError => re
1087
+ report_error(re)
1088
+ recover(re)
1089
+
1090
+ ensure
1091
+ # -> uncomment the next line to manually enable rule tracing
1092
+ # trace_out( __method__, 14 )
1093
+
1094
+ end
1095
+
1096
+ return value
1097
+ end
1098
+
1099
+
1100
+ #
1101
+ # parser rule link_self
1102
+ #
1103
+ # (in OCCIANTLR.g)
1104
+ # 82:2: link_self returns [value] : ';' ( WS )? 'self' '=' '\"' uri '\"' ;
1105
+ #
1106
+ def link_self
1107
+ # -> uncomment the next line to manually enable rule tracing
1108
+ # trace_in( __method__, 15 )
1109
+ value = nil
1110
+ uri24 = nil
1111
+
1112
+ 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 )?
1116
+ alt_22 = 2
1117
+ look_22_0 = @input.peek( 1 )
1118
+
1119
+ if ( look_22_0 == WS )
1120
+ alt_22 = 1
1121
+ end
1122
+ case alt_22
1123
+ when 1
1124
+ # at line 82:35: WS
1125
+ match( WS, TOKENS_FOLLOWING_WS_IN_link_self_638 )
1126
+
1127
+ 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 )
1131
+ @state.following.push( TOKENS_FOLLOWING_uri_IN_link_self_647 )
1132
+ uri24 = uri
1133
+ @state.following.pop
1134
+ match( T__14, TOKENS_FOLLOWING_T__14_IN_link_self_649 )
1135
+ # --> action
1136
+ value = ( uri24 && @input.to_s( uri24.start, uri24.stop ) )
1137
+ # <-- action
1138
+
1139
+ rescue ANTLR3::Error::RecognitionError => re
1140
+ report_error(re)
1141
+ recover(re)
1142
+
1143
+ ensure
1144
+ # -> uncomment the next line to manually enable rule tracing
1145
+ # trace_out( __method__, 15 )
1146
+
1147
+ end
1148
+
1149
+ return value
1150
+ end
1151
+
1152
+
1153
+ #
1154
+ # parser rule link_category
1155
+ #
1156
+ # (in OCCIANTLR.g)
1157
+ # 83:2: link_category returns [value] : ';' ( WS )? 'category' '=' '\"' uri '\"' ;
1158
+ #
1159
+ def link_category
1160
+ # -> uncomment the next line to manually enable rule tracing
1161
+ # trace_in( __method__, 16 )
1162
+ value = nil
1163
+ uri25 = nil
1164
+
1165
+ 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 )?
1169
+ alt_23 = 2
1170
+ look_23_0 = @input.peek( 1 )
1171
+
1172
+ if ( look_23_0 == WS )
1173
+ alt_23 = 1
1174
+ end
1175
+ case alt_23
1176
+ when 1
1177
+ # at line 83:39: WS
1178
+ match( WS, TOKENS_FOLLOWING_WS_IN_link_category_666 )
1179
+
1180
+ 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 )
1184
+ @state.following.push( TOKENS_FOLLOWING_uri_IN_link_category_675 )
1185
+ uri25 = uri
1186
+ @state.following.pop
1187
+ match( T__14, TOKENS_FOLLOWING_T__14_IN_link_category_677 )
1188
+ # --> action
1189
+ value = ( uri25 && @input.to_s( uri25.start, uri25.stop ) )
1190
+ # <-- action
1191
+
1192
+ rescue ANTLR3::Error::RecognitionError => re
1193
+ report_error(re)
1194
+ recover(re)
1195
+
1196
+ ensure
1197
+ # -> uncomment the next line to manually enable rule tracing
1198
+ # trace_out( __method__, 16 )
1199
+
1200
+ end
1201
+
1202
+ return value
1203
+ end
1204
+
1205
+
1206
+ #
1207
+ # parser rule link_attributes
1208
+ #
1209
+ # (in OCCIANTLR.g)
1210
+ # 84:2: link_attributes returns [hash] : ( ';' ( WS )? attribute )* ;
1211
+ #
1212
+ def link_attributes
1213
+ # -> uncomment the next line to manually enable rule tracing
1214
+ # trace_in( __method__, 17 )
1215
+ hash = nil
1216
+ attribute26 = nil
1217
+ # - - - - @init action - - - -
1218
+ hash = Hashie::Mash.new
1219
+
1220
+ begin
1221
+ # at line 85:8: ( ';' ( WS )? attribute )*
1222
+ # at line 85:8: ( ';' ( WS )? attribute )*
1223
+ while true # decision 25
1224
+ alt_25 = 2
1225
+ look_25_0 = @input.peek( 1 )
1226
+
1227
+ if ( look_25_0 == T__11 )
1228
+ look_25_1 = @input.peek( 2 )
1229
+
1230
+ if ( look_25_1.between?( WS, LOALPHA ) )
1231
+ alt_25 = 1
1232
+
1233
+ end
1234
+
1235
+ end
1236
+ case alt_25
1237
+ 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 )?
1241
+ alt_24 = 2
1242
+ look_24_0 = @input.peek( 1 )
1243
+
1244
+ if ( look_24_0 == WS )
1245
+ alt_24 = 1
1246
+ end
1247
+ case alt_24
1248
+ when 1
1249
+ # at line 85:13: WS
1250
+ match( WS, TOKENS_FOLLOWING_WS_IN_link_attributes_705 )
1251
+
1252
+ end
1253
+ @state.following.push( TOKENS_FOLLOWING_attribute_IN_link_attributes_708 )
1254
+ attribute26 = attribute
1255
+ @state.following.pop
1256
+ # --> action
1257
+ hash.merge!(attribute26)
1258
+ # <-- action
1259
+
1260
+ else
1261
+ break # out of loop for decision 25
1262
+ end
1263
+ end # loop for decision 25
1264
+
1265
+ rescue ANTLR3::Error::RecognitionError => re
1266
+ report_error(re)
1267
+ recover(re)
1268
+
1269
+ ensure
1270
+ # -> uncomment the next line to manually enable rule tracing
1271
+ # trace_out( __method__, 17 )
1272
+
1273
+ end
1274
+
1275
+ return hash
1276
+ end
1277
+
1278
+
1279
+ #
1280
+ # parser rule x_occi_attribute
1281
+ #
1282
+ # (in OCCIANTLR.g)
1283
+ # 97:1: x_occi_attribute returns [hash] : 'X-OCCI-Attribute' ':' ( WS )? attribute ( ';' )? ;
1284
+ #
1285
+ def x_occi_attribute
1286
+ # -> uncomment the next line to manually enable rule tracing
1287
+ # trace_in( __method__, 18 )
1288
+ hash = nil
1289
+ attribute27 = nil
1290
+
1291
+ 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 )?
1296
+ alt_26 = 2
1297
+ look_26_0 = @input.peek( 1 )
1298
+
1299
+ if ( look_26_0 == WS )
1300
+ alt_26 = 1
1301
+ end
1302
+ case alt_26
1303
+ when 1
1304
+ # at line 98:27: WS
1305
+ match( WS, TOKENS_FOLLOWING_WS_IN_x_occi_attribute_733 )
1306
+
1307
+ end
1308
+ @state.following.push( TOKENS_FOLLOWING_attribute_IN_x_occi_attribute_736 )
1309
+ attribute27 = attribute
1310
+ @state.following.pop
1311
+ # at line 98:41: ( ';' )?
1312
+ alt_27 = 2
1313
+ look_27_0 = @input.peek( 1 )
1314
+
1315
+ if ( look_27_0 == T__11 )
1316
+ alt_27 = 1
1317
+ end
1318
+ case alt_27
1319
+ when 1
1320
+ # at line 98:41: ';'
1321
+ match( T__11, TOKENS_FOLLOWING_T__11_IN_x_occi_attribute_738 )
1322
+
1323
+ end
1324
+ # --> action
1325
+ hash = attribute27
1326
+ # <-- action
1327
+
1328
+ rescue ANTLR3::Error::RecognitionError => re
1329
+ report_error(re)
1330
+ recover(re)
1331
+
1332
+ ensure
1333
+ # -> uncomment the next line to manually enable rule tracing
1334
+ # trace_out( __method__, 18 )
1335
+
1336
+ end
1337
+
1338
+ return hash
1339
+ end
1340
+
1341
+
1342
+ #
1343
+ # parser rule x_occi_location
1344
+ #
1345
+ # (in OCCIANTLR.g)
1346
+ # 106:1: x_occi_location returns [location] : 'X-OCCI-Location' ':' ( WS )? uri ( ';' )? ;
1347
+ #
1348
+ def x_occi_location
1349
+ # -> uncomment the next line to manually enable rule tracing
1350
+ # trace_in( __method__, 19 )
1351
+ location = nil
1352
+ uri28 = nil
1353
+
1354
+ 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 )?
1359
+ alt_28 = 2
1360
+ look_28_0 = @input.peek( 1 )
1361
+
1362
+ if ( look_28_0 == WS )
1363
+ alt_28 = 1
1364
+ end
1365
+ case alt_28
1366
+ when 1
1367
+ # at line 107:26: WS
1368
+ match( WS, TOKENS_FOLLOWING_WS_IN_x_occi_location_762 )
1369
+
1370
+ end
1371
+ @state.following.push( TOKENS_FOLLOWING_uri_IN_x_occi_location_765 )
1372
+ uri28 = uri
1373
+ @state.following.pop
1374
+ # at line 107:34: ( ';' )?
1375
+ alt_29 = 2
1376
+ look_29_0 = @input.peek( 1 )
1377
+
1378
+ if ( look_29_0 == T__11 )
1379
+ alt_29 = 1
1380
+ end
1381
+ case alt_29
1382
+ when 1
1383
+ # at line 107:34: ';'
1384
+ match( T__11, TOKENS_FOLLOWING_T__11_IN_x_occi_location_767 )
1385
+
1386
+ end
1387
+ # --> action
1388
+ location = URI.parse(( uri28 && @input.to_s( uri28.start, uri28.stop ) ))
1389
+ # <-- action
1390
+
1391
+ rescue ANTLR3::Error::RecognitionError => re
1392
+ report_error(re)
1393
+ recover(re)
1394
+
1395
+ ensure
1396
+ # -> uncomment the next line to manually enable rule tracing
1397
+ # trace_out( __method__, 19 )
1398
+
1399
+ end
1400
+
1401
+ return location
1402
+ end
1403
+
1404
+ UriReturnValue = define_return_scope
1405
+
1406
+ #
1407
+ # parser rule uri
1408
+ #
1409
+ # (in OCCIANTLR.g)
1410
+ # 109:1: uri : ( LOALPHA | UPALPHA | DIGIT | '@' | ':' | '%' | '_' | '\\\\' | '+' | '.' | '~' | '#' | '?' | '&' | '/' | '=' | '-' | 'action' | 'kind' | 'mixin' | 'location' | 'attributes' | 'rel' | 'title' | 'actions' | 'scheme' | 'term' | 'category' | 'self' | 'Link' )+ ;
1411
+ #
1412
+ def uri
1413
+ # -> uncomment the next line to manually enable rule tracing
1414
+ # trace_in( __method__, 20 )
1415
+ return_value = UriReturnValue.new
1416
+
1417
+ # $rule.start = the first token seen before matching
1418
+ return_value.start = @input.look
1419
+
1420
+ 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' )+
1423
+ match_count_30 = 0
1424
+ 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
+
1431
+ end
1432
+ case alt_30
1433
+ 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
1442
+
1443
+
1444
+
1445
+ else
1446
+ match_count_30 > 0 and break
1447
+ eee = EarlyExit(30)
1448
+
1449
+
1450
+ raise eee
1451
+ end
1452
+ match_count_30 += 1
1453
+ end
1454
+
1455
+ # - - - - - - - rule clean up - - - - - - - -
1456
+ return_value.stop = @input.look( -1 )
1457
+
1458
+ rescue ANTLR3::Error::RecognitionError => re
1459
+ report_error(re)
1460
+ recover(re)
1461
+
1462
+ ensure
1463
+ # -> uncomment the next line to manually enable rule tracing
1464
+ # trace_out( __method__, 20 )
1465
+
1466
+ end
1467
+
1468
+ return return_value
1469
+ end
1470
+
1471
+ TermReturnValue = define_return_scope
1472
+
1473
+ #
1474
+ # parser rule term
1475
+ #
1476
+ # (in OCCIANTLR.g)
1477
+ # 110:1: term : LOALPHA ( LOALPHA | DIGIT | '-' | '_' )* ;
1478
+ #
1479
+ def term
1480
+ # -> uncomment the next line to manually enable rule tracing
1481
+ # trace_in( __method__, 21 )
1482
+ return_value = TermReturnValue.new
1483
+
1484
+ # $rule.start = the first token seen before matching
1485
+ return_value.start = @input.look
1486
+
1487
+ 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
1492
+ alt_31 = 2
1493
+ look_31_0 = @input.peek( 1 )
1494
+
1495
+ if ( look_31_0 == LOALPHA || look_31_0 == DIGIT || look_31_0 == T__30 || look_31_0 == T__39 )
1496
+ alt_31 = 1
1497
+
1498
+ end
1499
+ case alt_31
1500
+ 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
1509
+
1510
+
1511
+
1512
+ else
1513
+ break # out of loop for decision 31
1514
+ end
1515
+ end # loop for decision 31
1516
+ # - - - - - - - rule clean up - - - - - - - -
1517
+ return_value.stop = @input.look( -1 )
1518
+
1519
+ rescue ANTLR3::Error::RecognitionError => re
1520
+ report_error(re)
1521
+ recover(re)
1522
+
1523
+ ensure
1524
+ # -> uncomment the next line to manually enable rule tracing
1525
+ # trace_out( __method__, 21 )
1526
+
1527
+ end
1528
+
1529
+ return return_value
1530
+ end
1531
+
1532
+ SchemeReturnValue = define_return_scope
1533
+
1534
+ #
1535
+ # parser rule scheme
1536
+ #
1537
+ # (in OCCIANTLR.g)
1538
+ # 111:1: scheme : uri ;
1539
+ #
1540
+ def scheme
1541
+ # -> uncomment the next line to manually enable rule tracing
1542
+ # trace_in( __method__, 22 )
1543
+ return_value = SchemeReturnValue.new
1544
+
1545
+ # $rule.start = the first token seen before matching
1546
+ return_value.start = @input.look
1547
+
1548
+ begin
1549
+ # at line 111:20: uri
1550
+ @state.following.push( TOKENS_FOLLOWING_uri_IN_scheme_946 )
1551
+ uri
1552
+ @state.following.pop
1553
+ # - - - - - - - rule clean up - - - - - - - -
1554
+ return_value.stop = @input.look( -1 )
1555
+
1556
+ rescue ANTLR3::Error::RecognitionError => re
1557
+ report_error(re)
1558
+ recover(re)
1559
+
1560
+ ensure
1561
+ # -> uncomment the next line to manually enable rule tracing
1562
+ # trace_out( __method__, 22 )
1563
+
1564
+ end
1565
+
1566
+ return return_value
1567
+ end
1568
+
1569
+ ClassTypeReturnValue = define_return_scope
1570
+
1571
+ #
1572
+ # parser rule class_type
1573
+ #
1574
+ # (in OCCIANTLR.g)
1575
+ # 112:1: class_type : ( 'kind' | 'mixin' | 'action' ) ;
1576
+ #
1577
+ def class_type
1578
+ # -> uncomment the next line to manually enable rule tracing
1579
+ # trace_in( __method__, 23 )
1580
+ return_value = ClassTypeReturnValue.new
1581
+
1582
+ # $rule.start = the first token seen before matching
1583
+ return_value.start = @input.look
1584
+
1585
+ begin
1586
+ # at line 112:15: ( 'kind' | 'mixin' | 'action' )
1587
+ if @input.peek( 1 ).between?( T__40, T__42 )
1588
+ @input.consume
1589
+ @state.error_recovery = false
1590
+ else
1591
+ mse = MismatchedSet( nil )
1592
+ raise mse
1593
+ end
1594
+
1595
+
1596
+ # - - - - - - - rule clean up - - - - - - - -
1597
+ return_value.stop = @input.look( -1 )
1598
+
1599
+ rescue ANTLR3::Error::RecognitionError => re
1600
+ report_error(re)
1601
+ recover(re)
1602
+
1603
+ ensure
1604
+ # -> uncomment the next line to manually enable rule tracing
1605
+ # trace_out( __method__, 23 )
1606
+
1607
+ end
1608
+
1609
+ return return_value
1610
+ end
1611
+
1612
+ TitleReturnValue = define_return_scope
1613
+
1614
+ #
1615
+ # parser rule title
1616
+ #
1617
+ # (in OCCIANTLR.g)
1618
+ # 113:1: title : ( ESC | ~ ( '\\\\' | '\"' | '\\'' ) | '\\'' )* ;
1619
+ #
1620
+ def title
1621
+ # -> uncomment the next line to manually enable rule tracing
1622
+ # trace_in( __method__, 24 )
1623
+ return_value = TitleReturnValue.new
1624
+
1625
+ # $rule.start = the first token seen before matching
1626
+ return_value.start = @input.look
1627
+
1628
+ 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 )
1634
+
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
1637
+
1638
+ end
1639
+ case alt_32
1640
+ when 1
1641
+ # 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 )
1643
+ @input.consume
1644
+ @state.error_recovery = false
1645
+ else
1646
+ mse = MismatchedSet( nil )
1647
+ raise mse
1648
+ end
1649
+
1650
+
1651
+
1652
+ else
1653
+ break # out of loop for decision 32
1654
+ end
1655
+ end # loop for decision 32
1656
+ # - - - - - - - rule clean up - - - - - - - -
1657
+ return_value.stop = @input.look( -1 )
1658
+
1659
+ rescue ANTLR3::Error::RecognitionError => re
1660
+ report_error(re)
1661
+ recover(re)
1662
+
1663
+ ensure
1664
+ # -> uncomment the next line to manually enable rule tracing
1665
+ # trace_out( __method__, 24 )
1666
+
1667
+ end
1668
+
1669
+ return return_value
1670
+ end
1671
+
1672
+
1673
+ #
1674
+ # parser rule attribute
1675
+ #
1676
+ # (in OCCIANTLR.g)
1677
+ # 114:1: attribute returns [hash] : comp_first= attribute_component ( '.' comp_next= attribute_component )* '=' attribute_value ;
1678
+ #
1679
+ def attribute
1680
+ # -> uncomment the next line to manually enable rule tracing
1681
+ # trace_in( __method__, 25 )
1682
+ hash = nil
1683
+ comp_first = nil
1684
+ comp_next = nil
1685
+ attribute_value29 = nil
1686
+ # - - - - @init action - - - -
1687
+ hash = Hashie::Mash.new
1688
+
1689
+ 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 )
1692
+ comp_first = attribute_component
1693
+ @state.following.pop
1694
+ # --> action
1695
+ cur_hash = hash; comp = ( comp_first && @input.to_s( comp_first.start, comp_first.stop ) )
1696
+ # <-- action
1697
+ # at line 116:6: ( '.' comp_next= attribute_component )*
1698
+ while true # decision 33
1699
+ alt_33 = 2
1700
+ look_33_0 = @input.peek( 1 )
1701
+
1702
+ if ( look_33_0 == T__33 )
1703
+ alt_33 = 1
1704
+
1705
+ end
1706
+ case alt_33
1707
+ when 1
1708
+ # 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 )
1711
+ comp_next = attribute_component
1712
+ @state.following.pop
1713
+ # --> action
1714
+ cur_hash[comp.to_sym] = Hashie::Mash.new; cur_hash = cur_hash[comp.to_sym]; comp = ( comp_next && @input.to_s( comp_next.start, comp_next.stop ) )
1715
+ # <-- action
1716
+
1717
+ else
1718
+ break # out of loop for decision 33
1719
+ 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 )
1723
+ attribute_value29 = attribute_value
1724
+ @state.following.pop
1725
+ # --> action
1726
+ cur_hash[comp.to_sym] = attribute_value29
1727
+ # <-- action
1728
+
1729
+ rescue ANTLR3::Error::RecognitionError => re
1730
+ report_error(re)
1731
+ recover(re)
1732
+
1733
+ ensure
1734
+ # -> uncomment the next line to manually enable rule tracing
1735
+ # trace_out( __method__, 25 )
1736
+
1737
+ end
1738
+
1739
+ return hash
1740
+ end
1741
+
1742
+
1743
+ #
1744
+ # parser rule attribute_name
1745
+ #
1746
+ # (in OCCIANTLR.g)
1747
+ # 118:1: attribute_name returns [hash] : comp_first= attribute_component ( '.' comp_next= attribute_component )* ;
1748
+ #
1749
+ def attribute_name
1750
+ # -> uncomment the next line to manually enable rule tracing
1751
+ # trace_in( __method__, 26 )
1752
+ hash = nil
1753
+ comp_first = nil
1754
+ comp_next = nil
1755
+ # - - - - @init action - - - -
1756
+ hash = Hashie::Mash.new
1757
+
1758
+ begin
1759
+ # at line 119:27: comp_first= attribute_component ( '.' comp_next= attribute_component )*
1760
+ @state.following.push( TOKENS_FOLLOWING_attribute_component_IN_attribute_name_1095 )
1761
+ comp_first = attribute_component
1762
+ @state.following.pop
1763
+ # --> action
1764
+ cur_hash = hash; comp = ( comp_first && @input.to_s( comp_first.start, comp_first.stop ) )
1765
+ # <-- action
1766
+ # at line 120:6: ( '.' comp_next= attribute_component )*
1767
+ while true # decision 34
1768
+ alt_34 = 2
1769
+ look_34_0 = @input.peek( 1 )
1770
+
1771
+ if ( look_34_0 == T__33 )
1772
+ alt_34 = 1
1773
+
1774
+ end
1775
+ case alt_34
1776
+ when 1
1777
+ # 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 )
1780
+ comp_next = attribute_component
1781
+ @state.following.pop
1782
+ # --> action
1783
+ cur_hash[comp.to_sym] = Hashie::Mash.new; cur_hash = cur_hash[comp.to_sym]; comp = ( comp_next && @input.to_s( comp_next.start, comp_next.stop ) )
1784
+ # <-- action
1785
+
1786
+ else
1787
+ break # out of loop for decision 34
1788
+ end
1789
+ end # loop for decision 34
1790
+ # --> action
1791
+ cur_hash[comp.to_sym] = ATTRIBUTE
1792
+ # <-- action
1793
+
1794
+ rescue ANTLR3::Error::RecognitionError => re
1795
+ report_error(re)
1796
+ recover(re)
1797
+
1798
+ ensure
1799
+ # -> uncomment the next line to manually enable rule tracing
1800
+ # trace_out( __method__, 26 )
1801
+
1802
+ end
1803
+
1804
+ return hash
1805
+ end
1806
+
1807
+ AttributeComponentReturnValue = define_return_scope
1808
+
1809
+ #
1810
+ # parser rule attribute_component
1811
+ #
1812
+ # (in OCCIANTLR.g)
1813
+ # 122:1: attribute_component : LOALPHA ( LOALPHA | DIGIT | '-' | '_' )* ;
1814
+ #
1815
+ def attribute_component
1816
+ # -> uncomment the next line to manually enable rule tracing
1817
+ # trace_in( __method__, 27 )
1818
+ return_value = AttributeComponentReturnValue.new
1819
+
1820
+ # $rule.start = the first token seen before matching
1821
+ return_value.start = @input.look
1822
+
1823
+ 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 )
1830
+
1831
+ if ( look_35_0 == LOALPHA || look_35_0 == DIGIT || look_35_0 == T__30 || look_35_0 == T__39 )
1832
+ alt_35 = 1
1833
+
1834
+ end
1835
+ case alt_35
1836
+ 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
1845
+
1846
+
1847
+
1848
+ else
1849
+ break # out of loop for decision 35
1850
+ end
1851
+ end # loop for decision 35
1852
+ # - - - - - - - rule clean up - - - - - - - -
1853
+ return_value.stop = @input.look( -1 )
1854
+
1855
+ rescue ANTLR3::Error::RecognitionError => re
1856
+ report_error(re)
1857
+ recover(re)
1858
+
1859
+ ensure
1860
+ # -> uncomment the next line to manually enable rule tracing
1861
+ # trace_out( __method__, 27 )
1862
+
1863
+ end
1864
+
1865
+ return return_value
1866
+ end
1867
+
1868
+
1869
+ #
1870
+ # parser rule attribute_value
1871
+ #
1872
+ # (in OCCIANTLR.g)
1873
+ # 123:1: attribute_value returns [value] : ( string | number ) ;
1874
+ #
1875
+ def attribute_value
1876
+ # -> uncomment the next line to manually enable rule tracing
1877
+ # trace_in( __method__, 28 )
1878
+ value = nil
1879
+ string30 = nil
1880
+ number31 = nil
1881
+
1882
+ begin
1883
+ # at line 123:35: ( string | number )
1884
+ # at line 123:35: ( string | number )
1885
+ alt_36 = 2
1886
+ look_36_0 = @input.peek( 1 )
1887
+
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
1892
+ else
1893
+ raise NoViableAlternative( "", 36, 0 )
1894
+ end
1895
+ case alt_36
1896
+ when 1
1897
+ # at line 123:37: string
1898
+ @state.following.push( TOKENS_FOLLOWING_string_IN_attribute_value_1160 )
1899
+ string30 = string
1900
+ @state.following.pop
1901
+ # --> action
1902
+ value = ( string30 && @input.to_s( string30.start, string30.stop ) )
1903
+ # <-- action
1904
+
1905
+ when 2
1906
+ # at line 123:71: number
1907
+ @state.following.push( TOKENS_FOLLOWING_number_IN_attribute_value_1166 )
1908
+ number31 = number
1909
+ @state.following.pop
1910
+ # --> action
1911
+ value = ( number31 && @input.to_s( number31.start, number31.stop ) ).to_i
1912
+ # <-- action
1913
+
1914
+ end
1915
+
1916
+ rescue ANTLR3::Error::RecognitionError => re
1917
+ report_error(re)
1918
+ recover(re)
1919
+
1920
+ ensure
1921
+ # -> uncomment the next line to manually enable rule tracing
1922
+ # trace_out( __method__, 28 )
1923
+
1924
+ end
1925
+
1926
+ return value
1927
+ end
1928
+
1929
+ StringReturnValue = define_return_scope
1930
+
1931
+ #
1932
+ # parser rule string
1933
+ #
1934
+ # (in OCCIANTLR.g)
1935
+ # 124:1: string : ( '\"' ( ESC | ~ ( '\\\\' | '\"' | '\\'' ) | '\\'' )* '\"' ) ;
1936
+ #
1937
+ def string
1938
+ # -> uncomment the next line to manually enable rule tracing
1939
+ # trace_in( __method__, 29 )
1940
+ return_value = StringReturnValue.new
1941
+
1942
+ # $rule.start = the first token seen before matching
1943
+ return_value.start = @input.look
1944
+
1945
+ 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
+
1978
+ # - - - - - - - rule clean up - - - - - - - -
1979
+ return_value.stop = @input.look( -1 )
1980
+
1981
+ rescue ANTLR3::Error::RecognitionError => re
1982
+ report_error(re)
1983
+ recover(re)
1984
+
1985
+ ensure
1986
+ # -> uncomment the next line to manually enable rule tracing
1987
+ # trace_out( __method__, 29 )
1988
+
1989
+ end
1990
+
1991
+ return return_value
1992
+ end
1993
+
1994
+ NumberReturnValue = define_return_scope
1995
+
1996
+ #
1997
+ # parser rule number
1998
+ #
1999
+ # (in OCCIANTLR.g)
2000
+ # 125:1: number : ( ( DIGIT )* ( '.' ( DIGIT )+ )? ) ;
2001
+ #
2002
+ def number
2003
+ # -> uncomment the next line to manually enable rule tracing
2004
+ # trace_in( __method__, 30 )
2005
+ return_value = NumberReturnValue.new
2006
+
2007
+ # $rule.start = the first token seen before matching
2008
+ return_value.start = @input.look
2009
+
2010
+ 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 )
2018
+
2019
+ if ( look_38_0 == DIGIT )
2020
+ alt_38 = 1
2021
+
2022
+ end
2023
+ case alt_38
2024
+ when 1
2025
+ # at line 125:14: DIGIT
2026
+ match( DIGIT, TOKENS_FOLLOWING_DIGIT_IN_number_1223 )
2027
+
2028
+ else
2029
+ break # out of loop for decision 38
2030
+ end
2031
+ end # loop for decision 38
2032
+ # at line 125:21: ( '.' ( DIGIT )+ )?
2033
+ alt_40 = 2
2034
+ look_40_0 = @input.peek( 1 )
2035
+
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
+
2049
+ if ( look_39_0 == DIGIT )
2050
+ alt_39 = 1
2051
+
2052
+ end
2053
+ case alt_39
2054
+ when 1
2055
+ # at line 125:27: DIGIT
2056
+ match( DIGIT, TOKENS_FOLLOWING_DIGIT_IN_number_1230 )
2057
+
2058
+ else
2059
+ match_count_39 > 0 and break
2060
+ eee = EarlyExit(39)
2061
+
2062
+
2063
+ raise eee
2064
+ end
2065
+ match_count_39 += 1
2066
+ end
2067
+
2068
+
2069
+ end
2070
+
2071
+ # - - - - - - - rule clean up - - - - - - - -
2072
+ return_value.stop = @input.look( -1 )
2073
+
2074
+ rescue ANTLR3::Error::RecognitionError => re
2075
+ report_error(re)
2076
+ recover(re)
2077
+
2078
+ ensure
2079
+ # -> uncomment the next line to manually enable rule tracing
2080
+ # trace_out( __method__, 30 )
2081
+
2082
+ end
2083
+
2084
+ return return_value
2085
+ end
2086
+
2087
+
2088
+
2089
+ TOKENS_FOLLOWING_T__9_IN_category_39 = Set[ 10 ]
2090
+ TOKENS_FOLLOWING_T__10_IN_category_41 = Set[ 4, 5 ]
2091
+ 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 ]
2102
+ 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 ]
2158
+ 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 ]
2227
+
2228
+ end # class Parser < ANTLR3::Parser
2229
+
2230
+ at_exit { Parser.main( ARGV ) } if __FILE__ == $0
2231
+ end
2232
+