occi 1.2.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. data/.gitignore +9 -0
  2. data/.project +32 -0
  3. data/.rspec +1 -0
  4. data/.travis.yml +8 -0
  5. data/.yardopts +1 -0
  6. data/AUTHORS +8 -0
  7. data/Gemfile +35 -14
  8. data/Gemfile.lock +89 -32
  9. data/LICENSE +13 -4
  10. data/README.md +70 -21
  11. data/Rakefile +25 -21
  12. data/lib/OpenNebula/Acl.rb +256 -0
  13. data/lib/OpenNebula/AclPool.rb +53 -0
  14. data/lib/OpenNebula/Group.rb +147 -0
  15. data/lib/OpenNebula/GroupPool.rb +54 -0
  16. data/lib/OpenNebula/Host.rb +143 -0
  17. data/lib/OpenNebula/HostPool.rb +55 -0
  18. data/lib/OpenNebula/Image.rb +256 -0
  19. data/lib/OpenNebula/ImagePool.rb +74 -0
  20. data/lib/OpenNebula/OpenNebula.rb +137 -0
  21. data/lib/OpenNebula/Pool.rb +285 -0
  22. data/lib/OpenNebula/Template.rb +173 -0
  23. data/lib/OpenNebula/TemplatePool.rb +74 -0
  24. data/lib/OpenNebula/User.rb +157 -0
  25. data/lib/OpenNebula/UserPool.rb +53 -0
  26. data/lib/OpenNebula/VirtualMachine.rb +319 -0
  27. data/lib/OpenNebula/VirtualMachinePool.rb +120 -0
  28. data/lib/OpenNebula/VirtualNetwork.rb +229 -0
  29. data/lib/OpenNebula/VirtualNetworkPool.rb +74 -0
  30. data/lib/OpenNebula/XMLUtils.rb +337 -0
  31. data/lib/occi/antlr/.gitignore +18 -0
  32. data/lib/occi/antlr/OCCI.g +164 -0
  33. data/lib/occi/antlr/OCCI.tokens +75 -0
  34. data/lib/occi/antlr/OCCILexer.rb +1532 -0
  35. data/lib/occi/antlr/OCCIParser.rb +2472 -0
  36. data/lib/occi/antlr/README.md +2 -0
  37. data/lib/occi/backend/dummy.rb +232 -0
  38. data/lib/occi/backend/ec2/Compute.rb +310 -0
  39. data/lib/occi/backend/ec2/compute.rb +310 -0
  40. data/lib/occi/backend/ec2/ec2.rb +215 -0
  41. data/lib/occi/backend/manager.rb +131 -0
  42. data/lib/occi/backend/opennebula/compute.rb +360 -0
  43. data/lib/occi/backend/opennebula/network.rb +143 -0
  44. data/lib/occi/backend/opennebula/opennebula.rb +188 -0
  45. data/lib/occi/backend/opennebula/storage.rb +175 -0
  46. data/lib/occi/configuration.rb +118 -0
  47. data/lib/occi/core/action.rb +29 -0
  48. data/lib/occi/core/attribute_properties.rb +54 -0
  49. data/lib/occi/core/attributes.rb +40 -0
  50. data/lib/occi/core/category.rb +62 -0
  51. data/lib/occi/core/collection.rb +27 -0
  52. data/lib/occi/core/entity.rb +135 -0
  53. data/lib/occi/core/kind.rb +55 -0
  54. data/lib/occi/core/link.rb +88 -0
  55. data/lib/occi/core/mixin.rb +43 -0
  56. data/lib/occi/core/resource.rb +73 -0
  57. data/lib/occi/exceptions.rb +59 -0
  58. data/lib/occi/extensions/monitoring/cpu.rb +51 -0
  59. data/lib/occi/extensions/monitoring/memory.rb +49 -0
  60. data/lib/occi/extensions/monitoring/metric.rb +54 -0
  61. data/lib/occi/extensions/monitoring/netrx.rb +49 -0
  62. data/lib/occi/extensions/monitoring/nettx.rb +55 -0
  63. data/lib/occi/extensions/one/VNC.rb +58 -0
  64. data/lib/occi/extensions/one/vnc.rb +58 -0
  65. data/lib/occi/log.rb +47 -0
  66. data/lib/occi/parse.rb +164 -0
  67. data/lib/occi/registry.rb +87 -0
  68. data/lib/occi/server.rb +594 -0
  69. data/lib/occi/version.rb +3 -0
  70. data/occi.gemspec +18 -96
  71. data/spec/occi/antlr/parser_spec.rb +82 -0
  72. data/spec/spec_helper.rb +6 -0
  73. metadata +100 -208
  74. data/.autotest +0 -21
  75. data/.rvmrc +0 -1
  76. data/VERSION +0 -1
  77. data/lib/occi.rb +0 -1
  78. data/lib/occi/client.rb +0 -36
  79. data/lib/occi/compute.rb +0 -4
  80. data/lib/occi/network.rb +0 -4
  81. data/lib/occi/resource.rb +0 -59
  82. data/lib/occi/storage.rb +0 -7
  83. data/test/fixtures/cassettes/compute_all.yml +0 -28
  84. data/test/fixtures/cassettes/compute_create.yml +0 -45
  85. data/test/fixtures/cassettes/compute_destroy.yml +0 -22
  86. data/test/fixtures/cassettes/compute_find.yml +0 -28
  87. data/test/fixtures/cassettes/compute_update.yml +0 -35
  88. data/test/fixtures/cassettes/network_all.yml +0 -28
  89. data/test/fixtures/cassettes/network_create.yml +0 -37
  90. data/test/fixtures/cassettes/network_destroy.yml +0 -22
  91. data/test/fixtures/cassettes/network_find.yml +0 -28
  92. data/test/fixtures/cassettes/storage_all.yml +0 -28
  93. data/test/fixtures/cassettes/storage_create.yml +0 -50
  94. data/test/fixtures/cassettes/storage_destroy.yml +0 -22
  95. data/test/fixtures/cassettes/storage_find.yml +0 -28
  96. data/test/lib/occi/compute_test.rb +0 -91
  97. data/test/lib/occi/network_test.rb +0 -57
  98. data/test/lib/occi/storage_test.rb +0 -67
  99. data/test/test_helper.rb +0 -48
