occi 2.5.19 → 3.0.0.beta.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (110) hide show
  1. data/.gitignore +4 -0
  2. data/.travis.yml +3 -1
  3. data/AUTHORS +4 -3
  4. data/Gemfile +9 -0
  5. data/Gemfile.lock +64 -21
  6. data/README.md +19 -14
  7. data/Rakefile +12 -8
  8. data/Test Results - discovery_interface.html +862 -0
  9. data/bin/occi +333 -83
  10. data/examples/dsl_example.rb +6 -6
  11. data/examples/x509auth_example.rb +6 -6
  12. data/features/common/step_definitions/common_steps.rb +32 -0
  13. data/features/occi/core/create/create.feature +17 -0
  14. data/features/occi/core/create/step_definitions/create_steps.rb +0 -0
  15. data/features/occi/core/delete/delete.feature +14 -0
  16. data/features/occi/core/delete/step_definitions/delete_steps.rb +0 -0
  17. data/features/occi/core/discovery_interface/discovery_interface.feature +35 -0
  18. data/features/occi/core/discovery_interface/step_definitions/discovery_interface_steps.rb +19 -0
  19. data/features/occi/core/miscellaneous/miscellaneous.feature +14 -0
  20. data/features/occi/core/miscellaneous/step_definitions/miscellaneous_steps.rb +0 -0
  21. data/features/occi/core/read/read.feature +14 -0
  22. data/features/occi/core/read/step_definitions/read_steps.rb +0 -0
  23. data/features/occi/core/update/step_definitions/update_steps.rb +0 -0
  24. data/features/occi/core/update/update.feature +14 -0
  25. data/features/occi/infrastructure/create/create.feature +14 -0
  26. data/features/occi/infrastructure/create/step_definitions/create_steps.rb +0 -0
  27. data/features/support/env.rb +4 -0
  28. data/lib/occi.rb +29 -3
  29. data/lib/occi/api/client/client_amqp.rb +756 -0
  30. data/lib/occi/api/client/client_http.rb +922 -0
  31. data/lib/occi/api/client/http/httparty_fix.rb +53 -0
  32. data/lib/occi/api/client/http/net_http_fix.rb +46 -0
  33. data/lib/occi/api/dsl.rb +77 -73
  34. data/lib/occi/bin/helpers.rb +91 -0
  35. data/lib/occi/bin/occi_opts.rb +251 -0
  36. data/lib/occi/bin/resource_output_factory.rb +90 -0
  37. data/lib/occi/bin/templates/compute.erb +15 -0
  38. data/lib/occi/bin/templates/network.erb +11 -0
  39. data/lib/occi/bin/templates/os_tpl.erb +9 -0
  40. data/lib/occi/bin/templates/resource_tpl.erb +9 -0
  41. data/lib/occi/bin/templates/storage.erb +10 -0
  42. data/lib/occi/collection.rb +122 -25
  43. data/lib/occi/core.rb +18 -9
  44. data/lib/occi/core/action.rb +20 -4
  45. data/lib/occi/core/action_instance.rb +24 -0
  46. data/lib/occi/core/actions.rb +22 -0
  47. data/lib/occi/core/attribute_properties.rb +33 -84
  48. data/lib/occi/core/attributes.rb +32 -14
  49. data/lib/occi/core/categories.rb +46 -0
  50. data/lib/occi/core/category.rb +94 -20
  51. data/lib/occi/core/entities.rb +50 -0
  52. data/lib/occi/core/entity.rb +130 -89
  53. data/lib/occi/core/kind.rb +28 -35
  54. data/lib/occi/core/kinds.rb +22 -0
  55. data/lib/occi/core/link.rb +43 -40
  56. data/lib/occi/core/links.rb +34 -0
  57. data/lib/occi/core/mixin.rb +28 -23
  58. data/lib/occi/core/mixins.rb +22 -0
  59. data/lib/occi/core/related.rb +20 -0
  60. data/lib/occi/core/resource.rb +40 -40
  61. data/lib/occi/core/resources.rb +14 -0
  62. data/lib/occi/infrastructure.rb +27 -0
  63. data/lib/occi/infrastructure/compute.rb +159 -0
  64. data/lib/occi/infrastructure/network.rb +131 -0
  65. data/lib/occi/infrastructure/network/ipnetwork.rb +34 -0
  66. data/lib/occi/infrastructure/networkinterface.rb +124 -0
  67. data/lib/occi/infrastructure/networkinterface/ipnetworkinterface.rb +34 -0
  68. data/lib/occi/infrastructure/os_tpl.rb +19 -0
  69. data/lib/occi/infrastructure/resource_tpl.rb +19 -0
  70. data/lib/occi/infrastructure/storage.rb +96 -0
  71. data/lib/occi/infrastructure/storagelink.rb +73 -0
  72. data/lib/occi/log.rb +6 -2
  73. data/lib/occi/model.rb +38 -70
  74. data/lib/occi/parser.rb +108 -88
  75. data/lib/occi/version.rb +2 -2
  76. data/lib/occiantlr/OCCIANTLR.g +6 -5
  77. data/lib/occiantlr/OCCIANTLRLexer.rb +52 -52
  78. data/lib/occiantlr/OCCIANTLRParser.rb +678 -569
  79. data/lib/occiantlr/README.md +1 -1
  80. data/occi.gemspec +2 -1
  81. data/spec/cassettes/client_http_text_plain.yml +1066 -0
  82. data/spec/occi/api/client/client_amqp_spec.rb +148 -0
  83. data/spec/occi/api/client/client_http_0.5_spec.rb +292 -0
  84. data/spec/occi/api/client/client_http_spec.rb +259 -0
  85. data/spec/occi/api/dsl_spec.rb +0 -0
  86. data/spec/occi/collection_spec.rb +23 -10
  87. data/spec/occi/core/categories_spec.rb +30 -0
  88. data/spec/occi/core/category_spec.rb +41 -0
  89. data/spec/occi/core/entity_spec.rb +52 -0
  90. data/spec/occi/core/resource_spec.rb +21 -0
  91. data/spec/occi/infrastructure/compute_spec.rb +32 -0
  92. data/spec/occi/log_spec.rb +10 -10
  93. data/spec/occi/model_spec.rb +24 -24
  94. data/spec/occi/parser_spec.rb +89 -39
  95. data/spec/occi/test.json +22 -58
  96. data/spec/occiantlr/parser_spec.rb +5 -7
  97. data/spec/spec_helper.rb +13 -3
  98. metadata +116 -19
  99. data/etc/model/infrastructure/compute.json +0 -108
  100. data/etc/model/infrastructure/ipnetwork.json +0 -40
  101. data/etc/model/infrastructure/ipnetworkinterface.json +0 -40
  102. data/etc/model/infrastructure/network.json +0 -55
  103. data/etc/model/infrastructure/networkinterface.json +0 -38
  104. data/etc/model/infrastructure/os_template.json +0 -9
  105. data/etc/model/infrastructure/resource_template.json +0 -9
  106. data/etc/model/infrastructure/storage.json +0 -72
  107. data/etc/model/infrastructure/storagelink.json +0 -38
  108. data/lib/occi/api/client.rb +0 -596
  109. data/lib/occi/client/occiopts.rb +0 -146
  110. data/spec/occi/client_spec.rb +0 -12
@@ -5,7 +5,7 @@
5
5
  # Generated using ANTLR version: 3.2.1-SNAPSHOT Jul 31, 2010 19:34:52
6
6
  # Ruby runtime library version: 1.8.11
7
7
  # Input grammar file: OCCIANTLR.g
8
- # Generated at: 2012-09-10 16:19:48
8
+ # Generated at: 2012-10-05 18:10:39
9
9
  #
10
10
 
11
11
  # ~~~> start load path setup
@@ -62,7 +62,7 @@ end
62
62
 
63
63
  require 'uri'
64
64
  require 'hashie'
65
- ATTRIBUTE = { :Mutable => true, :Required => false, :Type => "string" }
65
+ ATTRIBUTE = { :mutable => true, :required => false, :type => "string" }
66
66
 
67
67
  # - - - - - - end action @parser::header - - - - - - -
68
68
 
@@ -935,7 +935,7 @@ module OCCIANTLR
935
935
 
936
936
  end
937
937
  # --> action
938
- hash[:kind] = link_category20
938
+ hash[:categories] = link_category20
939
939
  # <-- action
940
940
  @state.following.push( TOKENS_FOLLOWING_link_attributes_IN_link_value_558 )
941
941
  link_attributes21 = link_attributes
@@ -1131,18 +1131,21 @@ module OCCIANTLR
1131
1131
  # parser rule link_category
1132
1132
  #
1133
1133
  # (in OCCIANTLR.g)
1134
- # 83:2: link_category returns [value] : SEMICOLON ( WS )? CATEGORY EQUALS QUOTE uri QUOTE ;
1134
+ # 83:2: link_category returns [array] : SEMICOLON ( WS )? CATEGORY EQUALS QUOTE kind= uri ( WS mixin= uri )* QUOTE ;
1135
1135
  #
1136
1136
  def link_category
1137
1137
  # -> uncomment the next line to manually enable rule tracing
1138
1138
  # trace_in( __method__, 16 )
1139
- value = nil
1140
- uri25 = nil
1139
+ array = nil
1140
+ kind = nil
1141
+ mixin = nil
1142
+ # - - - - @init action - - - -
1143
+ array = Array.new
1141
1144
 
1142
1145
  begin
1143
- # at line 83:35: SEMICOLON ( WS )? CATEGORY EQUALS QUOTE uri QUOTE
1144
- match( SEMICOLON, TOKENS_FOLLOWING_SEMICOLON_IN_link_category_664 )
1145
- # at line 83:45: ( WS )?
1146
+ # at line 84:36: SEMICOLON ( WS )? CATEGORY EQUALS QUOTE kind= uri ( WS mixin= uri )* QUOTE
1147
+ match( SEMICOLON, TOKENS_FOLLOWING_SEMICOLON_IN_link_category_702 )
1148
+ # at line 84:46: ( WS )?
1146
1149
  alt_23 = 2
1147
1150
  look_23_0 = @input.peek( 1 )
1148
1151
 
@@ -1151,20 +1154,44 @@ module OCCIANTLR
1151
1154
  end
1152
1155
  case alt_23
1153
1156
  when 1
1154
- # at line 83:45: WS
1155
- match( WS, TOKENS_FOLLOWING_WS_IN_link_category_666 )
1157
+ # at line 84:46: WS
1158
+ match( WS, TOKENS_FOLLOWING_WS_IN_link_category_704 )
1156
1159
 
1157
1160
  end
1158
- match( CATEGORY, TOKENS_FOLLOWING_CATEGORY_IN_link_category_669 )
1159
- match( EQUALS, TOKENS_FOLLOWING_EQUALS_IN_link_category_671 )
1160
- match( QUOTE, TOKENS_FOLLOWING_QUOTE_IN_link_category_673 )
1161
- @state.following.push( TOKENS_FOLLOWING_uri_IN_link_category_675 )
1162
- uri25 = uri
1161
+ match( CATEGORY, TOKENS_FOLLOWING_CATEGORY_IN_link_category_707 )
1162
+ match( EQUALS, TOKENS_FOLLOWING_EQUALS_IN_link_category_709 )
1163
+ match( QUOTE, TOKENS_FOLLOWING_QUOTE_IN_link_category_711 )
1164
+ @state.following.push( TOKENS_FOLLOWING_uri_IN_link_category_715 )
1165
+ kind = uri
1163
1166
  @state.following.pop
1164
- match( QUOTE, TOKENS_FOLLOWING_QUOTE_IN_link_category_677 )
1165
1167
  # --> action
1166
- value = ( uri25 && @input.to_s( uri25.start, uri25.stop ) )
1168
+ array << ( kind && @input.to_s( kind.start, kind.stop ) )
1167
1169
  # <-- action
1170
+ # at line 84:105: ( WS mixin= uri )*
1171
+ while true # decision 24
1172
+ alt_24 = 2
1173
+ look_24_0 = @input.peek( 1 )
1174
+
1175
+ if ( look_24_0 == WS )
1176
+ alt_24 = 1
1177
+
1178
+ end
1179
+ case alt_24
1180
+ when 1
1181
+ # at line 84:106: WS mixin= uri
1182
+ match( WS, TOKENS_FOLLOWING_WS_IN_link_category_720 )
1183
+ @state.following.push( TOKENS_FOLLOWING_uri_IN_link_category_724 )
1184
+ mixin = uri
1185
+ @state.following.pop
1186
+ # --> action
1187
+ array << ( mixin && @input.to_s( mixin.start, mixin.stop ) )
1188
+ # <-- action
1189
+
1190
+ else
1191
+ break # out of loop for decision 24
1192
+ end
1193
+ end # loop for decision 24
1194
+ match( QUOTE, TOKENS_FOLLOWING_QUOTE_IN_link_category_730 )
1168
1195
 
1169
1196
  rescue ANTLR3::Error::RecognitionError => re
1170
1197
  report_error(re)
@@ -1176,7 +1203,7 @@ module OCCIANTLR
1176
1203
 
1177
1204
  end
1178
1205
 
1179
- return value
1206
+ return array
1180
1207
  end
1181
1208
 
1182
1209
 
@@ -1184,60 +1211,60 @@ module OCCIANTLR
1184
1211
  # parser rule link_attributes
1185
1212
  #
1186
1213
  # (in OCCIANTLR.g)
1187
- # 84:2: link_attributes returns [hash] : ( SEMICOLON ( WS )? attribute )* ;
1214
+ # 85:2: link_attributes returns [hash] : ( SEMICOLON ( WS )? attribute )* ;
1188
1215
  #
1189
1216
  def link_attributes
1190
1217
  # -> uncomment the next line to manually enable rule tracing
1191
1218
  # trace_in( __method__, 17 )
1192
1219
  hash = nil
1193
- attribute26 = nil
1220
+ attribute25 = nil
1194
1221
  # - - - - @init action - - - -
1195
- hash = Hashie::Mash.new
1222
+ hash = Hashie::Mash.new
1196
1223
 
1197
1224
  begin
1198
- # at line 85:8: ( SEMICOLON ( WS )? attribute )*
1199
- # at line 85:8: ( SEMICOLON ( WS )? attribute )*
1200
- while true # decision 25
1201
- alt_25 = 2
1202
- look_25_0 = @input.peek( 1 )
1225
+ # at line 86:8: ( SEMICOLON ( WS )? attribute )*
1226
+ # at line 86:8: ( SEMICOLON ( WS )? attribute )*
1227
+ while true # decision 26
1228
+ alt_26 = 2
1229
+ look_26_0 = @input.peek( 1 )
1203
1230
 
1204
- if ( look_25_0 == SEMICOLON )
1205
- look_25_1 = @input.peek( 2 )
1231
+ if ( look_26_0 == SEMICOLON )
1232
+ look_26_1 = @input.peek( 2 )
1206
1233
 
1207
- if ( look_25_1.between?( WS, SCHEME ) || look_25_1.between?( CLASS, ACTIONS ) || look_25_1.between?( SELF, CATEGORY ) || look_25_1 == LOALPHA || look_25_1.between?( KIND, ACTION ) || look_25_1.between?( LINK, TERM ) )
1208
- alt_25 = 1
1234
+ if ( look_26_1.between?( WS, SCHEME ) || look_26_1.between?( CLASS, ACTIONS ) || look_26_1.between?( SELF, CATEGORY ) || look_26_1 == LOALPHA || look_26_1.between?( KIND, ACTION ) || look_26_1.between?( LINK, TERM ) )
1235
+ alt_26 = 1
1209
1236
 
