occi 2.0.6 → 2.1.0

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.
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
+