@@ -0,0 +1,2472 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # OCCI.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: OCCI.g
8
+ # Generated at: 2012-05-18 21:42:45
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
+ # OCCI.g
61
+
62
+
63
+ require 'uri'
64
+ require 'hashie'
65
+ ATTRIBUTE = {:mutable => true, :required => false, :type => {:string => {}}, :default => ''}
66
+
67
+ # - - - - - - end action @parser::header - - - - - - -
68
+
69
+
70
+ module OCCI
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, :T__22 => 22,
81
+ :ESC => 8, :T__21 => 21, :T__20 => 20, :EOF => -1, :T__9 => 9,
82
+ :T__19 => 19, :T__16 => 16, :T__15 => 15, :T__18 => 18,
83
+ :T__17 => 17, :T__12 => 12, :T__11 => 11, :T__14 => 14,
84
+ :T__13 => 13, :T__10 => 10, :DIGIT => 7, :LOALPHA => 5,
85
+ :T__42 => 42, :T__43 => 43, :T__40 => 40, :T__41 => 41,
86
+ :T__30 => 30, :T__31 => 31, :T__32 => 32, :T__33 => 33,
87
+ :WS => 4, :T__34 => 34, :T__35 => 35, :T__36 => 36, :T__37 => 37,
88
+ :UPALPHA => 6, :T__38 => 38, :T__39 => 39)
89
+
90
+ # register the proper human-readable name or literal value
91
+ # for each token type
92
+ #
93
+ # this is necessary because anonymous tokens, which are
94
+ # created from literal values in the grammar, do not
95
+ # have descriptive names
96
+ register_names("WS", "LOALPHA", "UPALPHA", "DIGIT", "ESC", "'Category'",
97
+ "':'", "';'", "'scheme'", "'='", "'\"'", "'class'",
98
+ "'title'", "'rel'", "'location'", "'attributes'", "'actions'",
99
+ "'Link'", "'<'", "'>'", "'self'", "'category'", "'X-OCCI-Attribute'",
100
+ "'X-OCCI-Location'", "'@'", "'%'", "'_'", "'\\\\'",
101
+ "'+'", "'.'", "'~'", "'#'", "'?'", "'&'", "'/'", "'-'",
102
+ "'action'", "'kind'", "'mixin'", "'\\''")
103
+
104
+ end
105
+
106
+
107
+ class Parser < ANTLR3::Parser
108
+ @grammar_home = OCCI
109
+
110
+ RULE_METHODS = [:category, :category_value, :category_term, :category_scheme,
111
+ :category_class, :category_title, :category_rel, :category_location,
112
+ :category_attributes, :category_actions, :link, :link_value,
113
+ :link_target, :link_rel, :link_self, :link_category,
114
+ :link_attributes, :x_occi_attribute, :x_occi_location,
115
+ :uri, :term, :scheme, :class_type, :title, :rel, :location,
116
+ :attribute, :attribute_name, :attribute_component,
117
+ :attribute_value, :string, :number, :action_location,
118
+ :target, :self_location, :category_name].freeze
119
+
120
+
121
+ include TokenData
122
+
123
+ begin
124
+ generated_using("OCCI.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
+
135
+ # - - - - - - - - - - - - Rules - - - - - - - - - - - - -
136
+
137
+ #
138
+ # parser rule category
139
+ #
140
+ # (in OCCI.g)
141
+ # 52:1: category returns [hash] : 'Category' ':' category_value ;
142
+ #
143
+ def category
144
+ # -> uncomment the next line to manually enable rule tracing
145
+ # trace_in( __method__, 1 )
146
+ hash = nil
147
+ category_value1 = nil
148
+
149
+ begin
150
+ # at line 53:4: 'Category' ':' category_value
151
+ match(T__9, TOKENS_FOLLOWING_T__9_IN_category_42)
152
+ match(T__10, TOKENS_FOLLOWING_T__10_IN_category_44)
153
+ @state.following.push(TOKENS_FOLLOWING_category_value_IN_category_46)
154
+ category_value1 = category_value
155
+ @state.following.pop
156
+ # --> action
157
+ hash = category_value1
158
+ # <-- action
159
+
160
+ rescue ANTLR3::Error::RecognitionError => re
161
+ report_error(re)
162
+ recover(re)
163
+
164
+ ensure
165
+ # -> uncomment the next line to manually enable rule tracing
166
+ # trace_out( __method__, 1 )
167
+
168
+ end
169
+
170
+ return hash
171
+ end
172
+
173
+
174
+ #
175
+ # parser rule category_value
176
+ #
177
+ # (in OCCI.g)
178
+ # 54:3: category_value returns [hash] : category_term category_scheme category_class ( category_title )? ( category_rel )? ( category_location )? ( category_attributes )? ( category_actions )? ( ';' )? ;
179
+ #
180
+ def category_value
181
+ # -> uncomment the next line to manually enable rule tracing
182
+ # trace_in( __method__, 2 )
183
+ hash = nil
184
+ category_class2 = nil
185
+ category_term3 = nil
186
+ category_scheme4 = nil
187
+ category_title5 = nil
188
+ category_rel6 = nil
189
+ category_location7 = nil
190
+ category_attributes8 = nil
191
+ category_actions9 = nil
192
+ # - - - - @init action - - - -
193
+ hash = Hashie::Mash.new({:kinds => [], :mixins => [], :actions => []})
194
+
195
+ begin
196
+ # at line 56:15: category_term category_scheme category_class ( category_title )? ( category_rel )? ( category_location )? ( category_attributes )? ( category_actions )? ( ';' )?
197
+ @state.following.push(TOKENS_FOLLOWING_category_term_IN_category_value_78)
198
+ category_term3 = category_term
199
+ @state.following.pop
200
+ @state.following.push(TOKENS_FOLLOWING_category_scheme_IN_category_value_80)
201
+ category_scheme4 = category_scheme
202
+ @state.following.pop
203
+ @state.following.push(TOKENS_FOLLOWING_category_class_IN_category_value_82)
204
+ category_class2 = category_class
205
+ @state.following.pop
206
+ # at line 56:60: ( category_title )?
207
+ alt_1 = 2
208
+ look_1_0 = @input.peek(1)
209
+
210
+ if (look_1_0 == T__11)
211
+ look_1_1 = @input.peek(2)
212
+
213
+ if (look_1_1 == WS)
214
+ look_1_3 = @input.peek(3)
215
+
216
+ if (look_1_3 == T__16)
217
+ alt_1 = 1
218
+ end
219
+ elsif (look_1_1 == T__16)
220
+ alt_1 = 1
221
+ end
222
+ end
223
+ case alt_1
224
+ when 1
225
+ # at line 56:60: category_title
226
+ @state.following.push(TOKENS_FOLLOWING_category_title_IN_category_value_84)
227
+ category_title5 = category_title
228
+ @state.following.pop
229
+
230
+ end
231
+ # at line 56:76: ( category_rel )?
232
+ alt_2 = 2
233
+ look_2_0 = @input.peek(1)
234
+
235
+ if (look_2_0 == T__11)
236
+ look_2_1 = @input.peek(2)
237
+
238
+ if (look_2_1 == WS)
239
+ look_2_3 = @input.peek(3)
240
+
241
+ if (look_2_3 == T__17)
242
+ alt_2 = 1
243
+ end
244
+ elsif (look_2_1 == T__17)
245
+ alt_2 = 1
246
+ end
247
+ end
248
+ case alt_2
249
+ when 1
250
+ # at line 56:76: category_rel
251
+ @state.following.push(TOKENS_FOLLOWING_category_rel_IN_category_value_87)
252
+ category_rel6 = category_rel
253
+ @state.following.pop
254
+
255
+ end
256
+ # at line 56:90: ( category_location )?
257
+ alt_3 = 2
258
+ look_3_0 = @input.peek(1)
259
+
260
+ if (look_3_0 == T__11)
261
+ look_3_1 = @input.peek(2)
262
+
263
+ if (look_3_1 == WS)
264
+ look_3_3 = @input.peek(3)
265
+
266
+ if (look_3_3 == T__18)
267
+ alt_3 = 1
268
+ end
269
+ elsif (look_3_1 == T__18)
270
+ alt_3 = 1
271
+ end
272
+ end
273
+ case alt_3
274
+ when 1
275
+ # at line 56:90: category_location
276
+ @state.following.push(TOKENS_FOLLOWING_category_location_IN_category_value_90)
277
+ category_location7 = category_location
278
+ @state.following.pop
279
+
280
+ end
281
+ # at line 56:109: ( category_attributes )?
282
+ alt_4 = 2
283
+ look_4_0 = @input.peek(1)
284
+
285
+ if (look_4_0 == T__11)
286
+ look_4_1 = @input.peek(2)
287
+
288
+ if (look_4_1 == WS)
289
+ look_4_3 = @input.peek(3)
290
+
291
+ if (look_4_3 == T__19)
292
+ alt_4 = 1
293
+ end
294
+ elsif (look_4_1 == T__19)
295
+ alt_4 = 1
296
+ end
297
+ end
298
+ case alt_4
299
+ when 1
300
+ # at line 56:109: category_attributes
301
+ @state.following.push(TOKENS_FOLLOWING_category_attributes_IN_category_value_93)
302
+ category_attributes8 = category_attributes
303
+ @state.following.pop
304
+
305
+ end
306
+ # at line 56:130: ( category_actions )?
307
+ alt_5 = 2
308
+ look_5_0 = @input.peek(1)
309
+
310
+ if (look_5_0 == T__11)
311
+ look_5_1 = @input.peek(2)
312
+
313
+ if (look_5_1 == WS || look_5_1 == T__20)
314
+ alt_5 = 1
315
+ end
316
+ end
317
+ case alt_5
318
+ when 1
319
+ # at line 56:130: category_actions
320
+ @state.following.push(TOKENS_FOLLOWING_category_actions_IN_category_value_96)
321
+ category_actions9 = category_actions
322
+ @state.following.pop
323
+
324
+ end
325
+ # at line 56:148: ( ';' )?
326
+ alt_6 = 2
327
+ look_6_0 = @input.peek(1)
328
+
329
+ if (look_6_0 == T__11)
330
+ alt_6 = 1
331
+ end
332
+ case alt_6
333
+ when 1
334
+ # at line 56:148: ';'
335
+ match(T__11, TOKENS_FOLLOWING_T__11_IN_category_value_99)
336
+
337
+ end
338
+ # --> action
339
+ type = category_class2
340
+ cat = Hashie::Mash.new
341
+ cat.term = category_term3
342
+ cat.scheme = category_scheme4
343
+ cat.title = category_title5
344
+ cat.related = category_rel6
345
+ cat.location = category_location7
346
+ cat.attributes = category_attributes8
347
+ cat.actions = category_actions9
348
+ hash[(type+'s').to_sym] << cat
349
+
350
+ # <-- action
351
+
352
+ rescue ANTLR3::Error::RecognitionError => re
353
+ report_error(re)
354
+ recover(re)
355
+
356
+ ensure
357
+ # -> uncomment the next line to manually enable rule tracing
358
+ # trace_out( __method__, 2 )
359
+
360
+ end
361
+
362
+ return hash
363
+ end
364
+
365
+
366
+ #
367
+ # parser rule category_term
368
+ #
369
+ # (in OCCI.g)
370
+ # 68:3: category_term returns [value] : ( WS )? term ;
371
+ #
372
+ def category_term
373
+ # -> uncomment the next line to manually enable rule tracing
374
+ # trace_in( __method__, 3 )
375
+ value = nil
376
+ term10 = nil
377
+
378
+ begin
379
+ # at line 68:37: ( WS )? term
380
+ # at line 68:37: ( WS )?
381
+ alt_7 = 2
382
+ look_7_0 = @input.peek(1)
383
+
384
+ if (look_7_0 == WS)
385
+ alt_7 = 1
386
+ end
387
+ case alt_7
388
+ when 1
389
+ # at line 68:37: WS
390
+ match(WS, TOKENS_FOLLOWING_WS_IN_category_term_131)
391
+
392
+ end
393
+ @state.following.push(TOKENS_FOLLOWING_term_IN_category_term_134)
394
+ term10 = term
395
+ @state.following.pop
396
+ # --> action
397
+ value = (term10 && @input.to_s(term10.start, term10.stop))
398
+ # <-- action
399
+
400
+ rescue ANTLR3::Error::RecognitionError => re
401
+ report_error(re)
402
+ recover(re)
403
+
404
+ ensure
405
+ # -> uncomment the next line to manually enable rule tracing
406
+ # trace_out( __method__, 3 )
407
+
408
+ end
409
+
410
+ return value
411
+ end
412
+
413
+
414
+ #
415
+ # parser rule category_scheme
416
+ #
417
+ # (in OCCI.g)
418
+ # 70:3: category_scheme returns [value] : ';' ( WS )? 'scheme' '=' '\"' scheme '\"' ;
419
+ #
420
+ def category_scheme
421
+ # -> uncomment the next line to manually enable rule tracing
422
+ # trace_in( __method__, 4 )
423
+ value = nil
424
+ scheme11 = nil
425
+
426
+ begin
427
+ # at line 70:37: ';' ( WS )? 'scheme' '=' '\"' scheme '\"'
428
+ match(T__11, TOKENS_FOLLOWING_T__11_IN_category_scheme_160)
429
+ # at line 70:41: ( WS )?
430
+ alt_8 = 2
431
+ look_8_0 = @input.peek(1)
432
+
433
+ if (look_8_0 == WS)
434
+ alt_8 = 1
435
+ end
436
+ case alt_8
437
+ when 1
438
+ # at line 70:41: WS
439
+ match(WS, TOKENS_FOLLOWING_WS_IN_category_scheme_162)
440
+
441
+ end
442
+ match(T__12, TOKENS_FOLLOWING_T__12_IN_category_scheme_165)
443
+ match(T__13, TOKENS_FOLLOWING_T__13_IN_category_scheme_167)
444
+ match(T__14, TOKENS_FOLLOWING_T__14_IN_category_scheme_169)
445
+ @state.following.push(TOKENS_FOLLOWING_scheme_IN_category_scheme_171)
446
+ scheme11 = scheme
447
+ @state.following.pop
448
+ match(T__14, TOKENS_FOLLOWING_T__14_IN_category_scheme_173)
449
+ # --> action
450
+ value = (scheme11 && @input.to_s(scheme11.start, scheme11.stop))
451
+ # <-- action
452
+
453
+ rescue ANTLR3::Error::RecognitionError => re
454
+ report_error(re)
455
+ recover(re)
456
+
457
+ ensure
458
+ # -> uncomment the next line to manually enable rule tracing
459
+ # trace_out( __method__, 4 )
460
+
461
+ end
462
+
463
+ return value
464
+ end
465
+
466
+
467
+ #
468
+ # parser rule category_class
469
+ #
470
+ # (in OCCI.g)
471
+ # 72:3: category_class returns [value] : ';' ( WS )? 'class' '=' '\"' class_type '\"' ;
472
+ #
473
+ def category_class
474
+ # -> uncomment the next line to manually enable rule tracing
475
+ # trace_in( __method__, 5 )
476
+ value = nil
477
+ class_type12 = nil
478
+
479
+ begin
480
+ # at line 72:37: ';' ( WS )? 'class' '=' '\"' class_type '\"'
481
+ match(T__11, TOKENS_FOLLOWING_T__11_IN_category_class_202)
482
+ # at line 72:41: ( WS )?
483
+ alt_9 = 2
484
+ look_9_0 = @input.peek(1)
485
+
486
+ if (look_9_0 == WS)
487
+ alt_9 = 1
488
+ end
489
+ case alt_9
490
+ when 1
491
+ # at line 72:41: WS
492
+ match(WS, TOKENS_FOLLOWING_WS_IN_category_class_204)
493
+
494
+ end
495
+ match(T__15, TOKENS_FOLLOWING_T__15_IN_category_class_207)
496
+ match(T__13, TOKENS_FOLLOWING_T__13_IN_category_class_209)
497
+ match(T__14, TOKENS_FOLLOWING_T__14_IN_category_class_211)
498
+ @state.following.push(TOKENS_FOLLOWING_class_type_IN_category_class_213)
499
+ class_type12 = class_type
500
+ @state.following.pop
501
+ match(T__14, TOKENS_FOLLOWING_T__14_IN_category_class_215)
502
+ # --> action
503
+ value = (class_type12 && @input.to_s(class_type12.start, class_type12.stop))
504
+ # <-- action
505
+
506
+ rescue ANTLR3::Error::RecognitionError => re
507
+ report_error(re)
508
+ recover(re)
509
+
510
+ ensure
511
+ # -> uncomment the next line to manually enable rule tracing
512
+ # trace_out( __method__, 5 )
513
+
514
+ end
515
+
516
+ return value
517
+ end
518
+
519
+
520
+ #
521
+ # parser rule category_title
522
+ #
523
+ # (in OCCI.g)
524
+ # 74:3: category_title returns [value] : ';' ( WS )? 'title' '=' '\"' title '\"' ;
525
+ #
526
+ def category_title
527
+ # -> uncomment the next line to manually enable rule tracing
528
+ # trace_in( __method__, 6 )
529
+ value = nil
530
+ title13 = nil
531
+
532
+ begin
533
+ # at line 74:37: ';' ( WS )? 'title' '=' '\"' title '\"'
534
+ match(T__11, TOKENS_FOLLOWING_T__11_IN_category_title_240)
535
+ # at line 74:41: ( WS )?
536
+ alt_10 = 2
537
+ look_10_0 = @input.peek(1)
538
+
539
+ if (look_10_0 == WS)
540
+ alt_10 = 1
541
+ end
542
+ case alt_10
543
+ when 1
544
+ # at line 74:41: WS
545
+ match(WS, TOKENS_FOLLOWING_WS_IN_category_title_242)
546
+
547
+ end
548
+ match(T__16, TOKENS_FOLLOWING_T__16_IN_category_title_245)
549
+ match(T__13, TOKENS_FOLLOWING_T__13_IN_category_title_247)
550
+ match(T__14, TOKENS_FOLLOWING_T__14_IN_category_title_249)
551
+ @state.following.push(TOKENS_FOLLOWING_title_IN_category_title_251)
552
+ title13 = title
553
+ @state.following.pop
554
+ match(T__14, TOKENS_FOLLOWING_T__14_IN_category_title_253)
555
+ # --> action
556
+ value = (title13 && @input.to_s(title13.start, title13.stop))
557
+ # <-- action
558
+
559
+ rescue ANTLR3::Error::RecognitionError => re
560
+ report_error(re)
561
+ recover(re)
562
+
563
+ ensure
564
+ # -> uncomment the next line to manually enable rule tracing
565
+ # trace_out( __method__, 6 )
566
+
567
+ end
568
+
569
+ return value
570
+ end
571
+
572
+
573
+ #
574
+ # parser rule category_rel
575
+ #
576
+ # (in OCCI.g)
577
+ # 76:3: category_rel returns [value] : ';' ( WS )? 'rel' '=' '\"' rel '\"' ;
578
+ #
579
+ def category_rel
580
+ # -> uncomment the next line to manually enable rule tracing
581
+ # trace_in( __method__, 7 )
582
+ value = nil
583
+ rel14 = nil
584
+
585
+ begin
586
+ # at line 76:35: ';' ( WS )? 'rel' '=' '\"' rel '\"'
587
+ match(T__11, TOKENS_FOLLOWING_T__11_IN_category_rel_280)
588
+ # at line 76:39: ( WS )?
589
+ alt_11 = 2
590
+ look_11_0 = @input.peek(1)
591
+
592
+ if (look_11_0 == WS)
593
+ alt_11 = 1
594
+ end
595
+ case alt_11
596
+ when 1
597
+ # at line 76:39: WS
598
+ match(WS, TOKENS_FOLLOWING_WS_IN_category_rel_282)
599
+
600
+ end
601
+ match(T__17, TOKENS_FOLLOWING_T__17_IN_category_rel_285)
602
+ match(T__13, TOKENS_FOLLOWING_T__13_IN_category_rel_287)
603
+ match(T__14, TOKENS_FOLLOWING_T__14_IN_category_rel_289)
604
+ @state.following.push(TOKENS_FOLLOWING_rel_IN_category_rel_291)
605
+ rel14 = rel
606
+ @state.following.pop
607
+ match(T__14, TOKENS_FOLLOWING_T__14_IN_category_rel_293)
608
+ # --> action
609
+ value = (rel14 && @input.to_s(rel14.start, rel14.stop))
610
+ # <-- action
611
+
612
+ rescue ANTLR3::Error::RecognitionError => re
613
+ report_error(re)
614
+ recover(re)
615
+
616
+ ensure
617
+ # -> uncomment the next line to manually enable rule tracing
618
+ # trace_out( __method__, 7 )
619
+
620
+ end
621
+
622
+ return value
623
+ end
624
+
625
+
626
+ #
627
+ # parser rule category_location
628
+ #
629
+ # (in OCCI.g)
630
+ # 78:3: category_location returns [value] : ';' ( WS )? 'location' '=' '\"' location '\"' ;
631
+ #
632
+ def category_location
633
+ # -> uncomment the next line to manually enable rule tracing
634
+ # trace_in( __method__, 8 )
635
+ value = nil
636
+ location15 = nil
637
+
638
+ begin
639
+ # at line 78:39: ';' ( WS )? 'location' '=' '\"' location '\"'
640
+ match(T__11, TOKENS_FOLLOWING_T__11_IN_category_location_318)
641
+ # at line 78:43: ( WS )?
642
+ alt_12 = 2
643
+ look_12_0 = @input.peek(1)
644
+
645
+ if (look_12_0 == WS)
646
+ alt_12 = 1
647
+ end
648
+ case alt_12
649
+ when 1
650
+ # at line 78:43: WS
651
+ match(WS, TOKENS_FOLLOWING_WS_IN_category_location_320)
652
+
653
+ end
654
+ match(T__18, TOKENS_FOLLOWING_T__18_IN_category_location_323)
655
+ match(T__13, TOKENS_FOLLOWING_T__13_IN_category_location_325)
656
+ match(T__14, TOKENS_FOLLOWING_T__14_IN_category_location_327)
657
+ @state.following.push(TOKENS_FOLLOWING_location_IN_category_location_329)
658
+ location15 = location
659
+ @state.following.pop
660
+ match(T__14, TOKENS_FOLLOWING_T__14_IN_category_location_331)
661
+ # --> action
662
+ value = (location15 && @input.to_s(location15.start, location15.stop))
663
+ # <-- action
664
+
665
+ rescue ANTLR3::Error::RecognitionError => re
666
+ report_error(re)
667
+ recover(re)
668
+
669
+ ensure
670
+ # -> uncomment the next line to manually enable rule tracing
671
+ # trace_out( __method__, 8 )
672
+
673
+ end
674
+
675
+ return value
676
+ end
677
+
678
+
679
+ #
680
+ # parser rule category_attributes
681
+ #
682
+ # (in OCCI.g)
683
+ # 80:3: category_attributes returns [hash] : ';' ( WS )? 'attributes' '=' '\"' attr= attribute_name ( ( WS )? next_attr= attribute_name )* '\"' ;
684
+ #
685
+ def category_attributes
686
+ # -> uncomment the next line to manually enable rule tracing
687
+ # trace_in( __method__, 9 )
688
+ hash = nil
689
+ attr = nil
690
+ next_attr = nil
691
+ # - - - - @init action - - - -
692
+ hash = Hashie::Mash.new
693
+
694
+ begin
695
+ # at line 81:10: ';' ( WS )? 'attributes' '=' '\"' attr= attribute_name ( ( WS )? next_attr= attribute_name )* '\"'
696
+ match(T__11, TOKENS_FOLLOWING_T__11_IN_category_attributes_370)
697
+ # at line 81:14: ( WS )?
698
+ alt_13 = 2
699
+ look_13_0 = @input.peek(1)
700
+
701
+ if (look_13_0 == WS)
702
+ alt_13 = 1
703
+ end
704
+ case alt_13
705
+ when 1
706
+ # at line 81:14: WS
707
+ match(WS, TOKENS_FOLLOWING_WS_IN_category_attributes_372)
708
+
709
+ end
710
+ match(T__19, TOKENS_FOLLOWING_T__19_IN_category_attributes_375)
711
+ match(T__13, TOKENS_FOLLOWING_T__13_IN_category_attributes_377)
712
+ match(T__14, TOKENS_FOLLOWING_T__14_IN_category_attributes_379)
713
+ @state.following.push(TOKENS_FOLLOWING_attribute_name_IN_category_attributes_383)
714
+ attr = attribute_name
715
+ @state.following.pop
716
+ # --> action
717
+ hash.merge!(attr)
718
+ # <-- action
719
+ # at line 82:10: ( ( WS )? next_attr= attribute_name )*
720
+ while true # decision 15
721
+ alt_15 = 2
722
+ look_15_0 = @input.peek(1)
723
+
724
+ if (look_15_0.between?(WS, LOALPHA))
725
+ alt_15 = 1
726
+
727
+ end
728
+ case alt_15
729
+ when 1
730
+ # at line 82:12: ( WS )? next_attr= attribute_name
731
+ # at line 82:12: ( WS )?
732
+ alt_14 = 2
733
+ look_14_0 = @input.peek(1)
734
+
735
+ if (look_14_0 == WS)
736
+ alt_14 = 1
737
+ end
738
+ case alt_14
739
+ when 1
740
+ # at line 82:12: WS
741
+ match(WS, TOKENS_FOLLOWING_WS_IN_category_attributes_398)
742
+
743
+ end
744
+ @state.following.push(TOKENS_FOLLOWING_attribute_name_IN_category_attributes_403)
745
+ next_attr = attribute_name
746
+ @state.following.pop
747
+ # --> action
748
+ hash.merge!(next_attr)
749
+ # <-- action
750
+
751
+ else
752
+ break # out of loop for decision 15
753
+ end
754
+ end # loop for decision 15
755
+ match(T__14, TOKENS_FOLLOWING_T__14_IN_category_attributes_411)
756
+
757
+ rescue ANTLR3::Error::RecognitionError => re
758
+ report_error(re)
759
+ recover(re)
760
+
761
+ ensure
762
+ # -> uncomment the next line to manually enable rule tracing
763
+ # trace_out( __method__, 9 )
764
+
765
+ end
766
+
767
+ return hash
768
+ end
769
+
770
+
771
+ #
772
+ # parser rule category_actions
773
+ #
774
+ # (in OCCI.g)
775
+ # 83:3: category_actions returns [array] : ';' ( WS )? 'actions' '=' '\"' act= action_location ( ( WS )? next_act= action_location )* '\"' ;
776
+ #
777
+ def category_actions
778
+ # -> uncomment the next line to manually enable rule tracing
779
+ # trace_in( __method__, 10 )
780
+ array = nil
781
+ act = nil
782
+ next_act = nil
783
+ # - - - - @init action - - - -
784
+ array = Array.new
785
+
786
+ begin
787
+ # at line 84:10: ';' ( WS )? 'actions' '=' '\"' act= action_location ( ( WS )? next_act= action_location )* '\"'
788
+ match(T__11, TOKENS_FOLLOWING_T__11_IN_category_actions_441)
789
+ # at line 84:14: ( WS )?
790
+ alt_16 = 2
791
+ look_16_0 = @input.peek(1)
792
+
793
+ if (look_16_0 == WS)
794
+ alt_16 = 1
795
+ end
796
+ case alt_16
797
+ when 1
798
+ # at line 84:14: WS
799
+ match(WS, TOKENS_FOLLOWING_WS_IN_category_actions_443)
800
+
801
+ end
802
+ match(T__20, TOKENS_FOLLOWING_T__20_IN_category_actions_446)
803
+ match(T__13, TOKENS_FOLLOWING_T__13_IN_category_actions_448)
804
+ match(T__14, TOKENS_FOLLOWING_T__14_IN_category_actions_450)
805
+ @state.following.push(TOKENS_FOLLOWING_action_location_IN_category_actions_454)
806
+ act = action_location
807
+ @state.following.pop
808
+ # --> action
809
+ array << (act && @input.to_s(act.start, act.stop))
810
+ # <-- action
811
+ # at line 85:10: ( ( WS )? next_act= action_location )*
812
+ while true # decision 18
813
+ alt_18 = 2
814
+ look_18_0 = @input.peek(1)
815
+
816
+ if (look_18_0.between?(WS, DIGIT) || look_18_0 == T__10 || look_18_0 == T__13 || look_18_0.between?(T__28, T__42))
817
+ alt_18 = 1
818
+
819
+ end
820
+ case alt_18
821
+ when 1
822
+ # at line 85:12: ( WS )? next_act= action_location
823
+ # at line 85:12: ( WS )?
824
+ alt_17 = 2
825
+ look_17_0 = @input.peek(1)
826
+
827
+ if (look_17_0 == WS)
828
+ alt_17 = 1
829
+ end
830
+ case alt_17
831
+ when 1
832
+ # at line 85:12: WS
833
+ match(WS, TOKENS_FOLLOWING_WS_IN_category_actions_470)
834
+
835
+ end
836
+ @state.following.push(TOKENS_FOLLOWING_action_location_IN_category_actions_475)
837
+ next_act = action_location
838
+ @state.following.pop
839
+ # --> action
840
+ array << (next_act && @input.to_s(next_act.start, next_act.stop))
841
+ # <-- action
842
+
843
+ else
844
+ break # out of loop for decision 18
845
+ end
846
+ end # loop for decision 18
847
+ match(T__14, TOKENS_FOLLOWING_T__14_IN_category_actions_482)
848
+
849
+ rescue ANTLR3::Error::RecognitionError => re
850
+ report_error(re)
851
+ recover(re)
852
+
853
+ ensure
854
+ # -> uncomment the next line to manually enable rule tracing
855
+ # trace_out( __method__, 10 )
856
+
857
+ end
858
+
859
+ return array
860
+ end
861
+
862
+
863
+ #
864
+ # parser rule link
865
+ #
866
+ # (in OCCI.g)
867
+ # 96:1: link returns [hash] : 'Link' ':' link_value ;
868
+ #
869
+ def link
870
+ # -> uncomment the next line to manually enable rule tracing
871
+ # trace_in( __method__, 11 )
872
+ hash = nil
873
+ link_value16 = nil
874
+
875
+ begin
876
+ # at line 97:4: 'Link' ':' link_value
877
+ match(T__21, TOKENS_FOLLOWING_T__21_IN_link_499)
878
+ match(T__10, TOKENS_FOLLOWING_T__10_IN_link_501)
879
+ @state.following.push(TOKENS_FOLLOWING_link_value_IN_link_503)
880
+ link_value16 = link_value
881
+ @state.following.pop
882
+ # --> action
883
+ hash = link_value16
884
+ # <-- action
885
+
886
+ rescue ANTLR3::Error::RecognitionError => re
887
+ report_error(re)
888
+ recover(re)
889
+
890
+ ensure
891
+ # -> uncomment the next line to manually enable rule tracing
892
+ # trace_out( __method__, 11 )
893
+
894
+ end
895
+
896
+ return hash
897
+ end
898
+
899
+
900
+ #
901
+ # parser rule link_value
902
+ #
903
+ # (in OCCI.g)
904
+ # 98:2: link_value returns [hash] : link_target link_rel ( link_self )? ( link_category )? link_attributes ( ';' )? ;
905
+ #
906
+ def link_value
907
+ # -> uncomment the next line to manually enable rule tracing
908
+ # trace_in( __method__, 12 )
909
+ hash = nil
910
+ link_target17 = nil
911
+ link_rel18 = nil
912
+ link_self19 = nil
913
+ link_category20 = nil
914
+ link_attributes21 = nil
915
+ # - - - - @init action - - - -
916
+ hash = Hashie::Mash.new
917
+
918
+ begin
919
+ # at line 100:6: link_target link_rel ( link_self )? ( link_category )? link_attributes ( ';' )?
920
+ @state.following.push(TOKENS_FOLLOWING_link_target_IN_link_value_525)
921
+ link_target17 = link_target
922
+ @state.following.pop
923
+ # --> action
924
+ hash[:target] = link_target17
925
+ # <-- action
926
+ @state.following.push(TOKENS_FOLLOWING_link_rel_IN_link_value_534)
927
+ link_rel18 = link_rel
928
+ @state.following.pop
929
+ # --> action
930
+ hash[:rel] = link_rel18
931
+ # <-- action
932
+ # at line 102:6: ( link_self )?
933
+ alt_19 = 2
934
+ look_19_0 = @input.peek(1)
935
+
936
+ if (look_19_0 == T__11)
937
+ look_19_1 = @input.peek(2)
938
+
939
+ if (look_19_1 == WS)
940
+ look_19_3 = @input.peek(3)
941
+
942
+ if (look_19_3 == T__24)
943
+ alt_19 = 1
944
+ end
945
+ elsif (look_19_1 == T__24)
946
+ alt_19 = 1
947
+ end
948
+ end
949
+ case alt_19
950
+ when 1
951
+ # at line 102:6: link_self
952
+ @state.following.push(TOKENS_FOLLOWING_link_self_IN_link_value_543)
953
+ link_self19 = link_self
954
+ @state.following.pop
955
+
956
+ end
957
+ # --> action
958
+ hash[:self] = link_self19
959
+ # <-- action
960
+ # at line 103:6: ( link_category )?
961
+ alt_20 = 2
962
+ look_20_0 = @input.peek(1)
963
+
964
+ if (look_20_0 == T__11)
965
+ look_20_1 = @input.peek(2)
966
+
967
+ if (look_20_1 == WS)
968
+ look_20_3 = @input.peek(3)
969
+
970
+ if (look_20_3 == T__25)
971
+ alt_20 = 1
972
+ end
973
+ elsif (look_20_1 == T__25)
974
+ alt_20 = 1
975
+ end
976
+ end
977
+ case alt_20
978
+ when 1
979
+ # at line 103:6: link_category
980
+ @state.following.push(TOKENS_FOLLOWING_link_category_IN_link_value_553)
981
+ link_category20 = link_category
982
+ @state.following.pop
983
+
984
+ end
985
+ # --> action
986
+ hash[:category] = link_category20
987
+ # <-- action
988
+ @state.following.push(TOKENS_FOLLOWING_link_attributes_IN_link_value_563)
989
+ link_attributes21 = link_attributes
990
+ @state.following.pop
991
+ # --> action
992
+ hash[:attributes] = link_attributes21
993
+ # <-- action
994
+ # at line 105:6: ( ';' )?
995
+ alt_21 = 2
996
+ look_21_0 = @input.peek(1)
997
+
998
+ if (look_21_0 == T__11)
999
+ alt_21 = 1
1000
+ end
1001
+ case alt_21
1002
+ when 1
1003
+ # at line 105:6: ';'
1004
+ match(T__11, TOKENS_FOLLOWING_T__11_IN_link_value_572)
1005
+
1006
+ end
1007
+
1008
+ rescue ANTLR3::Error::RecognitionError => re
1009
+ report_error(re)
1010
+ recover(re)
1011
+
1012
+ ensure
1013
+ # -> uncomment the next line to manually enable rule tracing
1014
+ # trace_out( __method__, 12 )
1015
+
1016
+ end
1017
+
1018
+ return hash
1019
+ end
1020
+
1021
+
1022
+ #
1023
+ # parser rule link_target
1024
+ #
1025
+ # (in OCCI.g)
1026
+ # 107:2: link_target returns [value] : ( WS )? '<' target '>' ;
1027
+ #
1028
+ def link_target
1029
+ # -> uncomment the next line to manually enable rule tracing
1030
+ # trace_in( __method__, 13 )
1031
+ value = nil
1032
+ target22 = nil
1033
+
1034
+ begin
1035
+ # at line 107:32: ( WS )? '<' target '>'
1036
+ # at line 107:32: ( WS )?
1037
+ alt_22 = 2
1038
+ look_22_0 = @input.peek(1)
1039
+
1040
+ if (look_22_0 == WS)
1041
+ alt_22 = 1
1042
+ end
1043
+ case alt_22
1044
+ when 1
1045
+ # at line 107:32: WS
1046
+ match(WS, TOKENS_FOLLOWING_WS_IN_link_target_591)
1047
+
1048
+ end
1049
+ match(T__22, TOKENS_FOLLOWING_T__22_IN_link_target_594)
1050
+ @state.following.push(TOKENS_FOLLOWING_target_IN_link_target_596)
1051
+ target22 = target
1052
+ @state.following.pop
1053
+ match(T__23, TOKENS_FOLLOWING_T__23_IN_link_target_598)
1054
+ # --> action
1055
+ value = (target22 && @input.to_s(target22.start, target22.stop))
1056
+ # <-- action
1057
+
1058
+ rescue ANTLR3::Error::RecognitionError => re
1059
+ report_error(re)
1060
+ recover(re)
1061
+
1062
+ ensure
1063
+ # -> uncomment the next line to manually enable rule tracing
1064
+ # trace_out( __method__, 13 )
1065
+
1066
+ end
1067
+
1068
+ return value
1069
+ end
1070
+
1071
+
1072
+ #
1073
+ # parser rule link_rel
1074
+ #
1075
+ # (in OCCI.g)
1076
+ # 108:2: link_rel returns [value] : ';' ( WS )? 'rel' '=' '\"' rel '\"' ;
1077
+ #
1078
+ def link_rel
1079
+ # -> uncomment the next line to manually enable rule tracing
1080
+ # trace_in( __method__, 14 )
1081
+ value = nil
1082
+ rel23 = nil
1083
+
1084
+ begin
1085
+ # at line 108:30: ';' ( WS )? 'rel' '=' '\"' rel '\"'
1086
+ match(T__11, TOKENS_FOLLOWING_T__11_IN_link_rel_613)
1087
+ # at line 108:34: ( WS )?
1088
+ alt_23 = 2
1089
+ look_23_0 = @input.peek(1)
1090
+
1091
+ if (look_23_0 == WS)
1092
+ alt_23 = 1
1093
+ end
1094
+ case alt_23
1095
+ when 1
1096
+ # at line 108:34: WS
1097
+ match(WS, TOKENS_FOLLOWING_WS_IN_link_rel_615)
1098
+
1099
+ end
1100
+ match(T__17, TOKENS_FOLLOWING_T__17_IN_link_rel_618)
1101
+ match(T__13, TOKENS_FOLLOWING_T__13_IN_link_rel_620)
1102
+ match(T__14, TOKENS_FOLLOWING_T__14_IN_link_rel_622)
1103
+ @state.following.push(TOKENS_FOLLOWING_rel_IN_link_rel_624)
1104
+ rel23 = rel
1105
+ @state.following.pop
1106
+ match(T__14, TOKENS_FOLLOWING_T__14_IN_link_rel_626)
1107
+ # --> action
1108
+ value = (rel23 && @input.to_s(rel23.start, rel23.stop))
1109
+ # <-- action
1110
+
1111
+ rescue ANTLR3::Error::RecognitionError => re
1112
+ report_error(re)
1113
+ recover(re)
1114
+
1115
+ ensure
1116
+ # -> uncomment the next line to manually enable rule tracing
1117
+ # trace_out( __method__, 14 )
1118
+
1119
+ end
1120
+
1121
+ return value
1122
+ end
1123
+
1124
+
1125
+ #
1126
+ # parser rule link_self
1127
+ #
1128
+ # (in OCCI.g)
1129
+ # 109:2: link_self returns [value] : ';' ( WS )? 'self' '=' '\"' self_location '\"' ;
1130
+ #
1131
+ def link_self
1132
+ # -> uncomment the next line to manually enable rule tracing
1133
+ # trace_in( __method__, 15 )
1134
+ value = nil
1135
+ self_location24 = nil
1136
+
1137
+ begin
1138
+ # at line 109:31: ';' ( WS )? 'self' '=' '\"' self_location '\"'
1139
+ match(T__11, TOKENS_FOLLOWING_T__11_IN_link_self_641)
1140
+ # at line 109:35: ( WS )?
1141
+ alt_24 = 2
1142
+ look_24_0 = @input.peek(1)
1143
+
1144
+ if (look_24_0 == WS)
1145
+ alt_24 = 1
1146
+ end
1147
+ case alt_24
1148
+ when 1
1149
+ # at line 109:35: WS
1150
+ match(WS, TOKENS_FOLLOWING_WS_IN_link_self_643)
1151
+
1152
+ end
1153
+ match(T__24, TOKENS_FOLLOWING_T__24_IN_link_self_646)
1154
+ match(T__13, TOKENS_FOLLOWING_T__13_IN_link_self_648)
1155
+ match(T__14, TOKENS_FOLLOWING_T__14_IN_link_self_650)
1156
+ @state.following.push(TOKENS_FOLLOWING_self_location_IN_link_self_652)
1157
+ self_location24 = self_location
1158
+ @state.following.pop
1159
+ match(T__14, TOKENS_FOLLOWING_T__14_IN_link_self_654)
1160
+ # --> action
1161
+ value = (self_location24 && @input.to_s(self_location24.start, self_location24.stop))
1162
+ # <-- action
1163
+
1164
+ rescue ANTLR3::Error::RecognitionError => re
1165
+ report_error(re)
1166
+ recover(re)
1167
+
1168
+ ensure
1169
+ # -> uncomment the next line to manually enable rule tracing
1170
+ # trace_out( __method__, 15 )
1171
+
1172
+ end
1173
+
1174
+ return value
1175
+ end
1176
+
1177
+
1178
+ #
1179
+ # parser rule link_category
1180
+ #
1181
+ # (in OCCI.g)
1182
+ # 110:2: link_category returns [value] : ';' ( WS )? 'category' '=' '\"' category_name '\"' ;
1183
+ #
1184
+ def link_category
1185
+ # -> uncomment the next line to manually enable rule tracing
1186
+ # trace_in( __method__, 16 )
1187
+ value = nil
1188
+ category_name25 = nil
1189
+
1190
+ begin
1191
+ # at line 110:35: ';' ( WS )? 'category' '=' '\"' category_name '\"'
1192
+ match(T__11, TOKENS_FOLLOWING_T__11_IN_link_category_669)
1193
+ # at line 110:39: ( WS )?
1194
+ alt_25 = 2
1195
+ look_25_0 = @input.peek(1)
1196
+
1197
+ if (look_25_0 == WS)
1198
+ alt_25 = 1
1199
+ end
1200
+ case alt_25
1201
+ when 1
1202
+ # at line 110:39: WS
1203
+ match(WS, TOKENS_FOLLOWING_WS_IN_link_category_671)
1204
+
1205
+ end
1206
+ match(T__25, TOKENS_FOLLOWING_T__25_IN_link_category_674)
1207
+ match(T__13, TOKENS_FOLLOWING_T__13_IN_link_category_676)
1208
+ match(T__14, TOKENS_FOLLOWING_T__14_IN_link_category_678)
1209
+ @state.following.push(TOKENS_FOLLOWING_category_name_IN_link_category_680)
1210
+ category_name25 = category_name
1211
+ @state.following.pop
1212
+ match(T__14, TOKENS_FOLLOWING_T__14_IN_link_category_682)
1213
+ # --> action
1214
+ value = (category_name25 && @input.to_s(category_name25.start, category_name25.stop))
1215
+ # <-- action
1216
+
1217
+ rescue ANTLR3::Error::RecognitionError => re
1218
+ report_error(re)
1219
+ recover(re)
1220
+
1221
+ ensure
1222
+ # -> uncomment the next line to manually enable rule tracing
1223
+ # trace_out( __method__, 16 )
1224
+
1225
+ end
1226
+
1227
+ return value
1228
+ end
1229
+
1230
+
1231
+ #
1232
+ # parser rule link_attributes
1233
+ #
1234
+ # (in OCCI.g)
1235
+ # 111:2: link_attributes returns [hash] : ( ';' ( WS )? attribute )* ;
1236
+ #
1237
+ def link_attributes
1238
+ # -> uncomment the next line to manually enable rule tracing
1239
+ # trace_in( __method__, 17 )
1240
+ hash = nil
1241
+ attribute26 = nil
1242
+ # - - - - @init action - - - -
1243
+ hash = Hashie::Mash.new
1244
+
1245
+ begin
1246
+ # at line 112:8: ( ';' ( WS )? attribute )*
1247
+ # at line 112:8: ( ';' ( WS )? attribute )*
1248
+ while true # decision 27
1249
+ alt_27 = 2
1250
+ look_27_0 = @input.peek(1)
1251
+
1252
+ if (look_27_0 == T__11)
1253
+ look_27_1 = @input.peek(2)
1254
+
1255
+ if (look_27_1.between?(WS, LOALPHA))
1256
+ alt_27 = 1
1257
+
1258
+ end
1259
+
1260
+ end
1261
+ case alt_27
1262
+ when 1
1263
+ # at line 112:9: ';' ( WS )? attribute
1264
+ match(T__11, TOKENS_FOLLOWING_T__11_IN_link_attributes_708)
1265
+ # at line 112:13: ( WS )?
1266
+ alt_26 = 2
1267
+ look_26_0 = @input.peek(1)
1268
+
1269
+ if (look_26_0 == WS)
1270
+ alt_26 = 1
1271
+ end
1272
+ case alt_26
1273
+ when 1
1274
+ # at line 112:13: WS
1275
+ match(WS, TOKENS_FOLLOWING_WS_IN_link_attributes_710)
1276
+
1277
+ end
1278
+ @state.following.push(TOKENS_FOLLOWING_attribute_IN_link_attributes_713)
1279
+ attribute26 = attribute
1280
+ @state.following.pop
1281
+ # --> action
1282
+ hash.merge!(attribute26)
1283
+ # <-- action
1284
+
1285
+ else
1286
+ break # out of loop for decision 27
1287
+ end
1288
+ end # loop for decision 27
1289
+
1290
+ rescue ANTLR3::Error::RecognitionError => re
1291
+ report_error(re)
1292
+ recover(re)
1293
+
1294
+ ensure
1295
+ # -> uncomment the next line to manually enable rule tracing
1296
+ # trace_out( __method__, 17 )
1297
+
1298
+ end
1299
+
1300
+ return hash
1301
+ end
1302
+
1303
+
1304
+ #
1305
+ # parser rule x_occi_attribute
1306
+ #
1307
+ # (in OCCI.g)
1308
+ # 124:1: x_occi_attribute returns [hash] : 'X-OCCI-Attribute' ':' ( WS )? attribute ( ';' )? ;
1309
+ #
1310
+ def x_occi_attribute
1311
+ # -> uncomment the next line to manually enable rule tracing
1312
+ # trace_in( __method__, 18 )
1313
+ hash = nil
1314
+ attribute27 = nil
1315
+
1316
+ begin
1317
+ # at line 125:4: 'X-OCCI-Attribute' ':' ( WS )? attribute ( ';' )?
1318
+ match(T__26, TOKENS_FOLLOWING_T__26_IN_x_occi_attribute_734)
1319
+ match(T__10, TOKENS_FOLLOWING_T__10_IN_x_occi_attribute_736)
1320
+ # at line 125:27: ( WS )?
1321
+ alt_28 = 2
1322
+ look_28_0 = @input.peek(1)
1323
+
1324
+ if (look_28_0 == WS)
1325
+ alt_28 = 1
1326
+ end
1327
+ case alt_28
1328
+ when 1
1329
+ # at line 125:27: WS
1330
+ match(WS, TOKENS_FOLLOWING_WS_IN_x_occi_attribute_738)
1331
+
1332
+ end
1333
+ @state.following.push(TOKENS_FOLLOWING_attribute_IN_x_occi_attribute_741)
1334
+ attribute27 = attribute
1335
+ @state.following.pop
1336
+ # at line 125:41: ( ';' )?
1337
+ alt_29 = 2
1338
+ look_29_0 = @input.peek(1)
1339
+
1340
+ if (look_29_0 == T__11)
1341
+ alt_29 = 1
1342
+ end
1343
+ case alt_29
1344
+ when 1
1345
+ # at line 125:41: ';'
1346
+ match(T__11, TOKENS_FOLLOWING_T__11_IN_x_occi_attribute_743)
1347
+
1348
+ end
1349
+ # --> action
1350
+ hash = attribute27
1351
+ # <-- action
1352
+
1353
+ rescue ANTLR3::Error::RecognitionError => re
1354
+ report_error(re)
1355
+ recover(re)
1356
+
1357
+ ensure
1358
+ # -> uncomment the next line to manually enable rule tracing
1359
+ # trace_out( __method__, 18 )
1360
+
1361
+ end
1362
+
1363
+ return hash
1364
+ end
1365
+
1366
+
1367
+ #
1368
+ # parser rule x_occi_location
1369
+ #
1370
+ # (in OCCI.g)
1371
+ # 133:1: x_occi_location returns [uri] : 'X-OCCI-Location' ':' ( WS )? location ( ';' )? ;
1372
+ #
1373
+ def x_occi_location
1374
+ # -> uncomment the next line to manually enable rule tracing
1375
+ # trace_in( __method__, 19 )
1376
+ uri = nil
1377
+ location28 = nil
1378
+
1379
+ begin
1380
+ # at line 134:4: 'X-OCCI-Location' ':' ( WS )? location ( ';' )?
1381
+ match(T__27, TOKENS_FOLLOWING_T__27_IN_x_occi_location_763)
1382
+ match(T__10, TOKENS_FOLLOWING_T__10_IN_x_occi_location_765)
1383
+ # at line 134:26: ( WS )?
1384
+ alt_30 = 2
1385
+ look_30_0 = @input.peek(1)
1386
+
1387
+ if (look_30_0 == WS)
1388
+ alt_30 = 1
1389
+ end
1390
+ case alt_30
1391
+ when 1
1392
+ # at line 134:26: WS
1393
+ match(WS, TOKENS_FOLLOWING_WS_IN_x_occi_location_767)
1394
+
1395
+ end
1396
+ @state.following.push(TOKENS_FOLLOWING_location_IN_x_occi_location_770)
1397
+ location28 = location
1398
+ @state.following.pop
1399
+ # at line 134:39: ( ';' )?
1400
+ alt_31 = 2
1401
+ look_31_0 = @input.peek(1)
1402
+
1403
+ if (look_31_0 == T__11)
1404
+ alt_31 = 1
1405
+ end
1406
+ case alt_31
1407
+ when 1
1408
+ # at line 134:39: ';'
1409
+ match(T__11, TOKENS_FOLLOWING_T__11_IN_x_occi_location_772)
1410
+
1411
+ end
1412
+ # --> action
1413
+ uri = URI.parse((location28 && @input.to_s(location28.start, location28.stop)))
1414
+ # <-- action
1415
+
1416
+ rescue ANTLR3::Error::RecognitionError => re
1417
+ report_error(re)
1418
+ recover(re)
1419
+
1420
+ ensure
1421
+ # -> uncomment the next line to manually enable rule tracing
1422
+ # trace_out( __method__, 19 )
1423
+
1424
+ end
1425
+
1426
+ return uri
1427
+ end
1428
+
1429
+
1430
+ #
1431
+ # parser rule uri
1432
+ #
1433
+ # (in OCCI.g)
1434
+ # 136:1: uri : ( LOALPHA | UPALPHA | DIGIT | '@' | ':' | '%' | '_' | '\\\\' | '+' | '.' | '~' | '#' | '?' | '&' | '/' | '=' | '-' | 'action' | 'kind' | 'mixin' )+ ;
1435
+ #
1436
+ def uri
1437
+ # -> uncomment the next line to manually enable rule tracing
1438
+ # trace_in( __method__, 20 )
1439
+
1440
+ begin
1441
+ # at line 136:9: ( LOALPHA | UPALPHA | DIGIT | '@' | ':' | '%' | '_' | '\\\\' | '+' | '.' | '~' | '#' | '?' | '&' | '/' | '=' | '-' | 'action' | 'kind' | 'mixin' )+
1442
+ # at file 136:9: ( LOALPHA | UPALPHA | DIGIT | '@' | ':' | '%' | '_' | '\\\\' | '+' | '.' | '~' | '#' | '?' | '&' | '/' | '=' | '-' | 'action' | 'kind' | 'mixin' )+
1443
+ match_count_32 = 0
1444
+ while true
1445
+ alt_32 = 2
1446
+ look_32_0 = @input.peek(1)
1447
+
1448
+ if (look_32_0.between?(LOALPHA, DIGIT) || look_32_0 == T__10 || look_32_0 == T__13 || look_32_0.between?(T__28, T__42))
1449
+ alt_32 = 1
1450
+
1451
+ end
1452
+ case alt_32
1453
+ when 1
1454
+ # at line
1455
+ if @input.peek(1).between?(LOALPHA, DIGIT) || @input.peek(1) == T__10 || @input.peek(1) == T__13 || @input.peek(1).between?(T__28, T__42)
1456
+ @input.consume
1457
+ @state.error_recovery = false
1458
+ else
1459
+ mse = MismatchedSet(nil)
1460
+ raise mse
1461
+ end
1462
+
1463
+
1464
+ else
1465
+ match_count_32 > 0 and break
1466
+ eee = EarlyExit(32)
1467
+
1468
+
1469
+ raise eee
1470
+ end
1471
+ match_count_32 += 1
1472
+ end
1473
+
1474
+
1475
+ rescue ANTLR3::Error::RecognitionError => re
1476
+ report_error(re)
1477
+ recover(re)
1478
+
1479
+ ensure
1480
+ # -> uncomment the next line to manually enable rule tracing
1481
+ # trace_out( __method__, 20 )
1482
+
1483
+ end
1484
+
1485
+ return
1486
+ end
1487
+
1488
+ TermReturnValue = define_return_scope
1489
+
1490
+ #
1491
+ # parser rule term
1492
+ #
1493
+ # (in OCCI.g)
1494
+ # 137:1: term : LOALPHA ( LOALPHA | DIGIT | '-' | '_' )* ;
1495
+ #
1496
+ def term
1497
+ # -> uncomment the next line to manually enable rule tracing
1498
+ # trace_in( __method__, 21 )
1499
+ return_value = TermReturnValue.new
1500
+
1501
+ # $rule.start = the first token seen before matching
1502
+ return_value.start = @input.look
1503
+
1504
+ begin
1505
+ # at line 137:10: LOALPHA ( LOALPHA | DIGIT | '-' | '_' )*
1506
+ match(LOALPHA, TOKENS_FOLLOWING_LOALPHA_IN_term_876)
1507
+ # at line 137:18: ( LOALPHA | DIGIT | '-' | '_' )*
1508
+ while true # decision 33
1509
+ alt_33 = 2
1510
+ look_33_0 = @input.peek(1)
1511
+
1512
+ if (look_33_0 == LOALPHA || look_33_0 == DIGIT || look_33_0 == T__30 || look_33_0 == T__39)
1513
+ alt_33 = 1
1514
+
1515
+ end
1516
+ case alt_33
1517
+ when 1
1518
+ # at line
1519
+ if @input.peek(1) == LOALPHA || @input.peek(1) == DIGIT || @input.peek(1) == T__30 || @input.peek(1) == T__39
1520
+ @input.consume
1521
+ @state.error_recovery = false
1522
+ else
1523
+ mse = MismatchedSet(nil)
1524
+ raise mse
1525
+ end
1526
+
1527
+
1528
+ else
1529
+ break # out of loop for decision 33
1530
+ end
1531
+ end # loop for decision 33
1532
+ # - - - - - - - rule clean up - - - - - - - -
1533
+ return_value.stop = @input.look(-1)
1534
+
1535
+ rescue ANTLR3::Error::RecognitionError => re
1536
+ report_error(re)
1537
+ recover(re)
1538
+
1539
+ ensure
1540
+ # -> uncomment the next line to manually enable rule tracing
1541
+ # trace_out( __method__, 21 )
1542
+
1543
+ end
1544
+
1545
+ return return_value
1546
+ end
1547
+
1548
+ SchemeReturnValue = define_return_scope
1549
+
1550
+ #
1551
+ # parser rule scheme
1552
+ #
1553
+ # (in OCCI.g)
1554
+ # 138:1: scheme : uri ;
1555
+ #
1556
+ def scheme
1557
+ # -> uncomment the next line to manually enable rule tracing
1558
+ # trace_in( __method__, 22 )
1559
+ return_value = SchemeReturnValue.new
1560
+
1561
+ # $rule.start = the first token seen before matching
1562
+ return_value.start = @input.look
1563
+
1564
+ begin
1565
+ # at line 138:20: uri
1566
+ @state.following.push(TOKENS_FOLLOWING_uri_IN_scheme_911)
1567
+ uri
1568
+ @state.following.pop
1569
+ # - - - - - - - rule clean up - - - - - - - -
1570
+ return_value.stop = @input.look(-1)
1571
+
1572
+ rescue ANTLR3::Error::RecognitionError => re
1573
+ report_error(re)
1574
+ recover(re)
1575
+
1576
+ ensure
1577
+ # -> uncomment the next line to manually enable rule tracing
1578
+ # trace_out( __method__, 22 )
1579
+
1580
+ end
1581
+
1582
+ return return_value
1583
+ end
1584
+
1585
+ ClassTypeReturnValue = define_return_scope
1586
+
1587
+ #
1588
+ # parser rule class_type
1589
+ #
1590
+ # (in OCCI.g)
1591
+ # 139:1: class_type : ( 'kind' | 'mixin' | 'action' ) ;
1592
+ #
1593
+ def class_type
1594
+ # -> uncomment the next line to manually enable rule tracing
1595
+ # trace_in( __method__, 23 )
1596
+ return_value = ClassTypeReturnValue.new
1597
+
1598
+ # $rule.start = the first token seen before matching
1599
+ return_value.start = @input.look
1600
+
1601
+ begin
1602
+ # at line 139:15: ( 'kind' | 'mixin' | 'action' )
1603
+ if @input.peek(1).between?(T__40, T__42)
1604
+ @input.consume
1605
+ @state.error_recovery = false
1606
+ else
1607
+ mse = MismatchedSet(nil)
1608
+ raise mse
1609
+ end
1610
+
1611
+
1612
+ # - - - - - - - rule clean up - - - - - - - -
1613
+ return_value.stop = @input.look(-1)
1614
+
1615
+ rescue ANTLR3::Error::RecognitionError => re
1616
+ report_error(re)
1617
+ recover(re)
1618
+
1619
+ ensure
1620
+ # -> uncomment the next line to manually enable rule tracing
1621
+ # trace_out( __method__, 23 )
1622
+
1623
+ end
1624
+
1625
+ return return_value
1626
+ end
1627
+
1628
+ TitleReturnValue = define_return_scope
1629
+
1630
+ #
1631
+ # parser rule title
1632
+ #
1633
+ # (in OCCI.g)
1634
+ # 140:1: title : ( ESC | ~ ( '\\\\' | '\"' | '\\'' ) | '\\'' )* ;
1635
+ #
1636
+ def title
1637
+ # -> uncomment the next line to manually enable rule tracing
1638
+ # trace_in( __method__, 24 )
1639
+ return_value = TitleReturnValue.new
1640
+
1641
+ # $rule.start = the first token seen before matching
1642
+ return_value.start = @input.look
1643
+
1644
+ begin
1645
+ # at line 140:11: ( ESC | ~ ( '\\\\' | '\"' | '\\'' ) | '\\'' )*
1646
+ # at line 140:11: ( ESC | ~ ( '\\\\' | '\"' | '\\'' ) | '\\'' )*
1647
+ while true # decision 34
1648
+ alt_34 = 2
1649
+ look_34_0 = @input.peek(1)
1650
+
1651
+ if (look_34_0.between?(WS, T__13) || look_34_0.between?(T__15, T__30) || look_34_0.between?(T__32, T__43))
1652
+ alt_34 = 1
1653
+
1654
+ end
1655
+ case alt_34
1656
+ when 1
1657
+ # at line
1658
+ if @input.peek(1).between?(WS, T__13) || @input.peek(1).between?(T__15, T__30) || @input.peek(1).between?(T__32, T__43)
1659
+ @input.consume
1660
+ @state.error_recovery = false
1661
+ else
1662
+ mse = MismatchedSet(nil)
1663
+ raise mse
1664
+ end
1665
+
1666
+
1667
+ else
1668
+ break # out of loop for decision 34
1669
+ end
1670
+ end # loop for decision 34
1671
+ # - - - - - - - rule clean up - - - - - - - -
1672
+ return_value.stop = @input.look(-1)
1673
+
1674
+ rescue ANTLR3::Error::RecognitionError => re
1675
+ report_error(re)
1676
+ recover(re)
1677
+
1678
+ ensure
1679
+ # -> uncomment the next line to manually enable rule tracing
1680
+ # trace_out( __method__, 24 )
1681
+
1682
+ end
1683
+
1684
+ return return_value
1685
+ end
1686
+
1687
+ RelReturnValue = define_return_scope
1688
+
1689
+ #
1690
+ # parser rule rel
1691
+ #
1692
+ # (in OCCI.g)
1693
+ # 141:1: rel : uri ;
1694
+ #
1695
+ def rel
1696
+ # -> uncomment the next line to manually enable rule tracing
1697
+ # trace_in( __method__, 25 )
1698
+ return_value = RelReturnValue.new
1699
+
1700
+ # $rule.start = the first token seen before matching
1701
+ return_value.start = @input.look
1702
+
1703
+ begin
1704
+ # at line 141:9: uri
1705
+ @state.following.push(TOKENS_FOLLOWING_uri_IN_rel_976)
1706
+ uri
1707
+ @state.following.pop
1708
+ # - - - - - - - rule clean up - - - - - - - -
1709
+ return_value.stop = @input.look(-1)
1710
+
1711
+ rescue ANTLR3::Error::RecognitionError => re
1712
+ report_error(re)
1713
+ recover(re)
1714
+
1715
+ ensure
1716
+ # -> uncomment the next line to manually enable rule tracing
1717
+ # trace_out( __method__, 25 )
1718
+
1719
+ end
1720
+
1721
+ return return_value
1722
+ end
1723
+
1724
+ LocationReturnValue = define_return_scope
1725
+
1726
+ #
1727
+ # parser rule location
1728
+ #
1729
+ # (in OCCI.g)
1730
+ # 142:1: location : uri ;
1731
+ #
1732
+ def location
1733
+ # -> uncomment the next line to manually enable rule tracing
1734
+ # trace_in( __method__, 26 )
1735
+ return_value = LocationReturnValue.new
1736
+
1737
+ # $rule.start = the first token seen before matching
1738
+ return_value.start = @input.look
1739
+
1740
+ begin
1741
+ # at line 142:13: uri
1742
+ @state.following.push(TOKENS_FOLLOWING_uri_IN_location_984)
1743
+ uri
1744
+ @state.following.pop
1745
+ # - - - - - - - rule clean up - - - - - - - -
1746
+ return_value.stop = @input.look(-1)
1747
+
1748
+ rescue ANTLR3::Error::RecognitionError => re
1749
+ report_error(re)
1750
+ recover(re)
1751
+
1752
+ ensure
1753
+ # -> uncomment the next line to manually enable rule tracing
1754
+ # trace_out( __method__, 26 )
1755
+
1756
+ end
1757
+
1758
+ return return_value
1759
+ end
1760
+
1761
+
1762
+ #
1763
+ # parser rule attribute
1764
+ #
1765
+ # (in OCCI.g)
1766
+ # 143:1: attribute returns [hash] : comp_first= attribute_component ( '.' comp_next= attribute_component )* '=' attribute_value ;
1767
+ #
1768
+ def attribute
1769
+ # -> uncomment the next line to manually enable rule tracing
1770
+ # trace_in( __method__, 27 )
1771
+ hash = nil
1772
+ comp_first = nil
1773
+ comp_next = nil
1774
+ attribute_value29 = nil
1775
+ # - - - - @init action - - - -
1776
+ hash = Hashie::Mash.new
1777
+
1778
+ begin
1779
+ # at line 144:6: comp_first= attribute_component ( '.' comp_next= attribute_component )* '=' attribute_value
1780
+ @state.following.push(TOKENS_FOLLOWING_attribute_component_IN_attribute_1005)
1781
+ comp_first = attribute_component
1782
+ @state.following.pop
1783
+ # --> action
1784
+ cur_hash = hash; comp = (comp_first && @input.to_s(comp_first.start, comp_first.stop))
1785
+ # <-- action
1786
+ # at line 145:6: ( '.' comp_next= attribute_component )*
1787
+ while true # decision 35
1788
+ alt_35 = 2
1789
+ look_35_0 = @input.peek(1)
1790
+
1791
+ if (look_35_0 == T__33)
1792
+ alt_35 = 1
1793
+
1794
+ end
1795
+ case alt_35
1796
+ when 1
1797
+ # at line 145:8: '.' comp_next= attribute_component
1798
+ match(T__33, TOKENS_FOLLOWING_T__33_IN_attribute_1016)
1799
+ @state.following.push(TOKENS_FOLLOWING_attribute_component_IN_attribute_1020)
1800
+ comp_next = attribute_component
1801
+ @state.following.pop
1802
+ # --> action
1803
+ 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))
1804
+ # <-- action
1805
+
1806
+ else
1807
+ break # out of loop for decision 35
1808
+ end
1809
+ end # loop for decision 35
1810
+ match(T__13, TOKENS_FOLLOWING_T__13_IN_attribute_1031)
1811
+ @state.following.push(TOKENS_FOLLOWING_attribute_value_IN_attribute_1033)
1812
+ attribute_value29 = attribute_value
1813
+ @state.following.pop
1814
+ # --> action
1815
+ cur_hash[comp.to_sym] = attribute_value29
1816
+ # <-- action
1817
+
1818
+ rescue ANTLR3::Error::RecognitionError => re
1819
+ report_error(re)
1820
+ recover(re)
1821
+
1822
+ ensure
1823
+ # -> uncomment the next line to manually enable rule tracing
1824
+ # trace_out( __method__, 27 )
1825
+
1826
+ end
1827
+
1828
+ return hash
1829
+ end
1830
+
1831
+
1832
+ #
1833
+ # parser rule attribute_name
1834
+ #
1835
+ # (in OCCI.g)
1836
+ # 147:1: attribute_name returns [hash] : comp_first= attribute_component ( '.' comp_next= attribute_component )* ;
1837
+ #
1838
+ def attribute_name
1839
+ # -> uncomment the next line to manually enable rule tracing
1840
+ # trace_in( __method__, 28 )
1841
+ hash = nil
1842
+ comp_first = nil
1843
+ comp_next = nil
1844
+ # - - - - @init action - - - -
1845
+ hash = Hashie::Mash.new
1846
+
1847
+ begin
1848
+ # at line 148:27: comp_first= attribute_component ( '.' comp_next= attribute_component )*
1849
+ @state.following.push(TOKENS_FOLLOWING_attribute_component_IN_attribute_name_1077)
1850
+ comp_first = attribute_component
1851
+ @state.following.pop
1852
+ # --> action
1853
+ cur_hash = hash; comp = (comp_first && @input.to_s(comp_first.start, comp_first.stop))
1854
+ # <-- action
1855
+ # at line 149:6: ( '.' comp_next= attribute_component )*
1856
+ while true # decision 36
1857
+ alt_36 = 2
1858
+ look_36_0 = @input.peek(1)
1859
+
1860
+ if (look_36_0 == T__33)
1861
+ alt_36 = 1
1862
+
1863
+ end
1864
+ case alt_36
1865
+ when 1
1866
+ # at line 149:8: '.' comp_next= attribute_component
1867
+ match(T__33, TOKENS_FOLLOWING_T__33_IN_attribute_name_1088)
1868
+ @state.following.push(TOKENS_FOLLOWING_attribute_component_IN_attribute_name_1092)
1869
+ comp_next = attribute_component
1870
+ @state.following.pop
1871
+ # --> action
1872
+ 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))
1873
+ # <-- action
1874
+
1875
+ else
1876
+ break # out of loop for decision 36
1877
+ end
1878
+ end # loop for decision 36
1879
+ # --> action
1880
+ cur_hash[comp.to_sym] = ATTRIBUTE
1881
+ # <-- action
1882
+
1883
+ rescue ANTLR3::Error::RecognitionError => re
1884
+ report_error(re)
1885
+ recover(re)
1886
+
1887
+ ensure
1888
+ # -> uncomment the next line to manually enable rule tracing
1889
+ # trace_out( __method__, 28 )
1890
+
1891
+ end
1892
+
1893
+ return hash
1894
+ end
1895
+
1896
+ AttributeComponentReturnValue = define_return_scope
1897
+
1898
+ #
1899
+ # parser rule attribute_component
1900
+ #
1901
+ # (in OCCI.g)
1902
+ # 151:1: attribute_component : LOALPHA ( LOALPHA | DIGIT | '-' | '_' )* ;
1903
+ #
1904
+ def attribute_component
1905
+ # -> uncomment the next line to manually enable rule tracing
1906
+ # trace_in( __method__, 29 )
1907
+ return_value = AttributeComponentReturnValue.new
1908
+
1909
+ # $rule.start = the first token seen before matching
1910
+ return_value.start = @input.look
1911
+
1912
+ begin
1913
+ # at line 151:23: LOALPHA ( LOALPHA | DIGIT | '-' | '_' )*
1914
+ match(LOALPHA, TOKENS_FOLLOWING_LOALPHA_IN_attribute_component_1110)
1915
+ # at line 151:31: ( LOALPHA | DIGIT | '-' | '_' )*
1916
+ while true # decision 37
1917
+ alt_37 = 2
1918
+ look_37_0 = @input.peek(1)
1919
+
1920
+ if (look_37_0 == LOALPHA || look_37_0 == DIGIT || look_37_0 == T__30 || look_37_0 == T__39)
1921
+ alt_37 = 1
1922
+
1923
+ end
1924
+ case alt_37
1925
+ when 1
1926
+ # at line
1927
+ if @input.peek(1) == LOALPHA || @input.peek(1) == DIGIT || @input.peek(1) == T__30 || @input.peek(1) == T__39
1928
+ @input.consume
1929
+ @state.error_recovery = false
1930
+ else
1931
+ mse = MismatchedSet(nil)
1932
+ raise mse
1933
+ end
1934
+
1935
+
1936
+ else
1937
+ break # out of loop for decision 37
1938
+ end
1939
+ end # loop for decision 37
1940
+ # - - - - - - - rule clean up - - - - - - - -
1941
+ return_value.stop = @input.look(-1)
1942
+
1943
+ rescue ANTLR3::Error::RecognitionError => re
1944
+ report_error(re)
1945
+ recover(re)
1946
+
1947
+ ensure
1948
+ # -> uncomment the next line to manually enable rule tracing
1949
+ # trace_out( __method__, 29 )
1950
+
1951
+ end
1952
+
1953
+ return return_value
1954
+ end
1955
+
1956
+
1957
+ #
1958
+ # parser rule attribute_value
1959
+ #
1960
+ # (in OCCI.g)
1961
+ # 152:1: attribute_value returns [value] : ( string | number ) ;
1962
+ #
1963
+ def attribute_value
1964
+ # -> uncomment the next line to manually enable rule tracing
1965
+ # trace_in( __method__, 30 )
1966
+ value = nil
1967
+ string30 = nil
1968
+ number31 = nil
1969
+
1970
+ begin
1971
+ # at line 152:35: ( string | number )
1972
+ # at line 152:35: ( string | number )
1973
+ alt_38 = 2
1974
+ look_38_0 = @input.peek(1)
1975
+
1976
+ if (look_38_0 == T__14)
1977
+ alt_38 = 1
1978
+ elsif (look_38_0 == EOF || look_38_0 == DIGIT || look_38_0 == T__11 || look_38_0 == T__33)
1979
+ alt_38 = 2
1980
+ else
1981
+ raise NoViableAlternative("", 38, 0)
1982
+ end
1983
+ case alt_38
1984
+ when 1
1985
+ # at line 152:37: string
1986
+ @state.following.push(TOKENS_FOLLOWING_string_IN_attribute_value_1142)
1987
+ string30 = string
1988
+ @state.following.pop
1989
+ # --> action
1990
+ value = (string30 && @input.to_s(string30.start, string30.stop))
1991
+ # <-- action
1992
+
1993
+ when 2
1994
+ # at line 152:71: number
1995
+ @state.following.push(TOKENS_FOLLOWING_number_IN_attribute_value_1148)
1996
+ number31 = number
1997
+ @state.following.pop
1998
+ # --> action
1999
+ value = (number31 && @input.to_s(number31.start, number31.stop)).to_i
2000
+ # <-- action
2001
+
2002
+ end
2003
+
2004
+ rescue ANTLR3::Error::RecognitionError => re
2005
+ report_error(re)
2006
+ recover(re)
2007
+
2008
+ ensure
2009
+ # -> uncomment the next line to manually enable rule tracing
2010
+ # trace_out( __method__, 30 )
2011
+
2012
+ end
2013
+
2014
+ return value
2015
+ end
2016
+
2017
+ StringReturnValue = define_return_scope
2018
+
2019
+ #
2020
+ # parser rule string
2021
+ #
2022
+ # (in OCCI.g)
2023
+ # 153:1: string : ( '\"' ( ESC | ~ ( '\\\\' | '\"' | '\\'' ) | '\\'' )* '\"' ) ;
2024
+ #
2025
+ def string
2026
+ # -> uncomment the next line to manually enable rule tracing
2027
+ # trace_in( __method__, 31 )
2028
+ return_value = StringReturnValue.new
2029
+
2030
+ # $rule.start = the first token seen before matching
2031
+ return_value.start = @input.look
2032
+
2033
+ begin
2034
+ # at line 153:12: ( '\"' ( ESC | ~ ( '\\\\' | '\"' | '\\'' ) | '\\'' )* '\"' )
2035
+ # at line 153:12: ( '\"' ( ESC | ~ ( '\\\\' | '\"' | '\\'' ) | '\\'' )* '\"' )
2036
+ # at line 153:14: '\"' ( ESC | ~ ( '\\\\' | '\"' | '\\'' ) | '\\'' )* '\"'
2037
+ match(T__14, TOKENS_FOLLOWING_T__14_IN_string_1163)
2038
+ # at line 153:18: ( ESC | ~ ( '\\\\' | '\"' | '\\'' ) | '\\'' )*
2039
+ while true # decision 39
2040
+ alt_39 = 2
2041
+ look_39_0 = @input.peek(1)
2042
+
2043
+ if (look_39_0.between?(WS, T__13) || look_39_0.between?(T__15, T__30) || look_39_0.between?(T__32, T__43))
2044
+ alt_39 = 1
2045
+
2046
+ end
2047
+ case alt_39
2048
+ when 1
2049
+ # at line
2050
+ if @input.peek(1).between?(WS, T__13) || @input.peek(1).between?(T__15, T__30) || @input.peek(1).between?(T__32, T__43)
2051
+ @input.consume
2052
+ @state.error_recovery = false
2053
+ else
2054
+ mse = MismatchedSet(nil)
2055
+ raise mse
2056
+ end
2057
+
2058
+
2059
+ else
2060
+ break # out of loop for decision 39
2061
+ end
2062
+ end # loop for decision 39
2063
+ match(T__14, TOKENS_FOLLOWING_T__14_IN_string_1193)
2064
+
2065
+ # - - - - - - - rule clean up - - - - - - - -
2066
+ return_value.stop = @input.look(-1)
2067
+
2068
+ rescue ANTLR3::Error::RecognitionError => re
2069
+ report_error(re)
2070
+ recover(re)
2071
+
2072
+ ensure
2073
+ # -> uncomment the next line to manually enable rule tracing
2074
+ # trace_out( __method__, 31 )
2075
+
2076
+ end
2077
+
2078
+ return return_value
2079
+ end
2080
+
2081
+ NumberReturnValue = define_return_scope
2082
+
2083
+ #
2084
+ # parser rule number
2085
+ #
2086
+ # (in OCCI.g)
2087
+ # 154:1: number : ( ( DIGIT )* ( '.' ( DIGIT )+ )? ) ;
2088
+ #
2089
+ def number
2090
+ # -> uncomment the next line to manually enable rule tracing
2091
+ # trace_in( __method__, 32 )
2092
+ return_value = NumberReturnValue.new
2093
+
2094
+ # $rule.start = the first token seen before matching
2095
+ return_value.start = @input.look
2096
+
2097
+ begin
2098
+ # at line 154:12: ( ( DIGIT )* ( '.' ( DIGIT )+ )? )
2099
+ # at line 154:12: ( ( DIGIT )* ( '.' ( DIGIT )+ )? )
2100
+ # at line 154:14: ( DIGIT )* ( '.' ( DIGIT )+ )?
2101
+ # at line 154:14: ( DIGIT )*
2102
+ while true # decision 40
2103
+ alt_40 = 2
2104
+ look_40_0 = @input.peek(1)
2105
+
2106
+ if (look_40_0 == DIGIT)
2107
+ alt_40 = 1
2108
+
2109
+ end
2110
+ case alt_40
2111
+ when 1
2112
+ # at line 154:14: DIGIT
2113
+ match(DIGIT, TOKENS_FOLLOWING_DIGIT_IN_number_1205)
2114
+
2115
+ else
2116
+ break # out of loop for decision 40
2117
+ end
2118
+ end # loop for decision 40
2119
+ # at line 154:21: ( '.' ( DIGIT )+ )?
2120
+ alt_42 = 2
2121
+ look_42_0 = @input.peek(1)
2122
+
2123
+ if (look_42_0 == T__33)
2124
+ alt_42 = 1
2125
+ end
2126
+ case alt_42
2127
+ when 1
2128
+ # at line 154:23: '.' ( DIGIT )+
2129
+ match(T__33, TOKENS_FOLLOWING_T__33_IN_number_1210)
2130
+ # at file 154:27: ( DIGIT )+
2131
+ match_count_41 = 0
2132
+ while true
2133
+ alt_41 = 2
2134
+ look_41_0 = @input.peek(1)
2135
+
2136
+ if (look_41_0 == DIGIT)
2137
+ alt_41 = 1
2138
+
2139
+ end
2140
+ case alt_41
2141
+ when 1
2142
+ # at line 154:27: DIGIT
2143
+ match(DIGIT, TOKENS_FOLLOWING_DIGIT_IN_number_1212)
2144
+
2145
+ else
2146
+ match_count_41 > 0 and break
2147
+ eee = EarlyExit(41)
2148
+
2149
+
2150
+ raise eee
2151
+ end
2152
+ match_count_41 += 1
2153
+ end
2154
+
2155
+
2156
+ end
2157
+
2158
+ # - - - - - - - rule clean up - - - - - - - -
2159
+ return_value.stop = @input.look(-1)
2160
+
2161
+ rescue ANTLR3::Error::RecognitionError => re
2162
+ report_error(re)
2163
+ recover(re)
2164
+
2165
+ ensure
2166
+ # -> uncomment the next line to manually enable rule tracing
2167
+ # trace_out( __method__, 32 )
2168
+
2169
+ end
2170
+
2171
+ return return_value
2172
+ end
2173
+
2174
+ ActionLocationReturnValue = define_return_scope
2175
+
2176
+ #
2177
+ # parser rule action_location
2178
+ #
2179
+ # (in OCCI.g)
2180
+ # 155:1: action_location : uri ;
2181
+ #
2182
+ def action_location
2183
+ # -> uncomment the next line to manually enable rule tracing
2184
+ # trace_in( __method__, 33 )
2185
+ return_value = ActionLocationReturnValue.new
2186
+
2187
+ # $rule.start = the first token seen before matching
2188
+ return_value.start = @input.look
2189
+
2190
+ begin
2191
+ # at line 155:20: uri
2192
+ @state.following.push(TOKENS_FOLLOWING_uri_IN_action_location_1226)
2193
+ uri
2194
+ @state.following.pop
2195
+ # - - - - - - - rule clean up - - - - - - - -
2196
+ return_value.stop = @input.look(-1)
2197
+
2198
+ rescue ANTLR3::Error::RecognitionError => re
2199
+ report_error(re)
2200
+ recover(re)
2201
+
2202
+ ensure
2203
+ # -> uncomment the next line to manually enable rule tracing
2204
+ # trace_out( __method__, 33 )
2205
+
2206
+ end
2207
+
2208
+ return return_value
2209
+ end
2210
+
2211
+ TargetReturnValue = define_return_scope
2212
+
2213
+ #
2214
+ # parser rule target
2215
+ #
2216
+ # (in OCCI.g)
2217
+ # 156:1: target : uri ;
2218
+ #
2219
+ def target
2220
+ # -> uncomment the next line to manually enable rule tracing
2221
+ # trace_in( __method__, 34 )
2222
+ return_value = TargetReturnValue.new
2223
+
2224
+ # $rule.start = the first token seen before matching
2225
+ return_value.start = @input.look
2226
+
2227
+ begin
2228
+ # at line 156:12: uri
2229
+ @state.following.push(TOKENS_FOLLOWING_uri_IN_target_1235)
2230
+ uri
2231
+ @state.following.pop
2232
+ # - - - - - - - rule clean up - - - - - - - -
2233
+ return_value.stop = @input.look(-1)
2234
+
2235
+ rescue ANTLR3::Error::RecognitionError => re
2236
+ report_error(re)
2237
+ recover(re)
2238
+
2239
+ ensure
2240
+ # -> uncomment the next line to manually enable rule tracing
2241
+ # trace_out( __method__, 34 )
2242
+
2243
+ end
2244
+
2245
+ return return_value
2246
+ end
2247
+
2248
+ SelfLocationReturnValue = define_return_scope
2249
+
2250
+ #
2251
+ # parser rule self_location
2252
+ #
2253
+ # (in OCCI.g)
2254
+ # 157:1: self_location : uri ;
2255
+ #
2256
+ def self_location
2257
+ # -> uncomment the next line to manually enable rule tracing
2258
+ # trace_in( __method__, 35 )
2259
+ return_value = SelfLocationReturnValue.new
2260
+
2261
+ # $rule.start = the first token seen before matching
2262
+ return_value.start = @input.look
2263
+
2264
+ begin
2265
+ # at line 157:18: uri
2266
+ @state.following.push(TOKENS_FOLLOWING_uri_IN_self_location_1243)
2267
+ uri
2268
+ @state.following.pop
2269
+ # - - - - - - - rule clean up - - - - - - - -
2270
+ return_value.stop = @input.look(-1)
2271
+
2272
+ rescue ANTLR3::Error::RecognitionError => re
2273
+ report_error(re)
2274
+ recover(re)
2275
+
2276
+ ensure
2277
+ # -> uncomment the next line to manually enable rule tracing
2278
+ # trace_out( __method__, 35 )
2279
+
2280
+ end
2281
+
2282
+ return return_value
2283
+ end
2284
+
2285
+ CategoryNameReturnValue = define_return_scope
2286
+
2287
+ #
2288
+ # parser rule category_name
2289
+ #
2290
+ # (in OCCI.g)
2291
+ # 158:1: category_name : uri ;
2292
+ #
2293
+ def category_name
2294
+ # -> uncomment the next line to manually enable rule tracing
2295
+ # trace_in( __method__, 36 )
2296
+ return_value = CategoryNameReturnValue.new
2297
+
2298
+ # $rule.start = the first token seen before matching
2299
+ return_value.start = @input.look
2300
+
2301
+ begin
2302
+ # at line 158:18: uri
2303
+ @state.following.push(TOKENS_FOLLOWING_uri_IN_category_name_1251)
2304
+ uri
2305
+ @state.following.pop
2306
+ # - - - - - - - rule clean up - - - - - - - -
2307
+ return_value.stop = @input.look(-1)
2308
+
2309
+ rescue ANTLR3::Error::RecognitionError => re
2310
+ report_error(re)
2311
+ recover(re)
2312
+
2313
+ ensure
2314
+ # -> uncomment the next line to manually enable rule tracing
2315
+ # trace_out( __method__, 36 )
2316
+
2317
+ end
2318
+
2319
+ return return_value
2320
+ end
2321
+
2322
+
2323
+ TOKENS_FOLLOWING_T__9_IN_category_42 = Set[10]
2324
+ TOKENS_FOLLOWING_T__10_IN_category_44 = Set[4, 5]
2325
+ TOKENS_FOLLOWING_category_value_IN_category_46 = Set[1]
2326
+ TOKENS_FOLLOWING_category_term_IN_category_value_78 = Set[11]
2327
+ TOKENS_FOLLOWING_category_scheme_IN_category_value_80 = Set[11]
2328
+ TOKENS_FOLLOWING_category_class_IN_category_value_82 = Set[1, 11]
2329
+ TOKENS_FOLLOWING_category_title_IN_category_value_84 = Set[1, 11]
2330
+ TOKENS_FOLLOWING_category_rel_IN_category_value_87 = Set[1, 11]
2331
+ TOKENS_FOLLOWING_category_location_IN_category_value_90 = Set[1, 11]
2332
+ TOKENS_FOLLOWING_category_attributes_IN_category_value_93 = Set[1, 11]
2333
+ TOKENS_FOLLOWING_category_actions_IN_category_value_96 = Set[1, 11]
2334
+ TOKENS_FOLLOWING_T__11_IN_category_value_99 = Set[1]
2335
+ TOKENS_FOLLOWING_WS_IN_category_term_131 = Set[4, 5]
2336
+ TOKENS_FOLLOWING_term_IN_category_term_134 = Set[1]
2337
+ TOKENS_FOLLOWING_T__11_IN_category_scheme_160 = Set[4, 12]
2338
+ TOKENS_FOLLOWING_WS_IN_category_scheme_162 = Set[12]
2339
+ TOKENS_FOLLOWING_T__12_IN_category_scheme_165 = Set[13]
2340
+ TOKENS_FOLLOWING_T__13_IN_category_scheme_167 = Set[14]
2341
+ TOKENS_FOLLOWING_T__14_IN_category_scheme_169 = Set[5, 6, 7, 10, 13, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42]
2342
+ TOKENS_FOLLOWING_scheme_IN_category_scheme_171 = Set[14]
2343
+ TOKENS_FOLLOWING_T__14_IN_category_scheme_173 = Set[1]
2344
+ TOKENS_FOLLOWING_T__11_IN_category_class_202 = Set[4, 15]
2345
+ TOKENS_FOLLOWING_WS_IN_category_class_204 = Set[15]
2346
+ TOKENS_FOLLOWING_T__15_IN_category_class_207 = Set[13]
2347
+ TOKENS_FOLLOWING_T__13_IN_category_class_209 = Set[14]
2348
+ TOKENS_FOLLOWING_T__14_IN_category_class_211 = Set[40, 41, 42]
2349
+ TOKENS_FOLLOWING_class_type_IN_category_class_213 = Set[14]
2350
+ TOKENS_FOLLOWING_T__14_IN_category_class_215 = Set[1]
2351
+ TOKENS_FOLLOWING_T__11_IN_category_title_240 = Set[4, 16]
2352
+ TOKENS_FOLLOWING_WS_IN_category_title_242 = Set[16]
2353
+ TOKENS_FOLLOWING_T__16_IN_category_title_245 = Set[13]
2354
+ TOKENS_FOLLOWING_T__13_IN_category_title_247 = Set[14]
2355
+ TOKENS_FOLLOWING_T__14_IN_category_title_249 = 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]
2356
+ TOKENS_FOLLOWING_title_IN_category_title_251 = Set[14]
2357
+ TOKENS_FOLLOWING_T__14_IN_category_title_253 = Set[1]
2358
+ TOKENS_FOLLOWING_T__11_IN_category_rel_280 = Set[4, 17]
2359
+ TOKENS_FOLLOWING_WS_IN_category_rel_282 = Set[17]
2360
+ TOKENS_FOLLOWING_T__17_IN_category_rel_285 = Set[13]
2361
+ TOKENS_FOLLOWING_T__13_IN_category_rel_287 = Set[14]
2362
+ TOKENS_FOLLOWING_T__14_IN_category_rel_289 = Set[5, 6, 7, 10, 13, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42]
2363
+ TOKENS_FOLLOWING_rel_IN_category_rel_291 = Set[14]
2364
+ TOKENS_FOLLOWING_T__14_IN_category_rel_293 = Set[1]
2365
+ TOKENS_FOLLOWING_T__11_IN_category_location_318 = Set[4, 18]
2366
+ TOKENS_FOLLOWING_WS_IN_category_location_320 = Set[18]
2367
+ TOKENS_FOLLOWING_T__18_IN_category_location_323 = Set[13]
2368
+ TOKENS_FOLLOWING_T__13_IN_category_location_325 = Set[14]
2369
+ TOKENS_FOLLOWING_T__14_IN_category_location_327 = Set[5, 6, 7, 10, 13, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42]
2370
+ TOKENS_FOLLOWING_location_IN_category_location_329 = Set[14]
2371
+ TOKENS_FOLLOWING_T__14_IN_category_location_331 = Set[1]
2372
+ TOKENS_FOLLOWING_T__11_IN_category_attributes_370 = Set[4, 19]
2373
+ TOKENS_FOLLOWING_WS_IN_category_attributes_372 = Set[19]
2374
+ TOKENS_FOLLOWING_T__19_IN_category_attributes_375 = Set[13]
2375
+ TOKENS_FOLLOWING_T__13_IN_category_attributes_377 = Set[14]
2376
+ TOKENS_FOLLOWING_T__14_IN_category_attributes_379 = Set[5]
2377
+ TOKENS_FOLLOWING_attribute_name_IN_category_attributes_383 = Set[4, 5, 14]
2378
+ TOKENS_FOLLOWING_WS_IN_category_attributes_398 = Set[5]
2379
+ TOKENS_FOLLOWING_attribute_name_IN_category_attributes_403 = Set[4, 5, 14]
2380
+ TOKENS_FOLLOWING_T__14_IN_category_attributes_411 = Set[1]
2381
+ TOKENS_FOLLOWING_T__11_IN_category_actions_441 = Set[4, 20]
2382
+ TOKENS_FOLLOWING_WS_IN_category_actions_443 = Set[20]
2383
+ TOKENS_FOLLOWING_T__20_IN_category_actions_446 = Set[13]
2384
+ TOKENS_FOLLOWING_T__13_IN_category_actions_448 = Set[14]
2385
+ TOKENS_FOLLOWING_T__14_IN_category_actions_450 = Set[5, 6, 7, 10, 13, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42]
2386
+ TOKENS_FOLLOWING_action_location_IN_category_actions_454 = Set[4, 5, 6, 7, 10, 13, 14, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42]
2387
+ TOKENS_FOLLOWING_WS_IN_category_actions_470 = Set[5, 6, 7, 10, 13, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42]
2388
+ TOKENS_FOLLOWING_action_location_IN_category_actions_475 = Set[4, 5, 6, 7, 10, 13, 14, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42]
2389
+ TOKENS_FOLLOWING_T__14_IN_category_actions_482 = Set[1]
2390
+ TOKENS_FOLLOWING_T__21_IN_link_499 = Set[10]
2391
+ TOKENS_FOLLOWING_T__10_IN_link_501 = Set[4, 22]
2392
+ TOKENS_FOLLOWING_link_value_IN_link_503 = Set[1]
2393
+ TOKENS_FOLLOWING_link_target_IN_link_value_525 = Set[11]
2394
+ TOKENS_FOLLOWING_link_rel_IN_link_value_534 = Set[11]
2395
+ TOKENS_FOLLOWING_link_self_IN_link_value_543 = Set[11]
2396
+ TOKENS_FOLLOWING_link_category_IN_link_value_553 = Set[11]
2397
+ TOKENS_FOLLOWING_link_attributes_IN_link_value_563 = Set[1, 11]
2398
+ TOKENS_FOLLOWING_T__11_IN_link_value_572 = Set[1]
2399
+ TOKENS_FOLLOWING_WS_IN_link_target_591 = Set[22]
2400
+ TOKENS_FOLLOWING_T__22_IN_link_target_594 = Set[5, 6, 7, 10, 13, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42]
2401
+ TOKENS_FOLLOWING_target_IN_link_target_596 = Set[23]
2402
+ TOKENS_FOLLOWING_T__23_IN_link_target_598 = Set[1]
2403
+ TOKENS_FOLLOWING_T__11_IN_link_rel_613 = Set[4, 17]
2404
+ TOKENS_FOLLOWING_WS_IN_link_rel_615 = Set[17]
2405
+ TOKENS_FOLLOWING_T__17_IN_link_rel_618 = Set[13]
2406
+ TOKENS_FOLLOWING_T__13_IN_link_rel_620 = Set[14]
2407
+ TOKENS_FOLLOWING_T__14_IN_link_rel_622 = Set[5, 6, 7, 10, 13, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42]
2408
+ TOKENS_FOLLOWING_rel_IN_link_rel_624 = Set[14]
2409
+ TOKENS_FOLLOWING_T__14_IN_link_rel_626 = Set[1]
2410
+ TOKENS_FOLLOWING_T__11_IN_link_self_641 = Set[4, 24]
2411
+ TOKENS_FOLLOWING_WS_IN_link_self_643 = Set[24]
2412
+ TOKENS_FOLLOWING_T__24_IN_link_self_646 = Set[13]
2413
+ TOKENS_FOLLOWING_T__13_IN_link_self_648 = Set[14]
2414
+ TOKENS_FOLLOWING_T__14_IN_link_self_650 = Set[5, 6, 7, 10, 13, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42]
2415
+ TOKENS_FOLLOWING_self_location_IN_link_self_652 = Set[14]
2416
+ TOKENS_FOLLOWING_T__14_IN_link_self_654 = Set[1]
2417
+ TOKENS_FOLLOWING_T__11_IN_link_category_669 = Set[4, 25]
2418
+ TOKENS_FOLLOWING_WS_IN_link_category_671 = Set[25]
2419
+ TOKENS_FOLLOWING_T__25_IN_link_category_674 = Set[13]
2420
+ TOKENS_FOLLOWING_T__13_IN_link_category_676 = Set[14]
2421
+ TOKENS_FOLLOWING_T__14_IN_link_category_678 = Set[5, 6, 7, 10, 13, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42]
2422
+ TOKENS_FOLLOWING_category_name_IN_link_category_680 = Set[14]
2423
+ TOKENS_FOLLOWING_T__14_IN_link_category_682 = Set[1]
2424
+ TOKENS_FOLLOWING_T__11_IN_link_attributes_708 = Set[4, 5]
2425
+ TOKENS_FOLLOWING_WS_IN_link_attributes_710 = Set[4, 5]
2426
+ TOKENS_FOLLOWING_attribute_IN_link_attributes_713 = Set[1, 11]
2427
+ TOKENS_FOLLOWING_T__26_IN_x_occi_attribute_734 = Set[10]
2428
+ TOKENS_FOLLOWING_T__10_IN_x_occi_attribute_736 = Set[4, 5]
2429
+ TOKENS_FOLLOWING_WS_IN_x_occi_attribute_738 = Set[4, 5]
2430
+ TOKENS_FOLLOWING_attribute_IN_x_occi_attribute_741 = Set[1, 11]
2431
+ TOKENS_FOLLOWING_T__11_IN_x_occi_attribute_743 = Set[1]
2432
+ TOKENS_FOLLOWING_T__27_IN_x_occi_location_763 = Set[10]
2433
+ TOKENS_FOLLOWING_T__10_IN_x_occi_location_765 = Set[4, 5, 6, 7, 10, 13, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42]
2434
+ TOKENS_FOLLOWING_WS_IN_x_occi_location_767 = Set[5, 6, 7, 10, 13, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42]
2435
+ TOKENS_FOLLOWING_location_IN_x_occi_location_770 = Set[1, 11]
2436
+ TOKENS_FOLLOWING_T__11_IN_x_occi_location_772 = Set[1]
2437
+ TOKENS_FOLLOWING_set_IN_uri_786 = Set[1, 5, 6, 7, 10, 13, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42]
2438
+ TOKENS_FOLLOWING_LOALPHA_IN_term_876 = Set[1, 5, 7, 30, 39]
2439
+ TOKENS_FOLLOWING_set_IN_term_878 = Set[1, 5, 7, 30, 39]
2440
+ TOKENS_FOLLOWING_uri_IN_scheme_911 = Set[1]
2441
+ TOKENS_FOLLOWING_set_IN_class_type_920 = Set[1]
2442
+ TOKENS_FOLLOWING_set_IN_title_941 = 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]
2443
+ TOKENS_FOLLOWING_uri_IN_rel_976 = Set[1]
2444
+ TOKENS_FOLLOWING_uri_IN_location_984 = Set[1]
2445
+ TOKENS_FOLLOWING_attribute_component_IN_attribute_1005 = Set[13, 33]
2446
+ TOKENS_FOLLOWING_T__33_IN_attribute_1016 = Set[5]
2447
+ TOKENS_FOLLOWING_attribute_component_IN_attribute_1020 = Set[13, 33]
2448
+ TOKENS_FOLLOWING_T__13_IN_attribute_1031 = Set[7, 14, 33]
2449
+ TOKENS_FOLLOWING_attribute_value_IN_attribute_1033 = Set[1]
2450
+ TOKENS_FOLLOWING_attribute_component_IN_attribute_name_1077 = Set[1, 33]
2451
+ TOKENS_FOLLOWING_T__33_IN_attribute_name_1088 = Set[5]
2452
+ TOKENS_FOLLOWING_attribute_component_IN_attribute_name_1092 = Set[1, 33]
2453
+ TOKENS_FOLLOWING_LOALPHA_IN_attribute_component_1110 = Set[1, 5, 7, 30, 39]
2454
+ TOKENS_FOLLOWING_set_IN_attribute_component_1112 = Set[1, 5, 7, 30, 39]
2455
+ TOKENS_FOLLOWING_string_IN_attribute_value_1142 = Set[1]
2456
+ TOKENS_FOLLOWING_number_IN_attribute_value_1148 = Set[1]
2457
+ TOKENS_FOLLOWING_T__14_IN_string_1163 = 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]
2458
+ TOKENS_FOLLOWING_set_IN_string_1165 = 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]
2459
+ TOKENS_FOLLOWING_T__14_IN_string_1193 = Set[1]
2460
+ TOKENS_FOLLOWING_DIGIT_IN_number_1205 = Set[1, 7, 33]
2461
+ TOKENS_FOLLOWING_T__33_IN_number_1210 = Set[7]
2462
+ TOKENS_FOLLOWING_DIGIT_IN_number_1212 = Set[1, 7]
2463
+ TOKENS_FOLLOWING_uri_IN_action_location_1226 = Set[1]
2464
+ TOKENS_FOLLOWING_uri_IN_target_1235 = Set[1]
2465
+ TOKENS_FOLLOWING_uri_IN_self_location_1243 = Set[1]
2466
+ TOKENS_FOLLOWING_uri_IN_category_name_1251 = Set[1]
2467
+
2468
+ end # class Parser < ANTLR3::Parser
2469
+
2470
+ at_exit { Parser.main(ARGV) } if __FILE__ == $0
2471
+ end
2472
+