1210
1237
  end
1211
1238
 
1212
1239
  end
1213
- case alt_25
1240
+ case alt_26
1214
1241
  when 1
1215
- # at line 85:9: SEMICOLON ( WS )? attribute
1216
- match( SEMICOLON, TOKENS_FOLLOWING_SEMICOLON_IN_link_attributes_703 )
1217
- # at line 85:19: ( WS )?
1218
- alt_24 = 2
1219
- look_24_0 = @input.peek( 1 )
1220
-
1221
- if ( look_24_0 == WS )
1222
- alt_24 = 1
1242
+ # at line 86:9: SEMICOLON ( WS )? attribute
1243
+ match( SEMICOLON, TOKENS_FOLLOWING_SEMICOLON_IN_link_attributes_754 )
1244
+ # at line 86:19: ( WS )?
1245
+ alt_25 = 2
1246
+ look_25_0 = @input.peek( 1 )
1247
+
1248
+ if ( look_25_0 == WS )
1249
+ alt_25 = 1
1223
1250
  end
1224
- case alt_24
1251
+ case alt_25
1225
1252
  when 1
1226
- # at line 85:19: WS
1227
- match( WS, TOKENS_FOLLOWING_WS_IN_link_attributes_705 )
1253
+ # at line 86:19: WS
1254
+ match( WS, TOKENS_FOLLOWING_WS_IN_link_attributes_756 )
1228
1255
 
1229
1256
  end
1230
- @state.following.push( TOKENS_FOLLOWING_attribute_IN_link_attributes_708 )
1231
- attribute26 = attribute
1257
+ @state.following.push( TOKENS_FOLLOWING_attribute_IN_link_attributes_759 )
1258
+ attribute25 = attribute
1232
1259
  @state.following.pop
1233
1260
  # --> action
1234
- hash.merge!(attribute26)
1261
+ hash.merge!(attribute25)
1235
1262
  # <-- action
1236
1263
 
1237
1264
  else
1238
- break # out of loop for decision 25
1265
+ break # out of loop for decision 26
1239
1266
  end
1240
- end # loop for decision 25
1267
+ end # loop for decision 26
1241
1268
 
1242
1269
  rescue ANTLR3::Error::RecognitionError => re
1243
1270
  report_error(re)
@@ -1257,49 +1284,49 @@ module OCCIANTLR
1257
1284
  # parser rule x_occi_attribute
1258
1285
  #
1259
1286
  # (in OCCIANTLR.g)
1260
- # 97:1: x_occi_attribute returns [hash] : X_OCCI_ATTRIBUTE_KEY COLON ( WS )? attribute ( SEMICOLON )? ;
1287
+ # 98:1: x_occi_attribute returns [hash] : X_OCCI_ATTRIBUTE_KEY COLON ( WS )? attribute ( SEMICOLON )? ;
1261
1288
  #
1262
1289
  def x_occi_attribute
1263
1290
  # -> uncomment the next line to manually enable rule tracing
1264
1291
  # trace_in( __method__, 18 )
1265
1292
  hash = nil
1266
- attribute27 = nil
1293
+ attribute26 = nil
1267
1294
 
1268
1295
  begin
1269
- # at line 98:4: X_OCCI_ATTRIBUTE_KEY COLON ( WS )? attribute ( SEMICOLON )?
1270
- match( X_OCCI_ATTRIBUTE_KEY, TOKENS_FOLLOWING_X_OCCI_ATTRIBUTE_KEY_IN_x_occi_attribute_729 )
1271
- match( COLON, TOKENS_FOLLOWING_COLON_IN_x_occi_attribute_731 )
1272
- # at line 98:31: ( WS )?
1273
- alt_26 = 2
1274
- look_26_0 = @input.peek( 1 )
1296
+ # at line 99:4: X_OCCI_ATTRIBUTE_KEY COLON ( WS )? attribute ( SEMICOLON )?
1297
+ match( X_OCCI_ATTRIBUTE_KEY, TOKENS_FOLLOWING_X_OCCI_ATTRIBUTE_KEY_IN_x_occi_attribute_780 )
1298
+ match( COLON, TOKENS_FOLLOWING_COLON_IN_x_occi_attribute_782 )
1299
+ # at line 99:31: ( WS )?
1300
+ alt_27 = 2
1301
+ look_27_0 = @input.peek( 1 )
1275
1302
 
1276
- if ( look_26_0 == WS )
1277
- alt_26 = 1
1303
+ if ( look_27_0 == WS )
1304
+ alt_27 = 1
1278
1305
  end
1279
- case alt_26
1306
+ case alt_27
1280
1307
  when 1
1281
- # at line 98:31: WS
1282
- match( WS, TOKENS_FOLLOWING_WS_IN_x_occi_attribute_733 )
1308
+ # at line 99:31: WS
1309
+ match( WS, TOKENS_FOLLOWING_WS_IN_x_occi_attribute_784 )
1283
1310
 
1284
1311
  end
1285
- @state.following.push( TOKENS_FOLLOWING_attribute_IN_x_occi_attribute_736 )
1286
- attribute27 = attribute
1312
+ @state.following.push( TOKENS_FOLLOWING_attribute_IN_x_occi_attribute_787 )
1313
+ attribute26 = attribute
1287
1314
  @state.following.pop
1288
- # at line 98:45: ( SEMICOLON )?
1289
- alt_27 = 2
1290
- look_27_0 = @input.peek( 1 )
1315
+ # at line 99:45: ( SEMICOLON )?
1316
+ alt_28 = 2
1317
+ look_28_0 = @input.peek( 1 )
1291
1318
 
1292
- if ( look_27_0 == SEMICOLON )
1293
- alt_27 = 1
1319
+ if ( look_28_0 == SEMICOLON )
1320
+ alt_28 = 1
1294
1321
  end
1295
- case alt_27
1322
+ case alt_28
1296
1323
  when 1
1297
- # at line 98:45: SEMICOLON
1298
- match( SEMICOLON, TOKENS_FOLLOWING_SEMICOLON_IN_x_occi_attribute_738 )
1324
+ # at line 99:45: SEMICOLON
1325
+ match( SEMICOLON, TOKENS_FOLLOWING_SEMICOLON_IN_x_occi_attribute_789 )
1299
1326
 
1300
1327
  end
1301
1328
  # --> action
1302
- hash = attribute27
1329
+ hash = attribute26
1303
1330
  # <-- action
1304
1331
 
1305
1332
  rescue ANTLR3::Error::RecognitionError => re
@@ -1320,49 +1347,49 @@ module OCCIANTLR
1320
1347
  # parser rule x_occi_location
1321
1348
  #
1322
1349
  # (in OCCIANTLR.g)
1323
- # 106:1: x_occi_location returns [location] : X_OCCI_LOCATION_KEY COLON ( WS )? uri ( SEMICOLON )? ;
1350
+ # 107:1: x_occi_location returns [location] : X_OCCI_LOCATION_KEY COLON ( WS )? uri ( SEMICOLON )? ;
1324
1351
  #
1325
1352
  def x_occi_location
1326
1353
  # -> uncomment the next line to manually enable rule tracing
1327
1354
  # trace_in( __method__, 19 )
1328
1355
  location = nil
1329
- uri28 = nil
1356
+ uri27 = nil
1330
1357
 
1331
1358
  begin
1332
- # at line 107:4: X_OCCI_LOCATION_KEY COLON ( WS )? uri ( SEMICOLON )?
1333
- match( X_OCCI_LOCATION_KEY, TOKENS_FOLLOWING_X_OCCI_LOCATION_KEY_IN_x_occi_location_758 )
1334
- match( COLON, TOKENS_FOLLOWING_COLON_IN_x_occi_location_760 )
1335
- # at line 107:30: ( WS )?
1336
- alt_28 = 2
1337
- look_28_0 = @input.peek( 1 )
1359
+ # at line 108:4: X_OCCI_LOCATION_KEY COLON ( WS )? uri ( SEMICOLON )?
1360
+ match( X_OCCI_LOCATION_KEY, TOKENS_FOLLOWING_X_OCCI_LOCATION_KEY_IN_x_occi_location_809 )
1361
+ match( COLON, TOKENS_FOLLOWING_COLON_IN_x_occi_location_811 )
1362
+ # at line 108:30: ( WS )?
1363
+ alt_29 = 2
1364
+ look_29_0 = @input.peek( 1 )
1338
1365
 
1339
- if ( look_28_0 == WS )
1340
- alt_28 = 1
1366
+ if ( look_29_0 == WS )
1367
+ alt_29 = 1
1341
1368
  end
1342
- case alt_28
1369
+ case alt_29
1343
1370
  when 1
1344
- # at line 107:30: WS
1345
- match( WS, TOKENS_FOLLOWING_WS_IN_x_occi_location_762 )
1371
+ # at line 108:30: WS
1372
+ match( WS, TOKENS_FOLLOWING_WS_IN_x_occi_location_813 )
1346
1373
 
1347
1374
  end
1348
- @state.following.push( TOKENS_FOLLOWING_uri_IN_x_occi_location_765 )
1349
- uri28 = uri
1375
+ @state.following.push( TOKENS_FOLLOWING_uri_IN_x_occi_location_816 )
1376
+ uri27 = uri
1350
1377
  @state.following.pop
1351
- # at line 107:38: ( SEMICOLON )?
1352
- alt_29 = 2
1353
- look_29_0 = @input.peek( 1 )
1378
+ # at line 108:38: ( SEMICOLON )?
1379
+ alt_30 = 2
1380
+ look_30_0 = @input.peek( 1 )
1354
1381
 
1355
- if ( look_29_0 == SEMICOLON )
1356
- alt_29 = 1
1382
+ if ( look_30_0 == SEMICOLON )
1383
+ alt_30 = 1
1357
1384
  end
1358
- case alt_29
1385
+ case alt_30
1359
1386
  when 1
1360
- # at line 107:38: SEMICOLON
1361
- match( SEMICOLON, TOKENS_FOLLOWING_SEMICOLON_IN_x_occi_location_767 )
1387
+ # at line 108:38: SEMICOLON
1388
+ match( SEMICOLON, TOKENS_FOLLOWING_SEMICOLON_IN_x_occi_location_818 )
1362
1389
 
1363
1390
  end
1364
1391
  # --> action
1365
- location = URI.parse(( uri28 && @input.to_s( uri28.start, uri28.stop ) ))
1392
+ location = URI.parse(( uri27 && @input.to_s( uri27.start, uri27.stop ) ))
1366
1393
  # <-- action
1367
1394
 
1368
1395
  rescue ANTLR3::Error::RecognitionError => re
@@ -1384,7 +1411,7 @@ module OCCIANTLR
1384
1411
  # parser rule uri
1385
1412
  #
1386
1413
  # (in OCCIANTLR.g)
1387
- # 109:1: uri : ( LOALPHA | UPALPHA | DIGIT | AT | COLON | PERCENT | UNDERSCORE | BACKSLASH | PLUS | DOT | TILDE | HASH | QUESTION | AMPERSAND | SLASH | EQUALS | DASH | X_OCCI_ATTRIBUTE_KEY | X_OCCI_LOCATION_KEY | reserved_words )+ ;
1414
+ # 110:1: uri : ( LOALPHA | UPALPHA | DIGIT | AT | COLON | PERCENT | UNDERSCORE | BACKSLASH | PLUS | DOT | TILDE | HASH | QUESTION | AMPERSAND | SLASH | EQUALS | DASH | X_OCCI_ATTRIBUTE_KEY | X_OCCI_LOCATION_KEY | reserved_words )+ ;
1388
1415
  #
1389
1416
  def uri
1390
1417
  # -> uncomment the next line to manually enable rule tracing
@@ -1395,124 +1422,124 @@ module OCCIANTLR
1395
1422
  return_value.start = @input.look
1396
1423
 
1397
1424
  begin
1398
- # at line 109:9: ( LOALPHA | UPALPHA | DIGIT | AT | COLON | PERCENT | UNDERSCORE | BACKSLASH | PLUS | DOT | TILDE | HASH | QUESTION | AMPERSAND | SLASH | EQUALS | DASH | X_OCCI_ATTRIBUTE_KEY | X_OCCI_LOCATION_KEY | reserved_words )+
1399
- # at file 109:9: ( LOALPHA | UPALPHA | DIGIT | AT | COLON | PERCENT | UNDERSCORE | BACKSLASH | PLUS | DOT | TILDE | HASH | QUESTION | AMPERSAND | SLASH | EQUALS | DASH | X_OCCI_ATTRIBUTE_KEY | X_OCCI_LOCATION_KEY | reserved_words )+
1400
- match_count_30 = 0
1425
+ # at line 110:9: ( LOALPHA | UPALPHA | DIGIT | AT | COLON | PERCENT | UNDERSCORE | BACKSLASH | PLUS | DOT | TILDE | HASH | QUESTION | AMPERSAND | SLASH | EQUALS | DASH | X_OCCI_ATTRIBUTE_KEY | X_OCCI_LOCATION_KEY | reserved_words )+
1426
+ # at file 110:9: ( LOALPHA | UPALPHA | DIGIT | AT | COLON | PERCENT | UNDERSCORE | BACKSLASH | PLUS | DOT | TILDE | HASH | QUESTION | AMPERSAND | SLASH | EQUALS | DASH | X_OCCI_ATTRIBUTE_KEY | X_OCCI_LOCATION_KEY | reserved_words )+
1427
+ match_count_31 = 0
1401
1428
  while true
1402
- alt_30 = 21
1403
- case look_30 = @input.peek( 1 )
1404
- when LOALPHA then alt_30 = 1
1405
- when UPALPHA then alt_30 = 2
1406
- when DIGIT then alt_30 = 3
1407
- when AT then alt_30 = 4
1408
- when COLON then alt_30 = 5
1409
- when PERCENT then alt_30 = 6
1410
- when UNDERSCORE then alt_30 = 7
1411
- when BACKSLASH then alt_30 = 8
1412
- when PLUS then alt_30 = 9
1413
- when DOT then alt_30 = 10
1414
- when TILDE then alt_30 = 11
1415
- when HASH then alt_30 = 12
1416
- when QUESTION then alt_30 = 13
1417
- when AMPERSAND then alt_30 = 14
1418
- when SLASH then alt_30 = 15
1419
- when EQUALS then alt_30 = 16
1420
- when DASH then alt_30 = 17
1421
- when X_OCCI_ATTRIBUTE_KEY then alt_30 = 18
1422
- when X_OCCI_LOCATION_KEY then alt_30 = 19
1423
- when SCHEME, CLASS, TITLE, REL, LOCATION, ATTRIBUTES, ACTIONS, SELF, CATEGORY, KIND, MIXIN, ACTION, LINK, TERM then alt_30 = 20
1429
+ alt_31 = 21
1430
+ case look_31 = @input.peek( 1 )
1431
+ when LOALPHA then alt_31 = 1
1432
+ when UPALPHA then alt_31 = 2
1433
+ when DIGIT then alt_31 = 3
1434
+ when AT then alt_31 = 4
1435
+ when COLON then alt_31 = 5
1436
+ when PERCENT then alt_31 = 6
1437
+ when UNDERSCORE then alt_31 = 7
1438
+ when BACKSLASH then alt_31 = 8
1439
+ when PLUS then alt_31 = 9
1440
+ when DOT then alt_31 = 10
1441
+ when TILDE then alt_31 = 11
1442
+ when HASH then alt_31 = 12
1443
+ when QUESTION then alt_31 = 13
1444
+ when AMPERSAND then alt_31 = 14
1445
+ when SLASH then alt_31 = 15
1446
+ when EQUALS then alt_31 = 16
1447
+ when DASH then alt_31 = 17
1448
+ when X_OCCI_ATTRIBUTE_KEY then alt_31 = 18
1449
+ when X_OCCI_LOCATION_KEY then alt_31 = 19
1450
+ when SCHEME, CLASS, TITLE, REL, LOCATION, ATTRIBUTES, ACTIONS, SELF, CATEGORY, KIND, MIXIN, ACTION, LINK, TERM then alt_31 = 20
1424
1451
  end
1425
- case alt_30
1452
+ case alt_31
1426
1453
  when 1
1427
- # at line 109:11: LOALPHA
1428
- match( LOALPHA, TOKENS_FOLLOWING_LOALPHA_IN_uri_783 )
1454
+ # at line 110:11: LOALPHA
1455
+ match( LOALPHA, TOKENS_FOLLOWING_LOALPHA_IN_uri_834 )
1429
1456
 
1430
1457
  when 2
1431
- # at line 109:21: UPALPHA
1432
- match( UPALPHA, TOKENS_FOLLOWING_UPALPHA_IN_uri_787 )
1458
+ # at line 110:21: UPALPHA
1459
+ match( UPALPHA, TOKENS_FOLLOWING_UPALPHA_IN_uri_838 )
1433
1460
 
1434
1461
  when 3
1435
- # at line 109:31: DIGIT
1436
- match( DIGIT, TOKENS_FOLLOWING_DIGIT_IN_uri_791 )
1462
+ # at line 110:31: DIGIT
1463
+ match( DIGIT, TOKENS_FOLLOWING_DIGIT_IN_uri_842 )
1437
1464
 
1438
1465
  when 4
1439
- # at line 109:39: AT
1440
- match( AT, TOKENS_FOLLOWING_AT_IN_uri_795 )
1466
+ # at line 110:39: AT
1467
+ match( AT, TOKENS_FOLLOWING_AT_IN_uri_846 )
1441
1468
 
1442
1469
  when 5
1443
- # at line 109:44: COLON
1444
- match( COLON, TOKENS_FOLLOWING_COLON_IN_uri_799 )
1470
+ # at line 110:44: COLON
1471
+ match( COLON, TOKENS_FOLLOWING_COLON_IN_uri_850 )
1445
1472
 
1446
1473
  when 6
1447
- # at line 109:52: PERCENT
1448
- match( PERCENT, TOKENS_FOLLOWING_PERCENT_IN_uri_803 )
1474
+ # at line 110:52: PERCENT
1475
+ match( PERCENT, TOKENS_FOLLOWING_PERCENT_IN_uri_854 )
1449
1476
 
1450
1477
  when 7
1451
- # at line 109:62: UNDERSCORE
1452
- match( UNDERSCORE, TOKENS_FOLLOWING_UNDERSCORE_IN_uri_807 )
1478
+ # at line 110:62: UNDERSCORE
1479
+ match( UNDERSCORE, TOKENS_FOLLOWING_UNDERSCORE_IN_uri_858 )
1453
1480
 
1454
1481
  when 8
1455
- # at line 109:75: BACKSLASH
1456
- match( BACKSLASH, TOKENS_FOLLOWING_BACKSLASH_IN_uri_811 )
1482
+ # at line 110:75: BACKSLASH
1483
+ match( BACKSLASH, TOKENS_FOLLOWING_BACKSLASH_IN_uri_862 )
1457
1484
 
1458
1485
  when 9
1459
- # at line 109:87: PLUS
1460
- match( PLUS, TOKENS_FOLLOWING_PLUS_IN_uri_815 )
1486
+ # at line 110:87: PLUS
1487
+ match( PLUS, TOKENS_FOLLOWING_PLUS_IN_uri_866 )
1461
1488
 
1462
1489
  when 10
1463
- # at line 109:94: DOT
1464
- match( DOT, TOKENS_FOLLOWING_DOT_IN_uri_819 )
1490
+ # at line 110:94: DOT
1491
+ match( DOT, TOKENS_FOLLOWING_DOT_IN_uri_870 )
1465
1492
 
1466
1493
  when 11
1467
- # at line 109:100: TILDE
1468
- match( TILDE, TOKENS_FOLLOWING_TILDE_IN_uri_823 )
1494
+ # at line 110:100: TILDE
1495
+ match( TILDE, TOKENS_FOLLOWING_TILDE_IN_uri_874 )
1469
1496
 
1470
1497
  when 12
1471
- # at line 109:108: HASH
1472
- match( HASH, TOKENS_FOLLOWING_HASH_IN_uri_827 )
1498
+ # at line 110:108: HASH
1499
+ match( HASH, TOKENS_FOLLOWING_HASH_IN_uri_878 )
1473
1500
 
1474
1501
  when 13
1475
- # at line 109:115: QUESTION
1476
- match( QUESTION, TOKENS_FOLLOWING_QUESTION_IN_uri_831 )
1502
+ # at line 110:115: QUESTION
1503
+ match( QUESTION, TOKENS_FOLLOWING_QUESTION_IN_uri_882 )
1477
1504
 
1478
1505
  when 14
1479
- # at line 109:126: AMPERSAND
1480
- match( AMPERSAND, TOKENS_FOLLOWING_AMPERSAND_IN_uri_835 )
1506
+ # at line 110:126: AMPERSAND
1507
+ match( AMPERSAND, TOKENS_FOLLOWING_AMPERSAND_IN_uri_886 )
1481
1508
 
1482
1509
  when 15
1483
- # at line 109:138: SLASH
1484
- match( SLASH, TOKENS_FOLLOWING_SLASH_IN_uri_839 )
1510
+ # at line 110:138: SLASH
1511
+ match( SLASH, TOKENS_FOLLOWING_SLASH_IN_uri_890 )
1485
1512
 
1486
1513
  when 16
1487
- # at line 109:146: EQUALS
1488
- match( EQUALS, TOKENS_FOLLOWING_EQUALS_IN_uri_843 )
1514
+ # at line 110:146: EQUALS
1515
+ match( EQUALS, TOKENS_FOLLOWING_EQUALS_IN_uri_894 )
1489
1516
 
1490
1517
  when 17
1491
- # at line 109:155: DASH
1492
- match( DASH, TOKENS_FOLLOWING_DASH_IN_uri_847 )
1518
+ # at line 110:155: DASH
1519
+ match( DASH, TOKENS_FOLLOWING_DASH_IN_uri_898 )
1493
1520
 
1494
1521
  when 18
1495
- # at line 109:162: X_OCCI_ATTRIBUTE_KEY
1496
- match( X_OCCI_ATTRIBUTE_KEY, TOKENS_FOLLOWING_X_OCCI_ATTRIBUTE_KEY_IN_uri_851 )
1522
+ # at line 110:162: X_OCCI_ATTRIBUTE_KEY
1523
+ match( X_OCCI_ATTRIBUTE_KEY, TOKENS_FOLLOWING_X_OCCI_ATTRIBUTE_KEY_IN_uri_902 )
1497
1524
 
1498
1525
  when 19
1499
- # at line 109:185: X_OCCI_LOCATION_KEY
1500
- match( X_OCCI_LOCATION_KEY, TOKENS_FOLLOWING_X_OCCI_LOCATION_KEY_IN_uri_855 )
1526
+ # at line 110:185: X_OCCI_LOCATION_KEY
1527
+ match( X_OCCI_LOCATION_KEY, TOKENS_FOLLOWING_X_OCCI_LOCATION_KEY_IN_uri_906 )
1501
1528
 
1502
1529
  when 20
1503
- # at line 109:207: reserved_words
1504
- @state.following.push( TOKENS_FOLLOWING_reserved_words_IN_uri_859 )
1530
+ # at line 110:207: reserved_words
1531
+ @state.following.push( TOKENS_FOLLOWING_reserved_words_IN_uri_910 )
1505
1532
  reserved_words
1506
1533
  @state.following.pop
1507
1534
 
1508
1535
  else
1509
- match_count_30 > 0 and break
1510
- eee = EarlyExit(30)
1536
+ match_count_31 > 0 and break
1537
+ eee = EarlyExit(31)
1511
1538
 
1512
1539
 
1513
1540
  raise eee
1514
1541
  end
1515
- match_count_30 += 1
1542
+ match_count_31 += 1
1516
1543
  end
1517
1544
 
1518
1545
  # - - - - - - - rule clean up - - - - - - - -
@@ -1537,7 +1564,7 @@ module OCCIANTLR
1537
1564
  # parser rule term
1538
1565
  #
1539
1566
  # (in OCCIANTLR.g)
1540
- # 110:1: term : ( LOALPHA | reserved_words ) ( LOALPHA | DIGIT | DASH | UNDERSCORE | DOT | reserved_words )* ;
1567
+ # 111:1: term : ( LOALPHA | reserved_words ) ( LOALPHA | DIGIT | DASH | UNDERSCORE | DOT | reserved_words )* ;
1541
1568
  #
1542
1569
  def term
1543
1570
  # -> uncomment the next line to manually enable rule tracing
@@ -1548,72 +1575,72 @@ module OCCIANTLR
1548
1575
  return_value.start = @input.look
1549
1576
 
1550
1577
  begin
1551
- # at line 110:10: ( LOALPHA | reserved_words ) ( LOALPHA | DIGIT | DASH | UNDERSCORE | DOT | reserved_words )*
1552
- # at line 110:10: ( LOALPHA | reserved_words )
1553
- alt_31 = 2
1554
- look_31_0 = @input.peek( 1 )
1555
-
1556
- if ( look_31_0 == LOALPHA )
1557
- alt_31 = 1
1558
- elsif ( look_31_0 == SCHEME || look_31_0.between?( CLASS, ACTIONS ) || look_31_0.between?( SELF, CATEGORY ) || look_31_0.between?( KIND, ACTION ) || look_31_0.between?( LINK, TERM ) )
1559
- alt_31 = 2
1578
+ # at line 111:10: ( LOALPHA | reserved_words ) ( LOALPHA | DIGIT | DASH | UNDERSCORE | DOT | reserved_words )*
1579
+ # at line 111:10: ( LOALPHA | reserved_words )
1580
+ alt_32 = 2
1581
+ look_32_0 = @input.peek( 1 )
1582
+
1583
+ if ( look_32_0 == LOALPHA )
1584
+ alt_32 = 1
1585
+ elsif ( look_32_0 == SCHEME || look_32_0.between?( CLASS, ACTIONS ) || look_32_0.between?( SELF, CATEGORY ) || look_32_0.between?( KIND, ACTION ) || look_32_0.between?( LINK, TERM ) )
1586
+ alt_32 = 2
1560
1587
  else
1561
- raise NoViableAlternative( "", 31, 0 )
1588
+ raise NoViableAlternative( "", 32, 0 )
1562
1589
  end
1563
- case alt_31
1590
+ case alt_32
1564
1591
  when 1
1565
- # at line 110:12: LOALPHA
1566
- match( LOALPHA, TOKENS_FOLLOWING_LOALPHA_IN_term_872 )
1592
+ # at line 111:12: LOALPHA
1593
+ match( LOALPHA, TOKENS_FOLLOWING_LOALPHA_IN_term_923 )
1567
1594
 
1568
1595
  when 2
1569
- # at line 110:22: reserved_words
1570
- @state.following.push( TOKENS_FOLLOWING_reserved_words_IN_term_876 )
1596
+ # at line 111:22: reserved_words
1597
+ @state.following.push( TOKENS_FOLLOWING_reserved_words_IN_term_927 )
1571
1598
  reserved_words
1572
1599
  @state.following.pop
1573
1600
 
1574
1601
  end
1575
- # at line 110:39: ( LOALPHA | DIGIT | DASH | UNDERSCORE | DOT | reserved_words )*
1576
- while true # decision 32
1577
- alt_32 = 7
1578
- case look_32 = @input.peek( 1 )
1579
- when LOALPHA then alt_32 = 1
1580
- when DIGIT then alt_32 = 2
1581
- when DASH then alt_32 = 3
1582
- when UNDERSCORE then alt_32 = 4
1583
- when DOT then alt_32 = 5
1584
- when SCHEME, CLASS, TITLE, REL, LOCATION, ATTRIBUTES, ACTIONS, SELF, CATEGORY, KIND, MIXIN, ACTION, LINK, TERM then alt_32 = 6
1602
+ # at line 111:39: ( LOALPHA | DIGIT | DASH | UNDERSCORE | DOT | reserved_words )*
1603
+ while true # decision 33
1604
+ alt_33 = 7
1605
+ case look_33 = @input.peek( 1 )
1606
+ when LOALPHA then alt_33 = 1
1607
+ when DIGIT then alt_33 = 2
1608
+ when DASH then alt_33 = 3
1609
+ when UNDERSCORE then alt_33 = 4
1610
+ when DOT then alt_33 = 5
1611
+ when SCHEME, CLASS, TITLE, REL, LOCATION, ATTRIBUTES, ACTIONS, SELF, CATEGORY, KIND, MIXIN, ACTION, LINK, TERM then alt_33 = 6
1585
1612
  end
1586
- case alt_32
1613
+ case alt_33
1587
1614
  when 1
1588
- # at line 110:41: LOALPHA
1589
- match( LOALPHA, TOKENS_FOLLOWING_LOALPHA_IN_term_882 )
1615
+ # at line 111:41: LOALPHA
1616
+ match( LOALPHA, TOKENS_FOLLOWING_LOALPHA_IN_term_933 )
1590
1617
 
1591
1618
  when 2
1592
- # at line 110:51: DIGIT
1593
- match( DIGIT, TOKENS_FOLLOWING_DIGIT_IN_term_886 )
1619
+ # at line 111:51: DIGIT
1620
+ match( DIGIT, TOKENS_FOLLOWING_DIGIT_IN_term_937 )
1594
1621
 
1595
1622
  when 3
1596
- # at line 110:59: DASH
1597
- match( DASH, TOKENS_FOLLOWING_DASH_IN_term_890 )
1623
+ # at line 111:59: DASH
1624
+ match( DASH, TOKENS_FOLLOWING_DASH_IN_term_941 )
1598
1625
 
1599
1626
  when 4
1600
- # at line 110:66: UNDERSCORE
1601
- match( UNDERSCORE, TOKENS_FOLLOWING_UNDERSCORE_IN_term_894 )
1627
+ # at line 111:66: UNDERSCORE
1628
+ match( UNDERSCORE, TOKENS_FOLLOWING_UNDERSCORE_IN_term_945 )
1602
1629
 
1603
1630
  when 5
1604
- # at line 110:79: DOT
1605
- match( DOT, TOKENS_FOLLOWING_DOT_IN_term_898 )
1631
+ # at line 111:79: DOT
1632
+ match( DOT, TOKENS_FOLLOWING_DOT_IN_term_949 )
1606
1633
 
1607
1634
  when 6
1608
- # at line 110:85: reserved_words
1609
- @state.following.push( TOKENS_FOLLOWING_reserved_words_IN_term_902 )
1635
+ # at line 111:85: reserved_words
1636
+ @state.following.push( TOKENS_FOLLOWING_reserved_words_IN_term_953 )
1610
1637
  reserved_words
1611
1638
  @state.following.pop
1612
1639
 
1613
1640
  else
1614
- break # out of loop for decision 32
1641
+ break # out of loop for decision 33
1615
1642
  end
1616
- end # loop for decision 32
1643
+ end # loop for decision 33
1617
1644
  # - - - - - - - rule clean up - - - - - - - -
1618
1645
  return_value.stop = @input.look( -1 )
1619
1646
 
@@ -1636,7 +1663,7 @@ module OCCIANTLR
1636
1663
  # parser rule scheme
1637
1664
  #
1638
1665
  # (in OCCIANTLR.g)
1639
- # 111:1: scheme : uri ;
1666
+ # 112:1: scheme : uri ;
1640
1667
  #
1641
1668
  def scheme
1642
1669
  # -> uncomment the next line to manually enable rule tracing
@@ -1647,8 +1674,8 @@ module OCCIANTLR
1647
1674
  return_value.start = @input.look
1648
1675
 
1649
1676
  begin
1650
- # at line 111:20: uri
1651
- @state.following.push( TOKENS_FOLLOWING_uri_IN_scheme_922 )
1677
+ # at line 112:20: uri
1678
+ @state.following.push( TOKENS_FOLLOWING_uri_IN_scheme_973 )
1652
1679
  uri
1653
1680
  @state.following.pop
1654
1681
  # - - - - - - - rule clean up - - - - - - - -
@@ -1673,7 +1700,7 @@ module OCCIANTLR
1673
1700
  # parser rule class_type
1674
1701
  #
1675
1702
  # (in OCCIANTLR.g)
1676
- # 112:1: class_type : ( KIND | MIXIN | ACTION ) ;
1703
+ # 113:1: class_type : ( KIND | MIXIN | ACTION ) ;
1677
1704
  #
1678
1705
  def class_type
1679
1706
  # -> uncomment the next line to manually enable rule tracing
@@ -1684,7 +1711,7 @@ module OCCIANTLR
1684
1711
  return_value.start = @input.look
1685
1712
 
1686
1713
  begin
1687
- # at line 112:15: ( KIND | MIXIN | ACTION )
1714
+ # at line 113:15: ( KIND | MIXIN | ACTION )
1688
1715
  if @input.peek( 1 ).between?( KIND, ACTION )
1689
1716
  @input.consume
1690
1717
  @state.error_recovery = false
@@ -1716,7 +1743,7 @@ module OCCIANTLR
1716
1743
  # parser rule title
1717
1744
  #
1718
1745
  # (in OCCIANTLR.g)
1719
- # 113:1: title : ( ESC | ~ ( BACKSLASH | QUOTE | SQUOTE ) | SQUOTE )* ;
1746
+ # 114:1: title : ( ESC | ~ ( BACKSLASH | QUOTE | SQUOTE ) | SQUOTE )* ;
1720
1747
  #
1721
1748
  def title
1722
1749
  # -> uncomment the next line to manually enable rule tracing
@@ -1727,17 +1754,17 @@ module OCCIANTLR
1727
1754
  return_value.start = @input.look
1728
1755
 
1729
1756
  begin
1730
- # at line 113:11: ( ESC | ~ ( BACKSLASH | QUOTE | SQUOTE ) | SQUOTE )*
1731
- # at line 113:11: ( ESC | ~ ( BACKSLASH | QUOTE | SQUOTE ) | SQUOTE )*
1732
- while true # decision 33
1733
- alt_33 = 2
1734
- look_33_0 = @input.peek( 1 )
1757
+ # at line 114:11: ( ESC | ~ ( BACKSLASH | QUOTE | SQUOTE ) | SQUOTE )*
1758
+ # at line 114:11: ( ESC | ~ ( BACKSLASH | QUOTE | SQUOTE ) | SQUOTE )*
1759
+ while true # decision 34
1760
+ alt_34 = 2
1761
+ look_34_0 = @input.peek( 1 )
1735
1762
 
1736
- if ( look_33_0.between?( CATEGORY_KEY, EQUALS ) || look_33_0.between?( CLASS, UNDERSCORE ) || look_33_0.between?( PLUS, T__52 ) )
1737
- alt_33 = 1
1763
+ if ( look_34_0.between?( CATEGORY_KEY, EQUALS ) || look_34_0.between?( CLASS, UNDERSCORE ) || look_34_0.between?( PLUS, T__52 ) )
1764
+ alt_34 = 1
1738
1765
 
1739
1766
  end
1740
- case alt_33
1767
+ case alt_34
1741
1768
  when 1
1742
1769
  # at line
1743
1770
  if @input.peek( 1 ).between?( CATEGORY_KEY, EQUALS ) || @input.peek( 1 ).between?( CLASS, UNDERSCORE ) || @input.peek( 1 ).between?( PLUS, T__52 )
@@ -1751,9 +1778,9 @@ module OCCIANTLR
1751
1778
 
1752
1779
 
1753
1780
  else
1754
- break # out of loop for decision 33
1781
+ break # out of loop for decision 34
1755
1782
  end
1756
- end # loop for decision 33
1783
+ end # loop for decision 34
1757
1784
  # - - - - - - - rule clean up - - - - - - - -
1758
1785
  return_value.stop = @input.look( -1 )
1759
1786
 
@@ -1775,7 +1802,7 @@ module OCCIANTLR
1775
1802
  # parser rule attribute
1776
1803
  #
1777
1804
  # (in OCCIANTLR.g)
1778
- # 114:1: attribute returns [hash] : comp_first= attribute_component ( '.' comp_next= attribute_component )* EQUALS attribute_value ;
1805
+ # 115:1: attribute returns [hash] : comp_first= attribute_component ( '.' comp_next= attribute_component )* EQUALS attribute_value ;
1779
1806
  #
1780
1807
  def attribute
1781
1808
  # -> uncomment the next line to manually enable rule tracing
@@ -1783,32 +1810,32 @@ module OCCIANTLR
1783
1810
  hash = nil
1784
1811
  comp_first = nil
1785
1812
  comp_next = nil
1786
- attribute_value29 = nil
1813
+ attribute_value28 = nil
1787
1814
  # - - - - @init action - - - -
1788
1815
  hash = Hashie::Mash.new
1789
1816
 
1790
1817
  begin
1791
- # at line 115:6: comp_first= attribute_component ( '.' comp_next= attribute_component )* EQUALS attribute_value
1792
- @state.following.push( TOKENS_FOLLOWING_attribute_component_IN_attribute_999 )
1818
+ # at line 116:6: comp_first= attribute_component ( '.' comp_next= attribute_component )* EQUALS attribute_value
1819
+ @state.following.push( TOKENS_FOLLOWING_attribute_component_IN_attribute_1050 )
1793
1820
  comp_first = attribute_component
1794
1821
  @state.following.pop
1795
1822
  # --> action
1796
1823
  cur_hash = hash; comp = ( comp_first && @input.to_s( comp_first.start, comp_first.stop ) )
1797
1824
  # <-- action
1798
- # at line 116:6: ( '.' comp_next= attribute_component )*
1799
- while true # decision 34
1800
- alt_34 = 2
1801
- look_34_0 = @input.peek( 1 )
1825
+ # at line 117:6: ( '.' comp_next= attribute_component )*
1826
+ while true # decision 35
1827
+ alt_35 = 2
1828
+ look_35_0 = @input.peek( 1 )
1802
1829
 
1803
- if ( look_34_0 == DOT )
1804
- alt_34 = 1
1830
+ if ( look_35_0 == DOT )
1831
+ alt_35 = 1
1805
1832
 
1806
1833
  end
1807
- case alt_34
1834
+ case alt_35
1808
1835
  when 1
1809
- # at line 116:8: '.' comp_next= attribute_component
1810
- match( DOT, TOKENS_FOLLOWING_DOT_IN_attribute_1010 )
1811
- @state.following.push( TOKENS_FOLLOWING_attribute_component_IN_attribute_1014 )
1836
+ # at line 117:8: '.' comp_next= attribute_component
1837
+ match( DOT, TOKENS_FOLLOWING_DOT_IN_attribute_1061 )
1838
+ @state.following.push( TOKENS_FOLLOWING_attribute_component_IN_attribute_1065 )
1812
1839
  comp_next = attribute_component
1813
1840
  @state.following.pop
1814
1841
  # --> action
@@ -1816,15 +1843,15 @@ module OCCIANTLR
1816
1843
  # <-- action
1817
1844
 
1818
1845
  else
1819
- break # out of loop for decision 34
1846
+ break # out of loop for decision 35
1820
1847
  end
1821
- end # loop for decision 34
1822
- match( EQUALS, TOKENS_FOLLOWING_EQUALS_IN_attribute_1025 )
1823
- @state.following.push( TOKENS_FOLLOWING_attribute_value_IN_attribute_1027 )
1824
- attribute_value29 = attribute_value
1848
+ end # loop for decision 35
1849
+ match( EQUALS, TOKENS_FOLLOWING_EQUALS_IN_attribute_1076 )
1850
+ @state.following.push( TOKENS_FOLLOWING_attribute_value_IN_attribute_1078 )
1851
+ attribute_value28 = attribute_value
1825
1852
  @state.following.pop
1826
1853
  # --> action
1827
- cur_hash[comp.to_sym] = attribute_value29
1854
+ cur_hash[comp.to_sym] = attribute_value28
1828
1855
  # <-- action
1829
1856
 
1830
1857
  rescue ANTLR3::Error::RecognitionError => re
@@ -1845,7 +1872,7 @@ module OCCIANTLR
1845
1872
  # parser rule attribute_name
1846
1873
  #
1847
1874
  # (in OCCIANTLR.g)
1848
- # 118:1: attribute_name returns [hash] : comp_first= attribute_component ( '.' comp_next= attribute_component )* ( '{' ( 'mutable' )? ( 'immutable' )? ( 'required' )? '}' )? ;
1875
+ # 119:1: attribute_name returns [hash] : comp_first= attribute_component ( '.' comp_next= attribute_component )* ( '{' ( 'mutable' )? ( 'immutable' )? ( 'required' )? '}' )? ;
1849
1876
  #
1850
1877
  def attribute_name
1851
1878
  # -> uncomment the next line to manually enable rule tracing
@@ -1857,27 +1884,27 @@ module OCCIANTLR
1857
1884
  hash = Hashie::Mash.new
1858
1885
 
1859
1886
  begin
1860
- # at line 119:27: comp_first= attribute_component ( '.' comp_next= attribute_component )* ( '{' ( 'mutable' )? ( 'immutable' )? ( 'required' )? '}' )?
1861
- @state.following.push( TOKENS_FOLLOWING_attribute_component_IN_attribute_name_1071 )
1887
+ # at line 120:27: comp_first= attribute_component ( '.' comp_next= attribute_component )* ( '{' ( 'mutable' )? ( 'immutable' )? ( 'required' )? '}' )?
1888
+ @state.following.push( TOKENS_FOLLOWING_attribute_component_IN_attribute_name_1122 )
1862
1889
  comp_first = attribute_component
1863
1890
  @state.following.pop
1864
1891
  # --> action
1865
1892
  cur_hash = hash; comp = ( comp_first && @input.to_s( comp_first.start, comp_first.stop ) )
1866
1893
  # <-- action
1867
- # at line 120:6: ( '.' comp_next= attribute_component )*
1868
- while true # decision 35
1869
- alt_35 = 2
1870
- look_35_0 = @input.peek( 1 )
1894
+ # at line 121:6: ( '.' comp_next= attribute_component )*
1895
+ while true # decision 36
1896
+ alt_36 = 2
1897
+ look_36_0 = @input.peek( 1 )
1871
1898
 
1872
- if ( look_35_0 == DOT )
1873
- alt_35 = 1
1899
+ if ( look_36_0 == DOT )
1900
+ alt_36 = 1
1874
1901
 
1875
1902
  end
1876
- case alt_35
1903
+ case alt_36
1877
1904
  when 1
1878
- # at line 120:8: '.' comp_next= attribute_component
1879
- match( DOT, TOKENS_FOLLOWING_DOT_IN_attribute_name_1082 )
1880
- @state.following.push( TOKENS_FOLLOWING_attribute_component_IN_attribute_name_1086 )
1905
+ # at line 121:8: '.' comp_next= attribute_component
1906
+ match( DOT, TOKENS_FOLLOWING_DOT_IN_attribute_name_1133 )
1907
+ @state.following.push( TOKENS_FOLLOWING_attribute_component_IN_attribute_name_1137 )
1881
1908
  comp_next = attribute_component
1882
1909
  @state.following.pop
1883
1910
  # --> action
@@ -1885,72 +1912,72 @@ module OCCIANTLR
1885
1912
  # <-- action
1886
1913
 
1887
1914
  else
1888
- break # out of loop for decision 35
1915
+ break # out of loop for decision 36
1889
1916
  end
1890
- end # loop for decision 35
1917
+ end # loop for decision 36
1891
1918
  # --> action
1892
1919
  cur_hash[comp.to_sym] = ATTRIBUTE
1893
1920
  # <-- action
1894
- # at line 122:6: ( '{' ( 'mutable' )? ( 'immutable' )? ( 'required' )? '}' )?
1895
- alt_39 = 2
1896
- look_39_0 = @input.peek( 1 )
1921
+ # at line 123:6: ( '{' ( 'mutable' )? ( 'immutable' )? ( 'required' )? '}' )?
1922
+ alt_40 = 2
1923
+ look_40_0 = @input.peek( 1 )
1897
1924
 
1898
- if ( look_39_0 == T__48 )
1899
- alt_39 = 1
1925
+ if ( look_40_0 == T__48 )
1926
+ alt_40 = 1
1900
1927
  end
1901
- case alt_39
1928
+ case alt_40
1902
1929
  when 1
1903
- # at line 122:7: '{' ( 'mutable' )? ( 'immutable' )? ( 'required' )? '}'
1904
- match( T__48, TOKENS_FOLLOWING_T__48_IN_attribute_name_1106 )
1905
- # at line 122:11: ( 'mutable' )?
1906
- alt_36 = 2
1907
- look_36_0 = @input.peek( 1 )
1908
-
1909
- if ( look_36_0 == T__49 )
1910
- alt_36 = 1
1911
- end
1912
- case alt_36
1913
- when 1
1914
- # at line 122:12: 'mutable'
1915
- match( T__49, TOKENS_FOLLOWING_T__49_IN_attribute_name_1109 )
1916
- # --> action
1917
- cur_hash[comp.to_sym][:Mutable] = true
1918
- # <-- action
1919
-
1920
- end
1921
- # at line 122:67: ( 'immutable' )?
1930
+ # at line 123:7: '{' ( 'mutable' )? ( 'immutable' )? ( 'required' )? '}'
1931
+ match( T__48, TOKENS_FOLLOWING_T__48_IN_attribute_name_1157 )
1932
+ # at line 123:11: ( 'mutable' )?
1922
1933
  alt_37 = 2
1923
1934
  look_37_0 = @input.peek( 1 )
1924
1935
 
1925
- if ( look_37_0 == T__50 )
1936
+ if ( look_37_0 == T__49 )
1926
1937
  alt_37 = 1
1927
1938
  end
1928
1939
  case alt_37
1929
1940
  when 1
1930
- # at line 122:68: 'immutable'
1931
- match( T__50, TOKENS_FOLLOWING_T__50_IN_attribute_name_1116 )
1941
+ # at line 123:12: 'mutable'
1942
+ match( T__49, TOKENS_FOLLOWING_T__49_IN_attribute_name_1160 )
1932
1943
  # --> action
1933
- cur_hash[comp.to_sym][:Mutable] = false
1944
+ cur_hash[comp.to_sym][:mutable] = true
1934
1945
  # <-- action
1935
1946
 
1936
1947
  end
1937
- # at line 122:126: ( 'required' )?
1948
+ # at line 123:67: ( 'immutable' )?
1938
1949
  alt_38 = 2
1939
1950
  look_38_0 = @input.peek( 1 )
1940
1951
 
1941
- if ( look_38_0 == T__51 )
1952
+ if ( look_38_0 == T__50 )
1942
1953
  alt_38 = 1
1943
1954
  end
1944
1955
  case alt_38
1945
1956
  when 1
1946
- # at line 122:127: 'required'
1947
- match( T__51, TOKENS_FOLLOWING_T__51_IN_attribute_name_1123 )
1957
+ # at line 123:68: 'immutable'
1958
+ match( T__50, TOKENS_FOLLOWING_T__50_IN_attribute_name_1167 )
1948
1959
  # --> action
1949
- cur_hash[comp.to_sym][:Required] = true
1960
+ cur_hash[comp.to_sym][:mutable] = false
1950
1961
  # <-- action
1951
1962
 
1952
1963
  end
1953
- match( T__52, TOKENS_FOLLOWING_T__52_IN_attribute_name_1129 )
1964
+ # at line 123:126: ( 'required' )?
1965
+ alt_39 = 2
1966
+ look_39_0 = @input.peek( 1 )
1967
+
1968
+ if ( look_39_0 == T__51 )
1969
+ alt_39 = 1
1970
+ end
1971
+ case alt_39
1972
+ when 1
1973
+ # at line 123:127: 'required'
1974
+ match( T__51, TOKENS_FOLLOWING_T__51_IN_attribute_name_1174 )
1975
+ # --> action
1976
+ cur_hash[comp.to_sym][:required] = true
1977
+ # <-- action
1978
+
1979
+ end
1980
+ match( T__52, TOKENS_FOLLOWING_T__52_IN_attribute_name_1180 )
1954
1981
 
1955
1982
  end
1956
1983
 
@@ -1973,7 +2000,7 @@ module OCCIANTLR
1973
2000
  # parser rule attribute_component
1974
2001
  #
1975
2002
  # (in OCCIANTLR.g)
1976
- # 123:1: attribute_component : ( LOALPHA | reserved_words ) ( LOALPHA | DIGIT | DASH | UNDERSCORE | reserved_words )* ;
2003
+ # 124:1: attribute_component : ( LOALPHA | reserved_words ) ( LOALPHA | DIGIT | DASH | UNDERSCORE | reserved_words )* ;
1977
2004
  #
1978
2005
  def attribute_component
1979
2006
  # -> uncomment the next line to manually enable rule tracing
@@ -1984,67 +2011,67 @@ module OCCIANTLR
1984
2011
  return_value.start = @input.look
1985
2012
 
1986
2013
  begin
1987
- # at line 123:23: ( LOALPHA | reserved_words ) ( LOALPHA | DIGIT | DASH | UNDERSCORE | reserved_words )*
1988
- # at line 123:23: ( LOALPHA | reserved_words )
1989
- alt_40 = 2
1990
- look_40_0 = @input.peek( 1 )
1991
-
1992
- if ( look_40_0 == LOALPHA )
1993
- alt_40 = 1
1994
- elsif ( look_40_0 == SCHEME || look_40_0.between?( CLASS, ACTIONS ) || look_40_0.between?( SELF, CATEGORY ) || look_40_0.between?( KIND, ACTION ) || look_40_0.between?( LINK, TERM ) )
1995
- alt_40 = 2
2014
+ # at line 124:23: ( LOALPHA | reserved_words ) ( LOALPHA | DIGIT | DASH | UNDERSCORE | reserved_words )*
2015
+ # at line 124:23: ( LOALPHA | reserved_words )
2016
+ alt_41 = 2
2017
+ look_41_0 = @input.peek( 1 )
2018
+
2019
+ if ( look_41_0 == LOALPHA )
2020
+ alt_41 = 1
2021
+ elsif ( look_41_0 == SCHEME || look_41_0.between?( CLASS, ACTIONS ) || look_41_0.between?( SELF, CATEGORY ) || look_41_0.between?( KIND, ACTION ) || look_41_0.between?( LINK, TERM ) )
2022
+ alt_41 = 2
1996
2023
  else
1997
- raise NoViableAlternative( "", 40, 0 )
2024
+ raise NoViableAlternative( "", 41, 0 )
1998
2025
  end
1999
- case alt_40
2026
+ case alt_41
2000
2027
  when 1
2001
- # at line 123:25: LOALPHA
2002
- match( LOALPHA, TOKENS_FOLLOWING_LOALPHA_IN_attribute_component_1141 )
2028
+ # at line 124:25: LOALPHA
2029
+ match( LOALPHA, TOKENS_FOLLOWING_LOALPHA_IN_attribute_component_1192 )
2003
2030
 
2004
2031
  when 2
2005
- # at line 123:35: reserved_words
2006
- @state.following.push( TOKENS_FOLLOWING_reserved_words_IN_attribute_component_1145 )
2032
+ # at line 124:35: reserved_words
2033
+ @state.following.push( TOKENS_FOLLOWING_reserved_words_IN_attribute_component_1196 )
2007
2034
  reserved_words
2008
2035
  @state.following.pop
2009
2036
 
2010
2037
  end
2011
- # at line 123:51: ( LOALPHA | DIGIT | DASH | UNDERSCORE | reserved_words )*
2012
- while true # decision 41
2013
- alt_41 = 6
2014
- case look_41 = @input.peek( 1 )
2015
- when LOALPHA then alt_41 = 1
2016
- when DIGIT then alt_41 = 2
2017
- when DASH then alt_41 = 3
2018
- when UNDERSCORE then alt_41 = 4
2019
- when SCHEME, CLASS, TITLE, REL, LOCATION, ATTRIBUTES, ACTIONS, SELF, CATEGORY, KIND, MIXIN, ACTION, LINK, TERM then alt_41 = 5
2038
+ # at line 124:51: ( LOALPHA | DIGIT | DASH | UNDERSCORE | reserved_words )*
2039
+ while true # decision 42
2040
+ alt_42 = 6
2041
+ case look_42 = @input.peek( 1 )
2042
+ when LOALPHA then alt_42 = 1
2043
+ when DIGIT then alt_42 = 2
2044
+ when DASH then alt_42 = 3
2045
+ when UNDERSCORE then alt_42 = 4
2046
+ when SCHEME, CLASS, TITLE, REL, LOCATION, ATTRIBUTES, ACTIONS, SELF, CATEGORY, KIND, MIXIN, ACTION, LINK, TERM then alt_42 = 5
2020
2047
  end
2021
- case alt_41
2048
+ case alt_42
2022
2049
  when 1
2023
- # at line 123:53: LOALPHA
2024
- match( LOALPHA, TOKENS_FOLLOWING_LOALPHA_IN_attribute_component_1150 )
2050
+ # at line 124:53: LOALPHA
2051
+ match( LOALPHA, TOKENS_FOLLOWING_LOALPHA_IN_attribute_component_1201 )
2025
2052
 
2026
2053
  when 2
2027
- # at line 123:63: DIGIT
2028
- match( DIGIT, TOKENS_FOLLOWING_DIGIT_IN_attribute_component_1154 )
2054
+ # at line 124:63: DIGIT
2055
+ match( DIGIT, TOKENS_FOLLOWING_DIGIT_IN_attribute_component_1205 )
2029
2056
 
2030
2057
  when 3
2031
- # at line 123:71: DASH
2032
- match( DASH, TOKENS_FOLLOWING_DASH_IN_attribute_component_1158 )
2058
+ # at line 124:71: DASH
2059
+ match( DASH, TOKENS_FOLLOWING_DASH_IN_attribute_component_1209 )
2033
2060
 
2034
2061
  when 4
2035
- # at line 123:78: UNDERSCORE
2036
- match( UNDERSCORE, TOKENS_FOLLOWING_UNDERSCORE_IN_attribute_component_1162 )
2062
+ # at line 124:78: UNDERSCORE
2063
+ match( UNDERSCORE, TOKENS_FOLLOWING_UNDERSCORE_IN_attribute_component_1213 )
2037
2064
 
2038
2065
  when 5
2039
- # at line 123:91: reserved_words
2040
- @state.following.push( TOKENS_FOLLOWING_reserved_words_IN_attribute_component_1166 )
2066
+ # at line 124:91: reserved_words
2067
+ @state.following.push( TOKENS_FOLLOWING_reserved_words_IN_attribute_component_1217 )
2041
2068
  reserved_words
2042
2069
  @state.following.pop
2043
2070
 
2044
2071
  else
2045
- break # out of loop for decision 41
2072
+ break # out of loop for decision 42
2046
2073
  end
2047
- end # loop for decision 41
2074
+ end # loop for decision 42
2048
2075
  # - - - - - - - rule clean up - - - - - - - -
2049
2076
  return_value.stop = @input.look( -1 )
2050
2077
 
@@ -2066,45 +2093,45 @@ module OCCIANTLR
2066
2093
  # parser rule attribute_value
2067
2094
  #
2068
2095
  # (in OCCIANTLR.g)
2069
- # 124:1: attribute_value returns [value] : ( quoted_string | number ) ;
2096
+ # 125:1: attribute_value returns [value] : ( quoted_string | number ) ;
2070
2097
  #
2071
2098
  def attribute_value
2072
2099
  # -> uncomment the next line to manually enable rule tracing
2073
2100
  # trace_in( __method__, 28 )
2074
2101
  value = nil
2075
- quoted_string30 = nil
2076
- number31 = nil
2102
+ quoted_string29 = nil
2103
+ number30 = nil
2077
2104
 
2078
2105
  begin
2079
- # at line 124:35: ( quoted_string | number )
2080
- # at line 124:35: ( quoted_string | number )
2081
- alt_42 = 2
2082
- look_42_0 = @input.peek( 1 )
2083
-
2084
- if ( look_42_0 == QUOTE )
2085
- alt_42 = 1
2086
- elsif ( look_42_0 == DIGIT )
2087
- alt_42 = 2
2106
+ # at line 125:35: ( quoted_string | number )
2107
+ # at line 125:35: ( quoted_string | number )
2108
+ alt_43 = 2
2109
+ look_43_0 = @input.peek( 1 )
2110
+
2111
+ if ( look_43_0 == QUOTE )
2112
+ alt_43 = 1
2113
+ elsif ( look_43_0 == DIGIT )
2114
+ alt_43 = 2
2088
2115
  else
2089
- raise NoViableAlternative( "", 42, 0 )
2116
+ raise NoViableAlternative( "", 43, 0 )
2090
2117
  end
2091
- case alt_42
2118
+ case alt_43
2092
2119
  when 1
2093
- # at line 124:37: quoted_string
2094
- @state.following.push( TOKENS_FOLLOWING_quoted_string_IN_attribute_value_1183 )
2095
- quoted_string30 = quoted_string
2120
+ # at line 125:37: quoted_string
2121
+ @state.following.push( TOKENS_FOLLOWING_quoted_string_IN_attribute_value_1234 )
2122
+ quoted_string29 = quoted_string
2096
2123
  @state.following.pop
2097
2124
  # --> action
2098
- value = quoted_string30
2125
+ value = quoted_string29
2099
2126
  # <-- action
2100
2127
 
2101
2128
  when 2
2102
- # at line 124:85: number
2103
- @state.following.push( TOKENS_FOLLOWING_number_IN_attribute_value_1189 )
2104
- number31 = number
2129
+ # at line 125:85: number
2130
+ @state.following.push( TOKENS_FOLLOWING_number_IN_attribute_value_1240 )
2131
+ number30 = number
2105
2132
  @state.following.pop
2106
2133
  # --> action
2107
- value = ( number31 && @input.to_s( number31.start, number31.stop ) ).to_i
2134
+ value = ( number30 && @input.to_s( number30.start, number30.stop ) ).to_i
2108
2135
  # <-- action
2109
2136
 
2110
2137
  end
@@ -2128,7 +2155,7 @@ module OCCIANTLR
2128
2155
  # parser rule number
2129
2156
  #
2130
2157
  # (in OCCIANTLR.g)
2131
- # 125:1: number : ( digits ( DOT digits )? ) ;
2158
+ # 126:1: number : ( digits ( DOT digits )? ) ;
2132
2159
  #
2133
2160
  def number
2134
2161
  # -> uncomment the next line to manually enable rule tracing
@@ -2139,24 +2166,24 @@ module OCCIANTLR
2139
2166
  return_value.start = @input.look
2140
2167
 
2141
2168
  begin
2142
- # at line 125:12: ( digits ( DOT digits )? )
2143
- # at line 125:12: ( digits ( DOT digits )? )
2144
- # at line 125:14: digits ( DOT digits )?
2145
- @state.following.push( TOKENS_FOLLOWING_digits_IN_number_1204 )
2169
+ # at line 126:12: ( digits ( DOT digits )? )
2170
+ # at line 126:12: ( digits ( DOT digits )? )
2171
+ # at line 126:14: digits ( DOT digits )?
2172
+ @state.following.push( TOKENS_FOLLOWING_digits_IN_number_1255 )
2146
2173
  digits
2147
2174
  @state.following.pop
2148
- # at line 125:21: ( DOT digits )?
2149
- alt_43 = 2
2150
- look_43_0 = @input.peek( 1 )
2175
+ # at line 126:21: ( DOT digits )?
2176
+ alt_44 = 2
2177
+ look_44_0 = @input.peek( 1 )
2151
2178
 
2152
- if ( look_43_0 == DOT )
2153
- alt_43 = 1
2179
+ if ( look_44_0 == DOT )
2180
+ alt_44 = 1
2154
2181
  end
2155
- case alt_43
2182
+ case alt_44
2156
2183
  when 1
2157
- # at line 125:23: DOT digits
2158
- match( DOT, TOKENS_FOLLOWING_DOT_IN_number_1208 )
2159
- @state.following.push( TOKENS_FOLLOWING_digits_IN_number_1210 )
2184
+ # at line 126:23: DOT digits
2185
+ match( DOT, TOKENS_FOLLOWING_DOT_IN_number_1259 )
2186
+ @state.following.push( TOKENS_FOLLOWING_digits_IN_number_1261 )
2160
2187
  digits
2161
2188
  @state.following.pop
2162
2189
 
@@ -2183,14 +2210,14 @@ module OCCIANTLR
2183
2210
  # parser rule reserved_words
2184
2211
  #
2185
2212
  # (in OCCIANTLR.g)
2186
- # 126:1: reserved_words : ( ACTION | ACTIONS | ATTRIBUTES | CATEGORY | CLASS | KIND | LINK | LOCATION | MIXIN | REL | SCHEME | SELF | TERM | TITLE ) ;
2213
+ # 127:1: reserved_words : ( ACTION | ACTIONS | ATTRIBUTES | CATEGORY | CLASS | KIND | LINK | LOCATION | MIXIN | REL | SCHEME | SELF | TERM | TITLE ) ;
2187
2214
  #
2188
2215
  def reserved_words
2189
2216
  # -> uncomment the next line to manually enable rule tracing
2190
2217
  # trace_in( __method__, 30 )
2191
2218
 
2192
2219
  begin
2193
- # at line 127:4: ( ACTION | ACTIONS | ATTRIBUTES | CATEGORY | CLASS | KIND | LINK | LOCATION | MIXIN | REL | SCHEME | SELF | TERM | TITLE )
2220
+ # at line 128:4: ( ACTION | ACTIONS | ATTRIBUTES | CATEGORY | CLASS | KIND | LINK | LOCATION | MIXIN | REL | SCHEME | SELF | TERM | TITLE )
2194
2221
  if @input.peek(1) == SCHEME || @input.peek( 1 ).between?( CLASS, ACTIONS ) || @input.peek( 1 ).between?( SELF, CATEGORY ) || @input.peek( 1 ).between?( KIND, ACTION ) || @input.peek( 1 ).between?( LINK, TERM )
2195
2222
  @input.consume
2196
2223
  @state.error_recovery = false
@@ -2219,23 +2246,23 @@ module OCCIANTLR
2219
2246
  # parser rule quoted_string
2220
2247
  #
2221
2248
  # (in OCCIANTLR.g)
2222
- # 187:1: quoted_string returns [text] : QUOTE string QUOTE ;
2249
+ # 188:1: quoted_string returns [text] : QUOTE string QUOTE ;
2223
2250
  #
2224
2251
  def quoted_string
2225
2252
  # -> uncomment the next line to manually enable rule tracing
2226
2253
  # trace_in( __method__, 31 )
2227
2254
  text = nil
2228
- string32 = nil
2255
+ string31 = nil
2229
2256
 
2230
2257
  begin
2231
- # at line 188:4: QUOTE string QUOTE
2232
- match( QUOTE, TOKENS_FOLLOWING_QUOTE_IN_quoted_string_1676 )
2233
- @state.following.push( TOKENS_FOLLOWING_string_IN_quoted_string_1678 )
2234
- string32 = string
2258
+ # at line 189:4: QUOTE string QUOTE
2259
+ match( QUOTE, TOKENS_FOLLOWING_QUOTE_IN_quoted_string_1727 )
2260
+ @state.following.push( TOKENS_FOLLOWING_string_IN_quoted_string_1729 )
2261
+ string31 = string
2235
2262
  @state.following.pop
2236
- match( QUOTE, TOKENS_FOLLOWING_QUOTE_IN_quoted_string_1680 )
2263
+ match( QUOTE, TOKENS_FOLLOWING_QUOTE_IN_quoted_string_1731 )
2237
2264
  # --> action
2238
- text = ( string32 && @input.to_s( string32.start, string32.stop ) )
2265
+ text = ( string31 && @input.to_s( string31.start, string31.stop ) )
2239
2266
  # <-- action
2240
2267
 
2241
2268
  rescue ANTLR3::Error::RecognitionError => re
@@ -2257,7 +2284,7 @@ module OCCIANTLR
2257
2284
  # parser rule string
2258
2285
  #
2259
2286
  # (in OCCIANTLR.g)
2260
- # 189:1: string : ( ESC | ~ ( '\\\\' | QUOTE | '\\'' ) | '\\'' )* ;
2287
+ # 190:1: string : ( ESC | ~ ( '\\\\' | QUOTE | '\\'' ) | '\\'' )* ;
2261
2288
  #
2262
2289
  def string
2263
2290
  # -> uncomment the next line to manually enable rule tracing
@@ -2268,17 +2295,17 @@ module OCCIANTLR
2268
2295
  return_value.start = @input.look
2269
2296
 
2270
2297
  begin
2271
- # at line 189:11: ( ESC | ~ ( '\\\\' | QUOTE | '\\'' ) | '\\'' )*
2272
- # at line 189:11: ( ESC | ~ ( '\\\\' | QUOTE | '\\'' ) | '\\'' )*
2273
- while true # decision 44
2274
- alt_44 = 2
2275
- look_44_0 = @input.peek( 1 )
2298
+ # at line 190:11: ( ESC | ~ ( '\\\\' | QUOTE | '\\'' ) | '\\'' )*
2299
+ # at line 190:11: ( ESC | ~ ( '\\\\' | QUOTE | '\\'' ) | '\\'' )*
2300
+ while true # decision 45
2301
+ alt_45 = 2
2302
+ look_45_0 = @input.peek( 1 )
2276
2303
 
2277
- if ( look_44_0.between?( CATEGORY_KEY, EQUALS ) || look_44_0.between?( CLASS, UNDERSCORE ) || look_44_0.between?( PLUS, T__52 ) )
2278
- alt_44 = 1
2304
+ if ( look_45_0.between?( CATEGORY_KEY, EQUALS ) || look_45_0.between?( CLASS, UNDERSCORE ) || look_45_0.between?( PLUS, T__52 ) )
2305
+ alt_45 = 1
2279
2306
 
2280
2307
  end
2281
- case alt_44
2308
+ case alt_45
2282
2309
  when 1
2283
2310
  # at line
2284
2311
  if @input.peek( 1 ).between?( CATEGORY_KEY, EQUALS ) || @input.peek( 1 ).between?( CLASS, UNDERSCORE ) || @input.peek( 1 ).between?( PLUS, T__52 )
@@ -2292,9 +2319,9 @@ module OCCIANTLR
2292
2319
 
2293
2320
 
2294
2321
  else
2295
- break # out of loop for decision 44
2322
+ break # out of loop for decision 45
2296
2323
  end
2297
- end # loop for decision 44
2324
+ end # loop for decision 45
2298
2325
  # - - - - - - - rule clean up - - - - - - - -
2299
2326
  return_value.stop = @input.look( -1 )
2300
2327
 
@@ -2316,37 +2343,37 @@ module OCCIANTLR
2316
2343
  # parser rule digits
2317
2344
  #
2318
2345
  # (in OCCIANTLR.g)
2319
- # 190:1: digits : ( DIGIT )+ ;
2346
+ # 191:1: digits : ( DIGIT )+ ;
2320
2347
  #
2321
2348
  def digits
2322
2349
  # -> uncomment the next line to manually enable rule tracing
2323
2350
  # trace_in( __method__, 33 )
2324
2351
 
2325
2352
  begin
2326
- # at line 190:10: ( DIGIT )+
2327
- # at file 190:10: ( DIGIT )+
2328
- match_count_45 = 0
2353
+ # at line 191:10: ( DIGIT )+
2354
+ # at file 191:10: ( DIGIT )+
2355
+ match_count_46 = 0
2329
2356
  while true
2330
- alt_45 = 2
2331
- look_45_0 = @input.peek( 1 )
2357
+ alt_46 = 2
2358
+ look_46_0 = @input.peek( 1 )
2332
2359
 
2333
- if ( look_45_0 == DIGIT )
2334
- alt_45 = 1
2360
+ if ( look_46_0 == DIGIT )
2361
+ alt_46 = 1
2335
2362
 
2336
2363
  end
2337
- case alt_45
2364
+ case alt_46
2338
2365
  when 1
2339
- # at line 190:10: DIGIT
2340
- match( DIGIT, TOKENS_FOLLOWING_DIGIT_IN_digits_1725 )
2366
+ # at line 191:10: DIGIT
2367
+ match( DIGIT, TOKENS_FOLLOWING_DIGIT_IN_digits_1776 )
2341
2368
 
2342
2369
  else
2343
- match_count_45 > 0 and break
2344
- eee = EarlyExit(45)
2370
+ match_count_46 > 0 and break
2371
+ eee = EarlyExit(46)
2345
2372
 
2346
2373
 
2347
2374
  raise eee
2348
2375
  end
2349
- match_count_45 += 1
2376
+ match_count_46 += 1
2350
2377
  end
2351
2378
 
2352
2379
 
@@ -2486,14 +2513,14 @@ module OCCIANTLR
2486
2513
  end
2487
2514
  end
2488
2515
  class DFA18 < ANTLR3::DFA
2489
- EOT = unpack( 28, -1 )
2490
- EOF = unpack( 2, 2, 26, -1 )
2491
- MIN = unpack( 1, 6, 1, 7, 1, -1, 2, 8, 1, 10, 8, 4, 1, -1, 12, 4,
2492
- 1, -1 )
2493
- MAX = unpack( 1, 6, 1, 45, 1, -1, 2, 45, 1, 26, 8, 52, 1, -1, 12,
2494
- 52, 1, -1 )
2495
- ACCEPT = unpack( 2, -1, 1, 2, 11, -1, 1, 1, 12, -1, 1, 1 )
2496
- SPECIAL = unpack( 28, -1 )
2516
+ EOT = unpack( 48, -1 )
2517
+ EOF = unpack( 2, 2, 46, -1 )
2518
+ MIN = unpack( 1, 6, 1, 7, 1, -1, 2, 8, 1, 10, 8, 4, 1, -1, 13, 4,
2519
+ 1, -1, 19, 4 )
2520
+ MAX = unpack( 1, 6, 1, 45, 1, -1, 2, 45, 1, 26, 8, 52, 1, -1, 13,
2521
+ 52, 1, -1, 19, 52 )
2522
+ ACCEPT = unpack( 2, -1, 1, 2, 11, -1, 1, 1, 13, -1, 1, 1, 19, -1 )
2523
+ SPECIAL = unpack( 48, -1 )
2497
2524
  TRANSITION = [
2498
2525
  unpack( 1, 1 ),
2499
2526
  unpack( 1, 3, 1, 2, 2, -1, 6, 2, 3, -1, 1, 2, 1, 4, 2, -1, 1, 2,
@@ -2509,84 +2536,164 @@ module OCCIANTLR
2509
2536
  26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2510
2537
  1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2511
2538
  1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2512
- unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2513
- 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2514
- 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2515
- 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2516
- unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2517
- 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2518
- 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2519
- 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2520
- unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2521
- 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2522
- 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2523
- 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2524
- unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2525
- 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2526
- 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2527
- 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2528
- unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2529
- 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2530
- 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2531
- 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2532
- unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2533
- 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2534
- 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2535
- 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2536
- unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2537
- 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2538
- 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2539
- 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2539
+ unpack( 1, 2, 1, 11, 1, 2, 1, 27, 1, 26, 1, 22, 1, 28, 6, 26, 3,
2540
+ 2, 2, 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12,
2541
+ 1, 13, 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20,
2542
+ 1, 21, 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2543
+ unpack( 1, 2, 1, 11, 1, 2, 1, 27, 1, 26, 1, 22, 1, 28, 6, 26, 3,
2544
+ 2, 2, 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12,
2545
+ 1, 13, 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20,
2546
+ 1, 21, 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2547
+ unpack( 1, 2, 1, 11, 1, 2, 1, 27, 1, 26, 1, 22, 1, 28, 6, 26, 3,
2548
+ 2, 2, 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12,
2549
+ 1, 13, 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20,
2550
+ 1, 21, 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2551
+ unpack( 1, 2, 1, 11, 1, 2, 1, 27, 1, 26, 1, 22, 1, 28, 6, 26, 3,
2552
+ 2, 2, 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12,
2553
+ 1, 13, 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20,
2554
+ 1, 21, 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2555
+ unpack( 1, 2, 1, 11, 1, 2, 1, 27, 1, 26, 1, 22, 1, 28, 6, 26, 3,
2556
+ 2, 2, 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12,
2557
+ 1, 13, 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20,
2558
+ 1, 21, 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2559
+ unpack( 1, 2, 1, 11, 1, 2, 1, 27, 1, 26, 1, 22, 1, 28, 6, 26, 3,
2560
+ 2, 2, 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12,
2561
+ 1, 13, 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20,
2562
+ 1, 21, 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2563
+ unpack( 1, 2, 1, 11, 1, 2, 1, 27, 1, 26, 1, 22, 1, 28, 6, 26, 3,
2564
+ 2, 2, 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12,
2565
+ 1, 13, 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20,
2566
+ 1, 21, 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2540
2567
  unpack( ),
2541
- unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2542
- 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2543
- 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2544
- 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2545
- unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2546
- 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2547
- 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2548
- 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2549
- unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2550
- 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2551
- 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2552
- 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2553
- unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2554
- 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2555
- 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2556
- 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2557
- unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2558
- 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2559
- 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2560
- 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2561
- unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2562
- 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2563
- 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2564
- 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2565
- unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2566
- 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2567
- 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2568
- 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2569
- unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2570
- 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2571
- 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2572
- 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2573
- unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2574
- 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2575
- 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2576
- 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2577
- unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2578
- 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2579
- 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2580
- 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2581
- unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2582
- 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2583
- 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2584
- 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2585
- unpack( 1, 2, 1, 11, 2, 2, 1, 26, 1, 22, 1, 27, 6, 26, 3, 2, 2,
2586
- 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12, 1, 13,
2587
- 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21,
2588
- 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2589
- unpack( )
2568
+ unpack( 1, 2, 1, 11, 1, 2, 1, 27, 1, 26, 1, 22, 1, 28, 6, 26, 3,
2569
+ 2, 2, 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12,
2570
+ 1, 13, 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20,
2571
+ 1, 21, 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2572
+ unpack( 1, 2, 1, 11, 1, 2, 1, 27, 1, 26, 1, 22, 1, 28, 6, 26, 3,
2573
+ 2, 2, 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12,
2574
+ 1, 13, 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20,
2575
+ 1, 21, 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2576
+ unpack( 1, 2, 1, 11, 1, 2, 1, 27, 1, 26, 1, 22, 1, 28, 6, 26, 3,
2577
+ 2, 2, 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12,
2578
+ 1, 13, 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20,
2579
+ 1, 21, 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2580
+ unpack( 1, 2, 1, 11, 1, 2, 1, 27, 1, 26, 1, 22, 1, 28, 6, 26, 3,
2581
+ 2, 2, 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12,
2582
+ 1, 13, 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20,
2583
+ 1, 21, 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2584
+ unpack( 1, 2, 1, 11, 1, 2, 1, 27, 1, 26, 1, 22, 1, 28, 6, 26, 3,
2585
+ 2, 2, 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12,
2586
+ 1, 13, 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20,
2587
+ 1, 21, 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2588
+ unpack( 1, 2, 1, 11, 1, 2, 1, 27, 1, 26, 1, 22, 1, 28, 6, 26, 3,
2589
+ 2, 2, 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12,
2590
+ 1, 13, 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20,
2591
+ 1, 21, 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2592
+ unpack( 1, 2, 1, 11, 1, 2, 1, 27, 1, 26, 1, 22, 1, 28, 6, 26, 3,
2593
+ 2, 2, 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12,
2594
+ 1, 13, 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20,
2595
+ 1, 21, 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2596
+ unpack( 1, 2, 1, 11, 1, 2, 1, 27, 1, 26, 1, 22, 1, 28, 6, 26, 3,
2597
+ 2, 2, 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12,
2598
+ 1, 13, 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20,
2599
+ 1, 21, 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2600
+ unpack( 1, 2, 1, 11, 1, 2, 1, 27, 1, 26, 1, 22, 1, 28, 6, 26, 3,
2601
+ 2, 2, 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12,
2602
+ 1, 13, 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20,
2603
+ 1, 21, 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2604
+ unpack( 1, 2, 1, 11, 1, 2, 1, 27, 1, 26, 1, 22, 1, 28, 6, 26, 3,
2605
+ 2, 2, 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12,
2606
+ 1, 13, 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20,
2607
+ 1, 21, 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2608
+ unpack( 1, 2, 1, 11, 1, 2, 1, 27, 1, 26, 1, 22, 1, 28, 6, 26, 3,
2609
+ 2, 2, 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12,
2610
+ 1, 13, 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20,
2611
+ 1, 21, 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2612
+ unpack( 1, 2, 1, 11, 1, 2, 1, 27, 1, 26, 1, 22, 1, 28, 6, 26, 3,
2613
+ 2, 2, 26, 1, 24, 1, 25, 1, 7, 1, 8, 1, 9, 1, 10, 1, 12,
2614
+ 1, 13, 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20,
2615
+ 1, 21, 1, 23, 3, 26, 2, 2, 2, 26, 7, 2 ),
2616
+ unpack( 1, 2, 1, 33, 2, 2, 1, 47, 1, 43, 1, 2, 6, 47, 3, 2, 2,
2617
+ 47, 1, 45, 1, 46, 1, 29, 1, 30, 1, 31, 1, 32, 1, 34, 1,
2618
+ 35, 1, 28, 1, 36, 1, 37, 1, 38, 1, 39, 1, 40, 1, 41, 1,
2619
+ 42, 1, 44, 3, 47, 2, 2, 2, 47, 7, 2 ),
2620
+ unpack( ),
2621
+ unpack( 1, 2, 1, 33, 1, 2, 1, 27, 1, 47, 1, 43, 1, 28, 6, 47, 3,
2622
+ 2, 2, 47, 1, 45, 1, 46, 1, 29, 1, 30, 1, 31, 1, 32, 1,
2623
+ 34, 1, 35, 1, 28, 1, 36, 1, 37, 1, 38, 1, 39, 1, 40, 1,
2624
+ 41, 1, 42, 1, 44, 3, 47, 2, 2, 2, 47, 7, 2 ),
2625
+ unpack( 1, 2, 1, 33, 1, 2, 1, 27, 1, 47, 1, 43, 1, 28, 6, 47, 3,
2626
+ 2, 2, 47, 1, 45, 1, 46, 1, 29, 1, 30, 1, 31, 1, 32, 1,
2627
+ 34, 1, 35, 1, 28, 1, 36, 1, 37, 1, 38, 1, 39, 1, 40, 1,
2628
+ 41, 1, 42, 1, 44, 3, 47, 2, 2, 2, 47, 7, 2 ),
2629
+ unpack( 1, 2, 1, 33, 1, 2, 1, 27, 1, 47, 1, 43, 1, 28, 6, 47, 3,
2630
+ 2, 2, 47, 1, 45, 1, 46, 1, 29, 1, 30, 1, 31, 1, 32, 1,
2631
+ 34, 1, 35, 1, 28, 1, 36, 1, 37, 1, 38, 1, 39, 1, 40, 1,
2632
+ 41, 1, 42, 1, 44, 3, 47, 2, 2, 2, 47, 7, 2 ),
2633
+ unpack( 1, 2, 1, 33, 1, 2, 1, 27, 1, 47, 1, 43, 1, 28, 6, 47, 3,
2634
+ 2, 2, 47, 1, 45, 1, 46, 1, 29, 1, 30, 1, 31, 1, 32, 1,
2635
+ 34, 1, 35, 1, 28, 1, 36, 1, 37, 1, 38, 1, 39, 1, 40, 1,
2636
+ 41, 1, 42, 1, 44, 3, 47, 2, 2, 2, 47, 7, 2 ),
2637
+ unpack( 1, 2, 1, 33, 1, 2, 1, 27, 1, 47, 1, 43, 1, 28, 6, 47, 3,
2638
+ 2, 2, 47, 1, 45, 1, 46, 1, 29, 1, 30, 1, 31, 1, 32, 1,
2639
+ 34, 1, 35, 1, 28, 1, 36, 1, 37, 1, 38, 1, 39, 1, 40, 1,
2640
+ 41, 1, 42, 1, 44, 3, 47, 2, 2, 2, 47, 7, 2 ),
2641
+ unpack( 1, 2, 1, 33, 1, 2, 1, 27, 1, 47, 1, 43, 1, 28, 6, 47, 3,
2642
+ 2, 2, 47, 1, 45, 1, 46, 1, 29, 1, 30, 1, 31, 1, 32, 1,
2643
+ 34, 1, 35, 1, 28, 1, 36, 1, 37, 1, 38, 1, 39, 1, 40, 1,
2644
+ 41, 1, 42, 1, 44, 3, 47, 2, 2, 2, 47, 7, 2 ),
2645
+ unpack( 1, 2, 1, 33, 1, 2, 1, 27, 1, 47, 1, 43, 1, 28, 6, 47, 3,
2646
+ 2, 2, 47, 1, 45, 1, 46, 1, 29, 1, 30, 1, 31, 1, 32, 1,
2647
+ 34, 1, 35, 1, 28, 1, 36, 1, 37, 1, 38, 1, 39, 1, 40, 1,
2648
+ 41, 1, 42, 1, 44, 3, 47, 2, 2, 2, 47, 7, 2 ),
2649
+ unpack( 1, 2, 1, 33, 1, 2, 1, 27, 1, 47, 1, 43, 1, 28, 6, 47, 3,
2650
+ 2, 2, 47, 1, 45, 1, 46, 1, 29, 1, 30, 1, 31, 1, 32, 1,
2651
+ 34, 1, 35, 1, 28, 1, 36, 1, 37, 1, 38, 1, 39, 1, 40, 1,
2652
+ 41, 1, 42, 1, 44, 3, 47, 2, 2, 2, 47, 7, 2 ),
2653
+ unpack( 1, 2, 1, 33, 1, 2, 1, 27, 1, 47, 1, 43, 1, 28, 6, 47, 3,
2654
+ 2, 2, 47, 1, 45, 1, 46, 1, 29, 1, 30, 1, 31, 1, 32, 1,
2655
+ 34, 1, 35, 1, 28, 1, 36, 1, 37, 1, 38, 1, 39, 1, 40, 1,
2656
+ 41, 1, 42, 1, 44, 3, 47, 2, 2, 2, 47, 7, 2 ),
2657
+ unpack( 1, 2, 1, 33, 1, 2, 1, 27, 1, 47, 1, 43, 1, 28, 6, 47, 3,
2658
+ 2, 2, 47, 1, 45, 1, 46, 1, 29, 1, 30, 1, 31, 1, 32, 1,
2659
+ 34, 1, 35, 1, 28, 1, 36, 1, 37, 1, 38, 1, 39, 1, 40, 1,
2660
+ 41, 1, 42, 1, 44, 3, 47, 2, 2, 2, 47, 7, 2 ),
2661
+ unpack( 1, 2, 1, 33, 1, 2, 1, 27, 1, 47, 1, 43, 1, 28, 6, 47, 3,
2662
+ 2, 2, 47, 1, 45, 1, 46, 1, 29, 1, 30, 1, 31, 1, 32, 1,
2663
+ 34, 1, 35, 1, 28, 1, 36, 1, 37, 1, 38, 1, 39, 1, 40, 1,
2664
+ 41, 1, 42, 1, 44, 3, 47, 2, 2, 2, 47, 7, 2 ),
2665
+ unpack( 1, 2, 1, 33, 1, 2, 1, 27, 1, 47, 1, 43, 1, 28, 6, 47, 3,
2666
+ 2, 2, 47, 1, 45, 1, 46, 1, 29, 1, 30, 1, 31, 1, 32, 1,
2667
+ 34, 1, 35, 1, 28, 1, 36, 1, 37, 1, 38, 1, 39, 1, 40, 1,
2668
+ 41, 1, 42, 1, 44, 3, 47, 2, 2, 2, 47, 7, 2 ),
2669
+ unpack( 1, 2, 1, 33, 1, 2, 1, 27, 1, 47, 1, 43, 1, 28, 6, 47, 3,
2670
+ 2, 2, 47, 1, 45, 1, 46, 1, 29, 1, 30, 1, 31, 1, 32, 1,
2671
+ 34, 1, 35, 1, 28, 1, 36, 1, 37, 1, 38, 1, 39, 1, 40, 1,
2672
+ 41, 1, 42, 1, 44, 3, 47, 2, 2, 2, 47, 7, 2 ),
2673
+ unpack( 1, 2, 1, 33, 1, 2, 1, 27, 1, 47, 1, 43, 1, 28, 6, 47, 3,
2674
+ 2, 2, 47, 1, 45, 1, 46, 1, 29, 1, 30, 1, 31, 1, 32, 1,
2675
+ 34, 1, 35, 1, 28, 1, 36, 1, 37, 1, 38, 1, 39, 1, 40, 1,
2676
+ 41, 1, 42, 1, 44, 3, 47, 2, 2, 2, 47, 7, 2 ),
2677
+ unpack( 1, 2, 1, 33, 1, 2, 1, 27, 1, 47, 1, 43, 1, 28, 6, 47, 3,
2678
+ 2, 2, 47, 1, 45, 1, 46, 1, 29, 1, 30, 1, 31, 1, 32, 1,
2679
+ 34, 1, 35, 1, 28, 1, 36, 1, 37, 1, 38, 1, 39, 1, 40, 1,
2680
+ 41, 1, 42, 1, 44, 3, 47, 2, 2, 2, 47, 7, 2 ),
2681
+ unpack( 1, 2, 1, 33, 1, 2, 1, 27, 1, 47, 1, 43, 1, 28, 6, 47, 3,
2682
+ 2, 2, 47, 1, 45, 1, 46, 1, 29, 1, 30, 1, 31, 1, 32, 1,
2683
+ 34, 1, 35, 1, 28, 1, 36, 1, 37, 1, 38, 1, 39, 1, 40, 1,
2684
+ 41, 1, 42, 1, 44, 3, 47, 2, 2, 2, 47, 7, 2 ),
2685
+ unpack( 1, 2, 1, 33, 1, 2, 1, 27, 1, 47, 1, 43, 1, 28, 6, 47, 3,
2686
+ 2, 2, 47, 1, 45, 1, 46, 1, 29, 1, 30, 1, 31, 1, 32, 1,
2687
+ 34, 1, 35, 1, 28, 1, 36, 1, 37, 1, 38, 1, 39, 1, 40, 1,
2688
+ 41, 1, 42, 1, 44, 3, 47, 2, 2, 2, 47, 7, 2 ),
2689
+ unpack( 1, 2, 1, 33, 1, 2, 1, 27, 1, 47, 1, 43, 1, 28, 6, 47, 3,
2690
+ 2, 2, 47, 1, 45, 1, 46, 1, 29, 1, 30, 1, 31, 1, 32, 1,
2691
+ 34, 1, 35, 1, 28, 1, 36, 1, 37, 1, 38, 1, 39, 1, 40, 1,
2692
+ 41, 1, 42, 1, 44, 3, 47, 2, 2, 2, 47, 7, 2 ),
2693
+ unpack( 1, 2, 1, 33, 1, 2, 1, 27, 1, 47, 1, 43, 1, 28, 6, 47, 3,
2694
+ 2, 2, 47, 1, 45, 1, 46, 1, 29, 1, 30, 1, 31, 1, 32, 1,
2695
+ 34, 1, 35, 1, 28, 1, 36, 1, 37, 1, 38, 1, 39, 1, 40, 1,
2696
+ 41, 1, 42, 1, 44, 3, 47, 2, 2, 2, 47, 7, 2 )
2590
2697
  ].freeze
2591
2698
 
2592
2699
  ( 0 ... MIN.length ).zip( MIN, MAX ) do | i, a, z |
@@ -2708,88 +2815,90 @@ module OCCIANTLR
2708
2815
  TOKENS_FOLLOWING_QUOTE_IN_link_self_645 = Set[ 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2709
2816
  TOKENS_FOLLOWING_uri_IN_link_self_647 = Set[ 10 ]
2710
2817
  TOKENS_FOLLOWING_QUOTE_IN_link_self_649 = Set[ 1 ]
2711
- TOKENS_FOLLOWING_SEMICOLON_IN_link_category_664 = Set[ 7, 21 ]
2712
- TOKENS_FOLLOWING_WS_IN_link_category_666 = Set[ 21 ]
2713
- TOKENS_FOLLOWING_CATEGORY_IN_link_category_669 = Set[ 9 ]
2714
- TOKENS_FOLLOWING_EQUALS_IN_link_category_671 = Set[ 10 ]
2715
- TOKENS_FOLLOWING_QUOTE_IN_link_category_673 = Set[ 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2716
- TOKENS_FOLLOWING_uri_IN_link_category_675 = Set[ 10 ]
2717
- TOKENS_FOLLOWING_QUOTE_IN_link_category_677 = Set[ 1 ]
2718
- TOKENS_FOLLOWING_SEMICOLON_IN_link_attributes_703 = Set[ 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 39, 40, 41, 44, 45 ]
2719
- TOKENS_FOLLOWING_WS_IN_link_attributes_705 = Set[ 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 39, 40, 41, 44, 45 ]
2720
- TOKENS_FOLLOWING_attribute_IN_link_attributes_708 = Set[ 1, 6 ]
2721
- TOKENS_FOLLOWING_X_OCCI_ATTRIBUTE_KEY_IN_x_occi_attribute_729 = Set[ 5 ]
2722
- TOKENS_FOLLOWING_COLON_IN_x_occi_attribute_731 = Set[ 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 39, 40, 41, 44, 45 ]
2723
- TOKENS_FOLLOWING_WS_IN_x_occi_attribute_733 = Set[ 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 39, 40, 41, 44, 45 ]
2724
- TOKENS_FOLLOWING_attribute_IN_x_occi_attribute_736 = Set[ 1, 6 ]
2725
- TOKENS_FOLLOWING_SEMICOLON_IN_x_occi_attribute_738 = Set[ 1 ]
2726
- TOKENS_FOLLOWING_X_OCCI_LOCATION_KEY_IN_x_occi_location_758 = Set[ 5 ]
2727
- TOKENS_FOLLOWING_COLON_IN_x_occi_location_760 = Set[ 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2728
- TOKENS_FOLLOWING_WS_IN_x_occi_location_762 = Set[ 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2729
- TOKENS_FOLLOWING_uri_IN_x_occi_location_765 = Set[ 1, 6 ]
2730
- TOKENS_FOLLOWING_SEMICOLON_IN_x_occi_location_767 = Set[ 1 ]
2731
- TOKENS_FOLLOWING_LOALPHA_IN_uri_783 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2732
- TOKENS_FOLLOWING_UPALPHA_IN_uri_787 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2733
- TOKENS_FOLLOWING_DIGIT_IN_uri_791 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2734
- TOKENS_FOLLOWING_AT_IN_uri_795 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2735
- TOKENS_FOLLOWING_COLON_IN_uri_799 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2736
- TOKENS_FOLLOWING_PERCENT_IN_uri_803 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2737
- TOKENS_FOLLOWING_UNDERSCORE_IN_uri_807 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2738
- TOKENS_FOLLOWING_BACKSLASH_IN_uri_811 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2739
- TOKENS_FOLLOWING_PLUS_IN_uri_815 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2740
- TOKENS_FOLLOWING_DOT_IN_uri_819 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2741
- TOKENS_FOLLOWING_TILDE_IN_uri_823 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2742
- TOKENS_FOLLOWING_HASH_IN_uri_827 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2743
- TOKENS_FOLLOWING_QUESTION_IN_uri_831 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2744
- TOKENS_FOLLOWING_AMPERSAND_IN_uri_835 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2745
- TOKENS_FOLLOWING_SLASH_IN_uri_839 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2746
- TOKENS_FOLLOWING_EQUALS_IN_uri_843 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2747
- TOKENS_FOLLOWING_DASH_IN_uri_847 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2748
- TOKENS_FOLLOWING_X_OCCI_ATTRIBUTE_KEY_IN_uri_851 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2749
- TOKENS_FOLLOWING_X_OCCI_LOCATION_KEY_IN_uri_855 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2750
- TOKENS_FOLLOWING_reserved_words_IN_uri_859 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2751
- TOKENS_FOLLOWING_LOALPHA_IN_term_872 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 32, 38, 39, 40, 41, 44, 45 ]
2752
- TOKENS_FOLLOWING_reserved_words_IN_term_876 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 32, 38, 39, 40, 41, 44, 45 ]
2753
- TOKENS_FOLLOWING_LOALPHA_IN_term_882 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 32, 38, 39, 40, 41, 44, 45 ]
2754
- TOKENS_FOLLOWING_DIGIT_IN_term_886 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 32, 38, 39, 40, 41, 44, 45 ]
2755
- TOKENS_FOLLOWING_DASH_IN_term_890 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 32, 38, 39, 40, 41, 44, 45 ]
2756
- TOKENS_FOLLOWING_UNDERSCORE_IN_term_894 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 32, 38, 39, 40, 41, 44, 45 ]
2757
- TOKENS_FOLLOWING_DOT_IN_term_898 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 32, 38, 39, 40, 41, 44, 45 ]
2758
- TOKENS_FOLLOWING_reserved_words_IN_term_902 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 32, 38, 39, 40, 41, 44, 45 ]
2759
- TOKENS_FOLLOWING_uri_IN_scheme_922 = Set[ 1 ]
2760
- TOKENS_FOLLOWING_set_IN_class_type_931 = Set[ 1 ]
2761
- TOKENS_FOLLOWING_set_IN_title_952 = Set[ 1, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52 ]
2762
- TOKENS_FOLLOWING_attribute_component_IN_attribute_999 = Set[ 9, 32 ]
2763
- TOKENS_FOLLOWING_DOT_IN_attribute_1010 = Set[ 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 39, 40, 41, 44, 45 ]
2764
- TOKENS_FOLLOWING_attribute_component_IN_attribute_1014 = Set[ 9, 32 ]
2765
- TOKENS_FOLLOWING_EQUALS_IN_attribute_1025 = Set[ 10, 26 ]
2766
- TOKENS_FOLLOWING_attribute_value_IN_attribute_1027 = Set[ 1 ]
2767
- TOKENS_FOLLOWING_attribute_component_IN_attribute_name_1071 = Set[ 1, 32, 48 ]
2768
- TOKENS_FOLLOWING_DOT_IN_attribute_name_1082 = Set[ 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 39, 40, 41, 44, 45 ]
2769
- TOKENS_FOLLOWING_attribute_component_IN_attribute_name_1086 = Set[ 1, 32, 48 ]
2770
- TOKENS_FOLLOWING_T__48_IN_attribute_name_1106 = Set[ 49, 50, 51, 52 ]
2771
- TOKENS_FOLLOWING_T__49_IN_attribute_name_1109 = Set[ 50, 51, 52 ]
2772
- TOKENS_FOLLOWING_T__50_IN_attribute_name_1116 = Set[ 51, 52 ]
2773
- TOKENS_FOLLOWING_T__51_IN_attribute_name_1123 = Set[ 52 ]
2774
- TOKENS_FOLLOWING_T__52_IN_attribute_name_1129 = Set[ 1 ]
2775
- TOKENS_FOLLOWING_LOALPHA_IN_attribute_component_1141 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 38, 39, 40, 41, 44, 45 ]
2776
- TOKENS_FOLLOWING_reserved_words_IN_attribute_component_1145 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 38, 39, 40, 41, 44, 45 ]
2777
- TOKENS_FOLLOWING_LOALPHA_IN_attribute_component_1150 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 38, 39, 40, 41, 44, 45 ]
2778
- TOKENS_FOLLOWING_DIGIT_IN_attribute_component_1154 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 38, 39, 40, 41, 44, 45 ]
2779
- TOKENS_FOLLOWING_DASH_IN_attribute_component_1158 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 38, 39, 40, 41, 44, 45 ]
2780
- TOKENS_FOLLOWING_UNDERSCORE_IN_attribute_component_1162 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 38, 39, 40, 41, 44, 45 ]
2781
- TOKENS_FOLLOWING_reserved_words_IN_attribute_component_1166 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 38, 39, 40, 41, 44, 45 ]
2782
- TOKENS_FOLLOWING_quoted_string_IN_attribute_value_1183 = Set[ 1 ]
2783
- TOKENS_FOLLOWING_number_IN_attribute_value_1189 = Set[ 1 ]
2784
- TOKENS_FOLLOWING_digits_IN_number_1204 = Set[ 1, 32 ]
2785
- TOKENS_FOLLOWING_DOT_IN_number_1208 = Set[ 10, 26 ]
2786
- TOKENS_FOLLOWING_digits_IN_number_1210 = Set[ 1 ]
2787
- TOKENS_FOLLOWING_set_IN_reserved_words_1223 = Set[ 1 ]
2788
- TOKENS_FOLLOWING_QUOTE_IN_quoted_string_1676 = Set[ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52 ]
2789
- TOKENS_FOLLOWING_string_IN_quoted_string_1678 = Set[ 10 ]
2790
- TOKENS_FOLLOWING_QUOTE_IN_quoted_string_1680 = Set[ 1 ]
2791
- TOKENS_FOLLOWING_set_IN_string_1691 = Set[ 1, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52 ]
2792
- TOKENS_FOLLOWING_DIGIT_IN_digits_1725 = Set[ 1, 26 ]
2818
+ TOKENS_FOLLOWING_SEMICOLON_IN_link_category_702 = Set[ 7, 21 ]
2819
+ TOKENS_FOLLOWING_WS_IN_link_category_704 = Set[ 21 ]
2820
+ TOKENS_FOLLOWING_CATEGORY_IN_link_category_707 = Set[ 9 ]
2821
+ TOKENS_FOLLOWING_EQUALS_IN_link_category_709 = Set[ 10 ]
2822
+ TOKENS_FOLLOWING_QUOTE_IN_link_category_711 = Set[ 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2823
+ TOKENS_FOLLOWING_uri_IN_link_category_715 = Set[ 7, 10 ]
2824
+ TOKENS_FOLLOWING_WS_IN_link_category_720 = Set[ 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2825
+ TOKENS_FOLLOWING_uri_IN_link_category_724 = Set[ 7, 10 ]
2826
+ TOKENS_FOLLOWING_QUOTE_IN_link_category_730 = Set[ 1 ]
2827
+ TOKENS_FOLLOWING_SEMICOLON_IN_link_attributes_754 = Set[ 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 39, 40, 41, 44, 45 ]
2828
+ TOKENS_FOLLOWING_WS_IN_link_attributes_756 = Set[ 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 39, 40, 41, 44, 45 ]
2829
+ TOKENS_FOLLOWING_attribute_IN_link_attributes_759 = Set[ 1, 6 ]
2830
+ TOKENS_FOLLOWING_X_OCCI_ATTRIBUTE_KEY_IN_x_occi_attribute_780 = Set[ 5 ]
2831
+ TOKENS_FOLLOWING_COLON_IN_x_occi_attribute_782 = Set[ 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 39, 40, 41, 44, 45 ]
2832
+ TOKENS_FOLLOWING_WS_IN_x_occi_attribute_784 = Set[ 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 39, 40, 41, 44, 45 ]
2833
+ TOKENS_FOLLOWING_attribute_IN_x_occi_attribute_787 = Set[ 1, 6 ]
2834
+ TOKENS_FOLLOWING_SEMICOLON_IN_x_occi_attribute_789 = Set[ 1 ]
2835
+ TOKENS_FOLLOWING_X_OCCI_LOCATION_KEY_IN_x_occi_location_809 = Set[ 5 ]
2836
+ TOKENS_FOLLOWING_COLON_IN_x_occi_location_811 = Set[ 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2837
+ TOKENS_FOLLOWING_WS_IN_x_occi_location_813 = Set[ 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2838
+ TOKENS_FOLLOWING_uri_IN_x_occi_location_816 = Set[ 1, 6 ]
2839
+ TOKENS_FOLLOWING_SEMICOLON_IN_x_occi_location_818 = Set[ 1 ]
2840
+ TOKENS_FOLLOWING_LOALPHA_IN_uri_834 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2841
+ TOKENS_FOLLOWING_UPALPHA_IN_uri_838 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2842
+ TOKENS_FOLLOWING_DIGIT_IN_uri_842 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2843
+ TOKENS_FOLLOWING_AT_IN_uri_846 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2844
+ TOKENS_FOLLOWING_COLON_IN_uri_850 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2845
+ TOKENS_FOLLOWING_PERCENT_IN_uri_854 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2846
+ TOKENS_FOLLOWING_UNDERSCORE_IN_uri_858 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2847
+ TOKENS_FOLLOWING_BACKSLASH_IN_uri_862 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2848
+ TOKENS_FOLLOWING_PLUS_IN_uri_866 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2849
+ TOKENS_FOLLOWING_DOT_IN_uri_870 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2850
+ TOKENS_FOLLOWING_TILDE_IN_uri_874 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2851
+ TOKENS_FOLLOWING_HASH_IN_uri_878 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2852
+ TOKENS_FOLLOWING_QUESTION_IN_uri_882 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2853
+ TOKENS_FOLLOWING_AMPERSAND_IN_uri_886 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2854
+ TOKENS_FOLLOWING_SLASH_IN_uri_890 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2855
+ TOKENS_FOLLOWING_EQUALS_IN_uri_894 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2856
+ TOKENS_FOLLOWING_DASH_IN_uri_898 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2857
+ TOKENS_FOLLOWING_X_OCCI_ATTRIBUTE_KEY_IN_uri_902 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2858
+ TOKENS_FOLLOWING_X_OCCI_LOCATION_KEY_IN_uri_906 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2859
+ TOKENS_FOLLOWING_reserved_words_IN_uri_910 = Set[ 1, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45 ]
2860
+ TOKENS_FOLLOWING_LOALPHA_IN_term_923 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 32, 38, 39, 40, 41, 44, 45 ]
2861
+ TOKENS_FOLLOWING_reserved_words_IN_term_927 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 32, 38, 39, 40, 41, 44, 45 ]
2862
+ TOKENS_FOLLOWING_LOALPHA_IN_term_933 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 32, 38, 39, 40, 41, 44, 45 ]
2863
+ TOKENS_FOLLOWING_DIGIT_IN_term_937 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 32, 38, 39, 40, 41, 44, 45 ]
2864
+ TOKENS_FOLLOWING_DASH_IN_term_941 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 32, 38, 39, 40, 41, 44, 45 ]
2865
+ TOKENS_FOLLOWING_UNDERSCORE_IN_term_945 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 32, 38, 39, 40, 41, 44, 45 ]
2866
+ TOKENS_FOLLOWING_DOT_IN_term_949 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 32, 38, 39, 40, 41, 44, 45 ]
2867
+ TOKENS_FOLLOWING_reserved_words_IN_term_953 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 32, 38, 39, 40, 41, 44, 45 ]
2868
+ TOKENS_FOLLOWING_uri_IN_scheme_973 = Set[ 1 ]
2869
+ TOKENS_FOLLOWING_set_IN_class_type_982 = Set[ 1 ]
2870
+ TOKENS_FOLLOWING_set_IN_title_1003 = Set[ 1, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52 ]
2871
+ TOKENS_FOLLOWING_attribute_component_IN_attribute_1050 = Set[ 9, 32 ]
2872
+ TOKENS_FOLLOWING_DOT_IN_attribute_1061 = Set[ 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 39, 40, 41, 44, 45 ]
2873
+ TOKENS_FOLLOWING_attribute_component_IN_attribute_1065 = Set[ 9, 32 ]
2874
+ TOKENS_FOLLOWING_EQUALS_IN_attribute_1076 = Set[ 10, 26 ]
2875
+ TOKENS_FOLLOWING_attribute_value_IN_attribute_1078 = Set[ 1 ]
2876
+ TOKENS_FOLLOWING_attribute_component_IN_attribute_name_1122 = Set[ 1, 32, 48 ]
2877
+ TOKENS_FOLLOWING_DOT_IN_attribute_name_1133 = Set[ 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 39, 40, 41, 44, 45 ]
2878
+ TOKENS_FOLLOWING_attribute_component_IN_attribute_name_1137 = Set[ 1, 32, 48 ]
2879
+ TOKENS_FOLLOWING_T__48_IN_attribute_name_1157 = Set[ 49, 50, 51, 52 ]
2880
+ TOKENS_FOLLOWING_T__49_IN_attribute_name_1160 = Set[ 50, 51, 52 ]
2881
+ TOKENS_FOLLOWING_T__50_IN_attribute_name_1167 = Set[ 51, 52 ]
2882
+ TOKENS_FOLLOWING_T__51_IN_attribute_name_1174 = Set[ 52 ]
2883
+ TOKENS_FOLLOWING_T__52_IN_attribute_name_1180 = Set[ 1 ]
2884
+ TOKENS_FOLLOWING_LOALPHA_IN_attribute_component_1192 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 38, 39, 40, 41, 44, 45 ]
2885
+ TOKENS_FOLLOWING_reserved_words_IN_attribute_component_1196 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 38, 39, 40, 41, 44, 45 ]
2886
+ TOKENS_FOLLOWING_LOALPHA_IN_attribute_component_1201 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 38, 39, 40, 41, 44, 45 ]
2887
+ TOKENS_FOLLOWING_DIGIT_IN_attribute_component_1205 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 38, 39, 40, 41, 44, 45 ]
2888
+ TOKENS_FOLLOWING_DASH_IN_attribute_component_1209 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 38, 39, 40, 41, 44, 45 ]
2889
+ TOKENS_FOLLOWING_UNDERSCORE_IN_attribute_component_1213 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 38, 39, 40, 41, 44, 45 ]
2890
+ TOKENS_FOLLOWING_reserved_words_IN_attribute_component_1217 = Set[ 1, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 24, 26, 29, 38, 39, 40, 41, 44, 45 ]
2891
+ TOKENS_FOLLOWING_quoted_string_IN_attribute_value_1234 = Set[ 1 ]
2892
+ TOKENS_FOLLOWING_number_IN_attribute_value_1240 = Set[ 1 ]
2893
+ TOKENS_FOLLOWING_digits_IN_number_1255 = Set[ 1, 32 ]
2894
+ TOKENS_FOLLOWING_DOT_IN_number_1259 = Set[ 10, 26 ]
2895
+ TOKENS_FOLLOWING_digits_IN_number_1261 = Set[ 1 ]
2896
+ TOKENS_FOLLOWING_set_IN_reserved_words_1274 = Set[ 1 ]
2897
+ TOKENS_FOLLOWING_QUOTE_IN_quoted_string_1727 = Set[ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52 ]
2898
+ TOKENS_FOLLOWING_string_IN_quoted_string_1729 = Set[ 10 ]
2899
+ TOKENS_FOLLOWING_QUOTE_IN_quoted_string_1731 = Set[ 1 ]
2900
+ TOKENS_FOLLOWING_set_IN_string_1742 = Set[ 1, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52 ]
2901
+ TOKENS_FOLLOWING_DIGIT_IN_digits_1776 = Set[ 1, 26 ]
2793
2902
 
2794
2903
  end # class Parser < ANTLR3::Parser
2795
2904