sfp 0.1.1 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,7 +5,7 @@
5
5
  # Generated using ANTLR version: 3.2.1-SNAPSHOT Jul 31, 2010 19:34:52
6
6
  # Ruby runtime library version: 1.8.11
7
7
  # Input grammar file: SfpLang.g
8
- # Generated at: 2013-04-20 17:59:20
8
+ # Generated at: 2013-05-06 16:26:13
9
9
  #
10
10
 
11
11
  # ~~~> start load path setup
@@ -76,16 +76,16 @@ module SfpLang
76
76
  :ESC_SEQ => 13, :BOOLEAN => 9, :T__51 => 51, :T__52 => 52,
77
77
  :T__18 => 18, :T__53 => 53, :T__54 => 54, :T__59 => 59,
78
78
  :NL => 4, :COMMENT => 11, :T__50 => 50, :T__42 => 42,
79
- :T__43 => 43, :T__40 => 40, :T__41 => 41, :T__46 => 46,
80
- :T__47 => 47, :T__44 => 44, :T__45 => 45, :T__48 => 48,
81
- :T__49 => 49, :UNICODE_ESC => 16, :NULL => 5, :NUMBER => 8,
82
- :HEX_DIGIT => 15, :MULTILINE_STRING => 10, :T__30 => 30,
83
- :T__31 => 31, :T__32 => 32, :WS => 12, :T__71 => 71,
84
- :T__33 => 33, :T__72 => 72, :T__34 => 34, :T__35 => 35,
85
- :T__70 => 70, :T__36 => 36, :T__37 => 37, :T__38 => 38,
86
- :T__39 => 39, :T__76 => 76, :T__75 => 75, :T__74 => 74,
87
- :T__73 => 73, :T__79 => 79, :STRING => 6, :T__78 => 78,
88
- :T__77 => 77 )
79
+ :T__43 => 43, :T__40 => 40, :T__41 => 41, :T__80 => 80,
80
+ :T__46 => 46, :T__47 => 47, :T__44 => 44, :T__45 => 45,
81
+ :T__48 => 48, :T__49 => 49, :UNICODE_ESC => 16, :NULL => 5,
82
+ :NUMBER => 8, :HEX_DIGIT => 15, :MULTILINE_STRING => 10,
83
+ :T__30 => 30, :T__31 => 31, :T__32 => 32, :WS => 12,
84
+ :T__71 => 71, :T__33 => 33, :T__72 => 72, :T__34 => 34,
85
+ :T__35 => 35, :T__70 => 70, :T__36 => 36, :T__37 => 37,
86
+ :T__38 => 38, :T__39 => 39, :T__76 => 76, :T__75 => 75,
87
+ :T__74 => 74, :T__73 => 73, :T__79 => 79, :STRING => 6,
88
+ :T__78 => 78, :T__77 => 77 )
89
89
 
90
90
  # register the proper human-readable name or literal value
91
91
  # for each token type
@@ -96,13 +96,13 @@ module SfpLang
96
96
  register_names( "NL", "NULL", "STRING", "ID", "NUMBER", "BOOLEAN", "MULTILINE_STRING",
97
97
  "COMMENT", "WS", "ESC_SEQ", "EXPONENT", "HEX_DIGIT",
98
98
  "UNICODE_ESC", "OCTAL_ESC", "'include'", "'state'",
99
- "'{'", "'}'", "'composite'", "'class'", "'extends'",
100
- "'isa'", "'['", "']'", "'if'", "'then'", "'or'", "'operator'",
101
- "'cost'", "'conditions'", "'condition'", "'effects'",
102
- "'procedure'", "'('", "','", "')'", "'areall'", "'isset'",
103
- "'effect'", "'goal'", "'constraint'", "'always'", "'sometime'",
104
- "'within'", "'after'", "'before'", "'foreach'", "'as'",
105
- "'forall'", "'exist'", "'forsome'", "'='", "':different'",
99
+ "'{'", "'}'", "'composite'", "'class'", "'schema'",
100
+ "'extends'", "'isa'", "'['", "']'", "'if'", "'then'",
101
+ "'or'", "'operator'", "'cost'", "'conditions'", "'condition'",
102
+ "'effects'", "'procedure'", "'('", "','", "')'", "'areall'",
103
+ "'isset'", "'effect'", "'goal'", "'constraint'", "'always'",
104
+ "'sometime'", "'within'", "'after'", "'before'", "'foreach'",
105
+ "'as'", "'forall'", "'exist'", "'forsome'", "'='", "':different'",
106
106
  "'not'", "'is'", "'in'", "'isnot'", "'isnt'", "'has'",
107
107
  "'total('", "'new'", "'delete'", "'add('", "'remove('",
108
108
  "'.'", "'isref'", "'either'", "'!='", "'+='", "'-='",
@@ -237,7 +237,7 @@ module SfpLang
237
237
  alt_3 = 2
238
238
  look_3_0 = @input.peek( 1 )
239
239
 
240
- if ( look_3_0 == T__23 || look_3_0 == T__36 )
240
+ if ( look_3_0.between?( T__23, T__24 ) || look_3_0 == T__37 )
241
241
  alt_3 = 1
242
242
 
243
243
  end
@@ -262,11 +262,11 @@ module SfpLang
262
262
  case look_5 = @input.peek( 1 )
263
263
  when ID then case look_5 = @input.peek( 2 )
264
264
  when T__19 then alt_5 = 3
265
- when T__44 then alt_5 = 4
266
- when T__26, T__55, T__58, T__68 then alt_5 = 1
267
- when EOF, NL, ID, T__20, T__22, T__25, T__43 then alt_5 = 2
265
+ when T__45 then alt_5 = 4
266
+ when T__27, T__56, T__59, T__69 then alt_5 = 1
267
+ when EOF, NL, ID, T__20, T__22, T__26, T__44 then alt_5 = 2
268
268
  end
269
- when T__43 then alt_5 = 5
269
+ when T__44 then alt_5 = 5
270
270
  when T__22 then alt_5 = 6
271
271
  end
272
272
  case alt_5
@@ -664,9 +664,9 @@ module SfpLang
664
664
  alt_9 = 2
665
665
  look_9_0 = @input.peek( 1 )
666
666
 
667
- if ( look_9_0 == T__23 )
667
+ if ( look_9_0.between?( T__23, T__24 ) )
668
668
  alt_9 = 1
669
- elsif ( look_9_0 == T__36 )
669
+ elsif ( look_9_0 == T__37 )
670
670
  alt_9 = 2
671
671
  else
672
672
  raise NoViableAlternative( "", 9, 0 )
@@ -960,9 +960,9 @@ module SfpLang
960
960
  if ( look_14_0 == ID )
961
961
  look_14_2 = @input.peek( 2 )
962
962
 
963
- if ( look_14_2 == T__44 )
963
+ if ( look_14_2 == T__45 )
964
964
  alt_14 = 2
965
- elsif ( look_14_2 == NL || look_14_2 == T__20 || look_14_2 == T__25 || look_14_2 == T__41 || look_14_2 == T__55 || look_14_2 == T__58 || look_14_2.between?( T__69, T__70 ) )
965
+ elsif ( look_14_2 == NL || look_14_2 == T__20 || look_14_2 == T__26 || look_14_2 == T__42 || look_14_2 == T__56 || look_14_2 == T__59 || look_14_2.between?( T__70, T__71 ) )
966
966
  alt_14 = 1
967
967
 
968
968
  end
@@ -1044,7 +1044,7 @@ module SfpLang
1044
1044
  # parser rule class_definition
1045
1045
  #
1046
1046
  # (in SfpLang.g)
1047
- # 106:1: class_definition : 'class' ID ( extends_class )? ( '{' ( NL )* ( attribute | procedure )* '}' )? ( NL )* ;
1047
+ # 106:1: class_definition : ( 'class' | 'schema' ) ID ( extends_class )? ( '{' ( NL )* ( attribute | procedure )* '}' )? ( NL )* ;
1048
1048
  #
1049
1049
  def class_definition
1050
1050
  # -> uncomment the next line to manually enable rule tracing
@@ -1055,7 +1055,7 @@ module SfpLang
1055
1055
  return_value.start = @input.look
1056
1056
 
1057
1057
  root_0 = nil
1058
- string_literal39 = nil
1058
+ set39 = nil
1059
1059
  __ID40__ = nil
1060
1060
  char_literal42 = nil
1061
1061
  __NL43__ = nil
@@ -1065,7 +1065,7 @@ module SfpLang
1065
1065
  attribute44 = nil
1066
1066
  procedure45 = nil
1067
1067
 
1068
- tree_for_string_literal39 = nil
1068
+ tree_for_set39 = nil
1069
1069
  tree_for_ID40 = nil
1070
1070
  tree_for_char_literal42 = nil
1071
1071
  tree_for_NL43 = nil
@@ -1076,13 +1076,19 @@ module SfpLang
1076
1076
  root_0 = @adaptor.create_flat_list
1077
1077
 
1078
1078
 
1079
- # at line 107:4: 'class' ID ( extends_class )? ( '{' ( NL )* ( attribute | procedure )* '}' )? ( NL )*
1080
- string_literal39 = match( T__23, TOKENS_FOLLOWING_T__23_IN_class_definition_269 )
1079
+ # at line 107:4: ( 'class' | 'schema' ) ID ( extends_class )? ( '{' ( NL )* ( attribute | procedure )* '}' )? ( NL )*
1080
+ set39 = @input.look
1081
+ if @input.peek( 1 ).between?( T__23, T__24 )
1082
+ @input.consume
1083
+ @adaptor.add_child( root_0, @adaptor.create_with_payload( set39 ) )
1084
+ @state.error_recovery = false
1085
+ else
1086
+ mse = MismatchedSet( nil )
1087
+ raise mse
1088
+ end
1081
1089
 
1082
- tree_for_string_literal39 = @adaptor.create_with_payload( string_literal39 )
1083
- @adaptor.add_child( root_0, tree_for_string_literal39 )
1084
1090
 
1085
- __ID40__ = match( ID, TOKENS_FOLLOWING_ID_IN_class_definition_271 )
1091
+ __ID40__ = match( ID, TOKENS_FOLLOWING_ID_IN_class_definition_275 )
1086
1092
 
1087
1093
  tree_for_ID40 = @adaptor.create_with_payload( __ID40__ )
1088
1094
  @adaptor.add_child( root_0, tree_for_ID40 )
@@ -1100,13 +1106,13 @@ module SfpLang
1100
1106
  alt_16 = 2
1101
1107
  look_16_0 = @input.peek( 1 )
1102
1108
 
1103
- if ( look_16_0 == T__24 )
1109
+ if ( look_16_0 == T__25 )
1104
1110
  alt_16 = 1
1105
1111
  end
1106
1112
  case alt_16
1107
1113
  when 1
1108
1114
  # at line 115:4: extends_class
1109
- @state.following.push( TOKENS_FOLLOWING_extends_class_IN_class_definition_280 )
1115
+ @state.following.push( TOKENS_FOLLOWING_extends_class_IN_class_definition_284 )
1110
1116
  extends_class41 = extends_class
1111
1117
  @state.following.pop
1112
1118
  @adaptor.add_child( root_0, extends_class41.tree )
@@ -1127,7 +1133,7 @@ module SfpLang
1127
1133
  case alt_19
1128
1134
  when 1
1129
1135
  # at line 120:4: '{' ( NL )* ( attribute | procedure )* '}'
1130
- char_literal42 = match( T__20, TOKENS_FOLLOWING_T__20_IN_class_definition_294 )
1136
+ char_literal42 = match( T__20, TOKENS_FOLLOWING_T__20_IN_class_definition_298 )
1131
1137
 
1132
1138
  tree_for_char_literal42 = @adaptor.create_with_payload( char_literal42 )
1133
1139
  @adaptor.add_child( root_0, tree_for_char_literal42 )
@@ -1144,7 +1150,7 @@ module SfpLang
1144
1150
  case alt_17
1145
1151
  when 1
1146
1152
  # at line 120:8: NL
1147
- __NL43__ = match( NL, TOKENS_FOLLOWING_NL_IN_class_definition_296 )
1153
+ __NL43__ = match( NL, TOKENS_FOLLOWING_NL_IN_class_definition_300 )
1148
1154
 
1149
1155
  tree_for_NL43 = @adaptor.create_with_payload( __NL43__ )
1150
1156
  @adaptor.add_child( root_0, tree_for_NL43 )
@@ -1161,21 +1167,21 @@ module SfpLang
1161
1167
 
1162
1168
  if ( look_18_0 == ID )
1163
1169
  alt_18 = 1
1164
- elsif ( look_18_0 == T__36 )
1170
+ elsif ( look_18_0 == T__37 )
1165
1171
  alt_18 = 2
1166
1172
 
1167
1173
  end
1168
1174
  case alt_18
1169
1175
  when 1
1170
1176
  # at line 120:14: attribute
1171
- @state.following.push( TOKENS_FOLLOWING_attribute_IN_class_definition_301 )
1177
+ @state.following.push( TOKENS_FOLLOWING_attribute_IN_class_definition_305 )
1172
1178
  attribute44 = attribute
1173
1179
  @state.following.pop
1174
1180
  @adaptor.add_child( root_0, attribute44.tree )
1175
1181
 
1176
1182
  when 2
1177
1183
  # at line 120:26: procedure
1178
- @state.following.push( TOKENS_FOLLOWING_procedure_IN_class_definition_305 )
1184
+ @state.following.push( TOKENS_FOLLOWING_procedure_IN_class_definition_309 )
1179
1185
  procedure45 = procedure
1180
1186
  @state.following.pop
1181
1187
  @adaptor.add_child( root_0, procedure45.tree )
@@ -1184,7 +1190,7 @@ module SfpLang
1184
1190
  break # out of loop for decision 18
1185
1191
  end
1186
1192
  end # loop for decision 18
1187
- char_literal46 = match( T__21, TOKENS_FOLLOWING_T__21_IN_class_definition_310 )
1193
+ char_literal46 = match( T__21, TOKENS_FOLLOWING_T__21_IN_class_definition_314 )
1188
1194
 
1189
1195
  tree_for_char_literal46 = @adaptor.create_with_payload( char_literal46 )
1190
1196
  @adaptor.add_child( root_0, tree_for_char_literal46 )
@@ -1203,7 +1209,7 @@ module SfpLang
1203
1209
  case alt_20
1204
1210
  when 1
1205
1211
  # at line 120:45: NL
1206
- __NL47__ = match( NL, TOKENS_FOLLOWING_NL_IN_class_definition_314 )
1212
+ __NL47__ = match( NL, TOKENS_FOLLOWING_NL_IN_class_definition_318 )
1207
1213
 
1208
1214
  tree_for_NL47 = @adaptor.create_with_payload( __NL47__ )
1209
1215
  @adaptor.add_child( root_0, tree_for_NL47 )
@@ -1270,12 +1276,12 @@ module SfpLang
1270
1276
 
1271
1277
 
1272
1278
  # at line 131:4: 'extends' path
1273
- string_literal48 = match( T__24, TOKENS_FOLLOWING_T__24_IN_extends_class_335 )
1279
+ string_literal48 = match( T__25, TOKENS_FOLLOWING_T__25_IN_extends_class_339 )
1274
1280
 
1275
1281
  tree_for_string_literal48 = @adaptor.create_with_payload( string_literal48 )
1276
1282
  @adaptor.add_child( root_0, tree_for_string_literal48 )
1277
1283
 
1278
- @state.following.push( TOKENS_FOLLOWING_path_IN_extends_class_337 )
1284
+ @state.following.push( TOKENS_FOLLOWING_path_IN_extends_class_341 )
1279
1285
  path49 = path
1280
1286
  @state.following.pop
1281
1287
  @adaptor.add_child( root_0, path49.tree )
@@ -1357,11 +1363,11 @@ module SfpLang
1357
1363
 
1358
1364
  if ( look_26_0 == ID )
1359
1365
  case look_26 = @input.peek( 2 )
1360
- when T__55, T__58 then alt_26 = 1
1361
- when T__69 then alt_26 = 2
1362
- when T__41 then alt_26 = 3
1363
- when T__70 then alt_26 = 4
1364
- when NL, T__20, T__25 then alt_26 = 5
1366
+ when T__56, T__59 then alt_26 = 1
1367
+ when T__70 then alt_26 = 2
1368
+ when T__42 then alt_26 = 3
1369
+ when T__71 then alt_26 = 4
1370
+ when NL, T__20, T__26 then alt_26 = 5
1365
1371
  else
1366
1372
  raise NoViableAlternative( "", 26, 1 )
1367
1373
  end
@@ -1374,16 +1380,16 @@ module SfpLang
1374
1380
 
1375
1381
 
1376
1382
  # at line 139:4: ID equals_op value ( NL )+
1377
- __ID50__ = match( ID, TOKENS_FOLLOWING_ID_IN_attribute_352 )
1383
+ __ID50__ = match( ID, TOKENS_FOLLOWING_ID_IN_attribute_356 )
1378
1384
 
1379
1385
  tree_for_ID50 = @adaptor.create_with_payload( __ID50__ )
1380
1386
  @adaptor.add_child( root_0, tree_for_ID50 )
1381
1387
 
1382
- @state.following.push( TOKENS_FOLLOWING_equals_op_IN_attribute_354 )
1388
+ @state.following.push( TOKENS_FOLLOWING_equals_op_IN_attribute_358 )
1383
1389
  equals_op51 = equals_op
1384
1390
  @state.following.pop
1385
1391
  @adaptor.add_child( root_0, equals_op51.tree )
1386
- @state.following.push( TOKENS_FOLLOWING_value_IN_attribute_356 )
1392
+ @state.following.push( TOKENS_FOLLOWING_value_IN_attribute_360 )
1387
1393
  value52 = value
1388
1394
  @state.following.pop
1389
1395
  @adaptor.add_child( root_0, value52.tree )
@@ -1400,7 +1406,7 @@ module SfpLang
1400
1406
  case alt_21
1401
1407
  when 1
1402
1408
  # at line 139:23: NL
1403
- __NL53__ = match( NL, TOKENS_FOLLOWING_NL_IN_attribute_358 )
1409
+ __NL53__ = match( NL, TOKENS_FOLLOWING_NL_IN_attribute_362 )
1404
1410
 
1405
1411
  tree_for_NL53 = @adaptor.create_with_payload( __NL53__ )
1406
1412
  @adaptor.add_child( root_0, tree_for_NL53 )
@@ -1432,12 +1438,12 @@ module SfpLang
1432
1438
 
1433
1439
 
1434
1440
  # at line 148:4: ID reference_type ( NL )+
1435
- __ID54__ = match( ID, TOKENS_FOLLOWING_ID_IN_attribute_368 )
1441
+ __ID54__ = match( ID, TOKENS_FOLLOWING_ID_IN_attribute_372 )
1436
1442
 
1437
1443
  tree_for_ID54 = @adaptor.create_with_payload( __ID54__ )
1438
1444
  @adaptor.add_child( root_0, tree_for_ID54 )
1439
1445
 
1440
- @state.following.push( TOKENS_FOLLOWING_reference_type_IN_attribute_370 )
1446
+ @state.following.push( TOKENS_FOLLOWING_reference_type_IN_attribute_374 )
1441
1447
  reference_type55 = reference_type
1442
1448
  @state.following.pop
1443
1449
  @adaptor.add_child( root_0, reference_type55.tree )
@@ -1454,7 +1460,7 @@ module SfpLang
1454
1460
  case alt_22
1455
1461
  when 1
1456
1462
  # at line 148:22: NL
1457
- __NL56__ = match( NL, TOKENS_FOLLOWING_NL_IN_attribute_372 )
1463
+ __NL56__ = match( NL, TOKENS_FOLLOWING_NL_IN_attribute_376 )
1458
1464
 
1459
1465
  tree_for_NL56 = @adaptor.create_with_payload( __NL56__ )
1460
1466
  @adaptor.add_child( root_0, tree_for_NL56 )
@@ -1479,12 +1485,12 @@ module SfpLang
1479
1485
 
1480
1486
 
1481
1487
  # at line 150:4: ID set_type ( NL )+
1482
- __ID57__ = match( ID, TOKENS_FOLLOWING_ID_IN_attribute_382 )
1488
+ __ID57__ = match( ID, TOKENS_FOLLOWING_ID_IN_attribute_386 )
1483
1489
 
1484
1490
  tree_for_ID57 = @adaptor.create_with_payload( __ID57__ )
1485
1491
  @adaptor.add_child( root_0, tree_for_ID57 )
1486
1492
 
1487
- @state.following.push( TOKENS_FOLLOWING_set_type_IN_attribute_384 )
1493
+ @state.following.push( TOKENS_FOLLOWING_set_type_IN_attribute_388 )
1488
1494
  set_type58 = set_type
1489
1495
  @state.following.pop
1490
1496
  @adaptor.add_child( root_0, set_type58.tree )
@@ -1501,7 +1507,7 @@ module SfpLang
1501
1507
  case alt_23
1502
1508
  when 1
1503
1509
  # at line 150:16: NL
1504
- __NL59__ = match( NL, TOKENS_FOLLOWING_NL_IN_attribute_386 )
1510
+ __NL59__ = match( NL, TOKENS_FOLLOWING_NL_IN_attribute_390 )
1505
1511
 
1506
1512
  tree_for_NL59 = @adaptor.create_with_payload( __NL59__ )
1507
1513
  @adaptor.add_child( root_0, tree_for_NL59 )
@@ -1526,16 +1532,16 @@ module SfpLang
1526
1532
 
1527
1533
 
1528
1534
  # at line 152:4: ID probability_op set_value ( NL )+
1529
- __ID60__ = match( ID, TOKENS_FOLLOWING_ID_IN_attribute_396 )
1535
+ __ID60__ = match( ID, TOKENS_FOLLOWING_ID_IN_attribute_400 )
1530
1536
 
1531
1537
  tree_for_ID60 = @adaptor.create_with_payload( __ID60__ )
1532
1538
  @adaptor.add_child( root_0, tree_for_ID60 )
1533
1539
 
1534
- @state.following.push( TOKENS_FOLLOWING_probability_op_IN_attribute_398 )
1540
+ @state.following.push( TOKENS_FOLLOWING_probability_op_IN_attribute_402 )
1535
1541
  probability_op61 = probability_op
1536
1542
  @state.following.pop
1537
1543
  @adaptor.add_child( root_0, probability_op61.tree )
1538
- @state.following.push( TOKENS_FOLLOWING_set_value_IN_attribute_400 )
1544
+ @state.following.push( TOKENS_FOLLOWING_set_value_IN_attribute_404 )
1539
1545
  set_value62 = set_value
1540
1546
  @state.following.pop
1541
1547
  @adaptor.add_child( root_0, set_value62.tree )
@@ -1552,7 +1558,7 @@ module SfpLang
1552
1558
  case alt_24
1553
1559
  when 1
1554
1560
  # at line 152:32: NL
1555
- __NL63__ = match( NL, TOKENS_FOLLOWING_NL_IN_attribute_402 )
1561
+ __NL63__ = match( NL, TOKENS_FOLLOWING_NL_IN_attribute_406 )
1556
1562
 
1557
1563
  tree_for_NL63 = @adaptor.create_with_payload( __NL63__ )
1558
1564
  @adaptor.add_child( root_0, tree_for_NL63 )
@@ -1584,7 +1590,7 @@ module SfpLang
1584
1590
 
1585
1591
 
1586
1592
  # at line 161:4: object_def ( NL )+
1587
- @state.following.push( TOKENS_FOLLOWING_object_def_IN_attribute_412 )
1593
+ @state.following.push( TOKENS_FOLLOWING_object_def_IN_attribute_416 )
1588
1594
  object_def64 = object_def
1589
1595
  @state.following.pop
1590
1596
  @adaptor.add_child( root_0, object_def64.tree )
@@ -1601,7 +1607,7 @@ module SfpLang
1601
1607
  case alt_25
1602
1608
  when 1
1603
1609
  # at line 161:15: NL
1604
- __NL65__ = match( NL, TOKENS_FOLLOWING_NL_IN_attribute_414 )
1610
+ __NL65__ = match( NL, TOKENS_FOLLOWING_NL_IN_attribute_418 )
1605
1611
 
1606
1612
  tree_for_NL65 = @adaptor.create_with_payload( __NL65__ )
1607
1613
  @adaptor.add_child( root_0, tree_for_NL65 )
@@ -1675,7 +1681,7 @@ module SfpLang
1675
1681
 
1676
1682
 
1677
1683
  # at line 165:4: ID ( 'isa' path ( '[' NUMBER ']' )? )? ( object_body )?
1678
- __ID66__ = match( ID, TOKENS_FOLLOWING_ID_IN_object_def_426 )
1684
+ __ID66__ = match( ID, TOKENS_FOLLOWING_ID_IN_object_def_430 )
1679
1685
 
1680
1686
  tree_for_ID66 = @adaptor.create_with_payload( __ID66__ )
1681
1687
  @adaptor.add_child( root_0, tree_for_ID66 )
@@ -1695,18 +1701,18 @@ module SfpLang
1695
1701
  alt_28 = 2
1696
1702
  look_28_0 = @input.peek( 1 )
1697
1703
 
1698
- if ( look_28_0 == T__25 )
1704
+ if ( look_28_0 == T__26 )
1699
1705
  alt_28 = 1
1700
1706
  end
1701
1707
  case alt_28
1702
1708
  when 1
1703
1709
  # at line 175:4: 'isa' path ( '[' NUMBER ']' )?
1704
- string_literal67 = match( T__25, TOKENS_FOLLOWING_T__25_IN_object_def_435 )
1710
+ string_literal67 = match( T__26, TOKENS_FOLLOWING_T__26_IN_object_def_439 )
1705
1711
 
1706
1712
  tree_for_string_literal67 = @adaptor.create_with_payload( string_literal67 )
1707
1713
  @adaptor.add_child( root_0, tree_for_string_literal67 )
1708
1714
 
1709
- @state.following.push( TOKENS_FOLLOWING_path_IN_object_def_437 )
1715
+ @state.following.push( TOKENS_FOLLOWING_path_IN_object_def_441 )
1710
1716
  path68 = path
1711
1717
  @state.following.pop
1712
1718
  @adaptor.add_child( root_0, path68.tree )
@@ -1714,18 +1720,18 @@ module SfpLang
1714
1720
  alt_27 = 2
1715
1721
  look_27_0 = @input.peek( 1 )
1716
1722
 
1717
- if ( look_27_0 == T__26 )
1723
+ if ( look_27_0 == T__27 )
1718
1724
  alt_27 = 1
1719
1725
  end
1720
1726
  case alt_27
1721
1727
  when 1
1722
1728
  # at line 175:15: '[' NUMBER ']'
1723
- char_literal69 = match( T__26, TOKENS_FOLLOWING_T__26_IN_object_def_439 )
1729
+ char_literal69 = match( T__27, TOKENS_FOLLOWING_T__27_IN_object_def_443 )
1724
1730
 
1725
1731
  tree_for_char_literal69 = @adaptor.create_with_payload( char_literal69 )
1726
1732
  @adaptor.add_child( root_0, tree_for_char_literal69 )
1727
1733
 
1728
- __NUMBER70__ = match( NUMBER, TOKENS_FOLLOWING_NUMBER_IN_object_def_441 )
1734
+ __NUMBER70__ = match( NUMBER, TOKENS_FOLLOWING_NUMBER_IN_object_def_445 )
1729
1735
 
1730
1736
  tree_for_NUMBER70 = @adaptor.create_with_payload( __NUMBER70__ )
1731
1737
  @adaptor.add_child( root_0, tree_for_NUMBER70 )
@@ -1733,7 +1739,7 @@ module SfpLang
1733
1739
  # --> action
1734
1740
  @now['_is_array'] = true
1735
1741
  # <-- action
1736
- char_literal71 = match( T__27, TOKENS_FOLLOWING_T__27_IN_object_def_445 )
1742
+ char_literal71 = match( T__28, TOKENS_FOLLOWING_T__28_IN_object_def_449 )
1737
1743
 
1738
1744
  tree_for_char_literal71 = @adaptor.create_with_payload( char_literal71 )
1739
1745
  @adaptor.add_child( root_0, tree_for_char_literal71 )
@@ -1758,7 +1764,7 @@ module SfpLang
1758
1764
  case alt_29
1759
1765
  when 1
1760
1766
  # at line 181:3: object_body
1761
- @state.following.push( TOKENS_FOLLOWING_object_body_IN_object_def_460 )
1767
+ @state.following.push( TOKENS_FOLLOWING_object_body_IN_object_def_464 )
1762
1768
  object_body72 = object_body
1763
1769
  @state.following.pop
1764
1770
  @adaptor.add_child( root_0, object_body72.tree )
@@ -1837,7 +1843,7 @@ module SfpLang
1837
1843
 
1838
1844
 
1839
1845
  # at line 202:4: '{' ( NL )* ( object_attribute | state_dependency | operator )* '}'
1840
- char_literal73 = match( T__20, TOKENS_FOLLOWING_T__20_IN_object_body_476 )
1846
+ char_literal73 = match( T__20, TOKENS_FOLLOWING_T__20_IN_object_body_480 )
1841
1847
 
1842
1848
  tree_for_char_literal73 = @adaptor.create_with_payload( char_literal73 )
1843
1849
  @adaptor.add_child( root_0, tree_for_char_literal73 )
@@ -1854,7 +1860,7 @@ module SfpLang
1854
1860
  case alt_30
1855
1861
  when 1
1856
1862
  # at line 202:8: NL
1857
- __NL74__ = match( NL, TOKENS_FOLLOWING_NL_IN_object_body_478 )
1863
+ __NL74__ = match( NL, TOKENS_FOLLOWING_NL_IN_object_body_482 )
1858
1864
 
1859
1865
  tree_for_NL74 = @adaptor.create_with_payload( __NL74__ )
1860
1866
  @adaptor.add_child( root_0, tree_for_NL74 )
@@ -1869,27 +1875,27 @@ module SfpLang
1869
1875
  alt_31 = 4
1870
1876
  case look_31 = @input.peek( 1 )
1871
1877
  when ID then alt_31 = 1
1872
- when T__28 then alt_31 = 2
1873
- when T__31 then alt_31 = 3
1878
+ when T__29 then alt_31 = 2
1879
+ when T__32 then alt_31 = 3
1874
1880
  end
1875
1881
  case alt_31
1876
1882
  when 1
1877
1883
  # at line 202:14: object_attribute
1878
- @state.following.push( TOKENS_FOLLOWING_object_attribute_IN_object_body_483 )
1884
+ @state.following.push( TOKENS_FOLLOWING_object_attribute_IN_object_body_487 )
1879
1885
  object_attribute75 = object_attribute
1880
1886
  @state.following.pop
1881
1887
  @adaptor.add_child( root_0, object_attribute75.tree )
1882
1888
 
1883
1889
  when 2
1884
1890
  # at line 202:33: state_dependency
1885
- @state.following.push( TOKENS_FOLLOWING_state_dependency_IN_object_body_487 )
1891
+ @state.following.push( TOKENS_FOLLOWING_state_dependency_IN_object_body_491 )
1886
1892
  state_dependency76 = state_dependency
1887
1893
  @state.following.pop
1888
1894
  @adaptor.add_child( root_0, state_dependency76.tree )
1889
1895
 
1890
1896
  when 3
1891
1897
  # at line 202:52: operator
1892
- @state.following.push( TOKENS_FOLLOWING_operator_IN_object_body_491 )
1898
+ @state.following.push( TOKENS_FOLLOWING_operator_IN_object_body_495 )
1893
1899
  operator77 = operator
1894
1900
  @state.following.pop
1895
1901
  @adaptor.add_child( root_0, operator77.tree )
@@ -1898,7 +1904,7 @@ module SfpLang
1898
1904
  break # out of loop for decision 31
1899
1905
  end
1900
1906
  end # loop for decision 31
1901
- char_literal78 = match( T__21, TOKENS_FOLLOWING_T__21_IN_object_body_496 )
1907
+ char_literal78 = match( T__21, TOKENS_FOLLOWING_T__21_IN_object_body_500 )
1902
1908
 
1903
1909
  tree_for_char_literal78 = @adaptor.create_with_payload( char_literal78 )
1904
1910
  @adaptor.add_child( root_0, tree_for_char_literal78 )
@@ -1959,17 +1965,17 @@ module SfpLang
1959
1965
  if ( look_33_0 == ID )
1960
1966
  look_33_1 = @input.peek( 2 )
1961
1967
 
1962
- if ( look_33_1 == T__55 || look_33_1 == T__58 )
1968
+ if ( look_33_1 == T__56 || look_33_1 == T__59 )
1963
1969
  look_33_2 = @input.peek( 3 )
1964
1970
 
1965
- if ( look_33_2.between?( STRING, MULTILINE_STRING ) || look_33_2 == T__37 )
1971
+ if ( look_33_2.between?( STRING, MULTILINE_STRING ) || look_33_2 == T__38 )
1966
1972
  alt_33 = 1
1967
1973
  elsif ( look_33_2 == NULL )
1968
1974
  alt_33 = 2
1969
1975
  else
1970
1976
  raise NoViableAlternative( "", 33, 2 )
1971
1977
  end
1972
- elsif ( look_33_1 == NL || look_33_1 == T__20 || look_33_1 == T__25 || look_33_1 == T__41 || look_33_1.between?( T__69, T__70 ) )
1978
+ elsif ( look_33_1 == NL || look_33_1 == T__20 || look_33_1 == T__26 || look_33_1 == T__42 || look_33_1.between?( T__70, T__71 ) )
1973
1979
  alt_33 = 1
1974
1980
  else
1975
1981
  raise NoViableAlternative( "", 33, 1 )
@@ -1983,7 +1989,7 @@ module SfpLang
1983
1989
 
1984
1990
 
1985
1991
  # at line 206:4: attribute
1986
- @state.following.push( TOKENS_FOLLOWING_attribute_IN_object_attribute_507 )
1992
+ @state.following.push( TOKENS_FOLLOWING_attribute_IN_object_attribute_511 )
1987
1993
  attribute79 = attribute
1988
1994
  @state.following.pop
1989
1995
  @adaptor.add_child( root_0, attribute79.tree )
@@ -1993,16 +1999,16 @@ module SfpLang
1993
1999
 
1994
2000
 
1995
2001
  # at line 207:4: ID equals_op NULL ( NL )+
1996
- __ID80__ = match( ID, TOKENS_FOLLOWING_ID_IN_object_attribute_512 )
2002
+ __ID80__ = match( ID, TOKENS_FOLLOWING_ID_IN_object_attribute_516 )
1997
2003
 
1998
2004
  tree_for_ID80 = @adaptor.create_with_payload( __ID80__ )
1999
2005
  @adaptor.add_child( root_0, tree_for_ID80 )
2000
2006
 
2001
- @state.following.push( TOKENS_FOLLOWING_equals_op_IN_object_attribute_514 )
2007
+ @state.following.push( TOKENS_FOLLOWING_equals_op_IN_object_attribute_518 )
2002
2008
  equals_op81 = equals_op
2003
2009
  @state.following.pop
2004
2010
  @adaptor.add_child( root_0, equals_op81.tree )
2005
- __NULL82__ = match( NULL, TOKENS_FOLLOWING_NULL_IN_object_attribute_516 )
2011
+ __NULL82__ = match( NULL, TOKENS_FOLLOWING_NULL_IN_object_attribute_520 )
2006
2012
 
2007
2013
  tree_for_NULL82 = @adaptor.create_with_payload( __NULL82__ )
2008
2014
  @adaptor.add_child( root_0, tree_for_NULL82 )
@@ -2020,7 +2026,7 @@ module SfpLang
2020
2026
  case alt_32
2021
2027
  when 1
2022
2028
  # at line 207:22: NL
2023
- __NL83__ = match( NL, TOKENS_FOLLOWING_NL_IN_object_attribute_518 )
2029
+ __NL83__ = match( NL, TOKENS_FOLLOWING_NL_IN_object_attribute_522 )
2024
2030
 
2025
2031
  tree_for_NL83 = @adaptor.create_with_payload( __NL83__ )
2026
2032
  @adaptor.add_child( root_0, tree_for_NL83 )
@@ -2116,12 +2122,12 @@ module SfpLang
2116
2122
 
2117
2123
 
2118
2124
  # at line 212:4: 'if' dep_effect ( NL )* 'then' ( NL )* '{' ( NL )* constraint_body '}' ( ( NL )* 'or' ( NL )* '{' ( NL )* constraint_body '}' )* ( NL )+
2119
- string_literal84 = match( T__28, TOKENS_FOLLOWING_T__28_IN_state_dependency_534 )
2125
+ string_literal84 = match( T__29, TOKENS_FOLLOWING_T__29_IN_state_dependency_538 )
2120
2126
 
2121
2127
  tree_for_string_literal84 = @adaptor.create_with_payload( string_literal84 )
2122
2128
  @adaptor.add_child( root_0, tree_for_string_literal84 )
2123
2129
 
2124
- @state.following.push( TOKENS_FOLLOWING_dep_effect_IN_state_dependency_538 )
2130
+ @state.following.push( TOKENS_FOLLOWING_dep_effect_IN_state_dependency_542 )
2125
2131
  dep_effect85 = dep_effect
2126
2132
  @state.following.pop
2127
2133
  @adaptor.add_child( root_0, dep_effect85.tree )
@@ -2137,7 +2143,7 @@ module SfpLang
2137
2143
  case alt_34
2138
2144
  when 1
2139
2145
  # at line 213:14: NL
2140
- __NL86__ = match( NL, TOKENS_FOLLOWING_NL_IN_state_dependency_540 )
2146
+ __NL86__ = match( NL, TOKENS_FOLLOWING_NL_IN_state_dependency_544 )
2141
2147
 
2142
2148
  tree_for_NL86 = @adaptor.create_with_payload( __NL86__ )
2143
2149
  @adaptor.add_child( root_0, tree_for_NL86 )
@@ -2147,7 +2153,7 @@ module SfpLang
2147
2153
  break # out of loop for decision 34
2148
2154
  end
2149
2155
  end # loop for decision 34
2150
- string_literal87 = match( T__29, TOKENS_FOLLOWING_T__29_IN_state_dependency_543 )
2156
+ string_literal87 = match( T__30, TOKENS_FOLLOWING_T__30_IN_state_dependency_547 )
2151
2157
 
2152
2158
  tree_for_string_literal87 = @adaptor.create_with_payload( string_literal87 )
2153
2159
  @adaptor.add_child( root_0, tree_for_string_literal87 )
@@ -2164,7 +2170,7 @@ module SfpLang
2164
2170
  case alt_35
2165
2171
  when 1
2166
2172
  # at line 213:25: NL
2167
- __NL88__ = match( NL, TOKENS_FOLLOWING_NL_IN_state_dependency_545 )
2173
+ __NL88__ = match( NL, TOKENS_FOLLOWING_NL_IN_state_dependency_549 )
2168
2174
 
2169
2175
  tree_for_NL88 = @adaptor.create_with_payload( __NL88__ )
2170
2176
  @adaptor.add_child( root_0, tree_for_NL88 )
@@ -2174,7 +2180,7 @@ module SfpLang
2174
2180
  break # out of loop for decision 35
2175
2181
  end
2176
2182
  end # loop for decision 35
2177
- char_literal89 = match( T__20, TOKENS_FOLLOWING_T__20_IN_state_dependency_548 )
2183
+ char_literal89 = match( T__20, TOKENS_FOLLOWING_T__20_IN_state_dependency_552 )
2178
2184
 
2179
2185
  tree_for_char_literal89 = @adaptor.create_with_payload( char_literal89 )
2180
2186
  @adaptor.add_child( root_0, tree_for_char_literal89 )
@@ -2191,7 +2197,7 @@ module SfpLang
2191
2197
  case alt_36
2192
2198
  when 1
2193
2199
  # at line 214:3: NL
2194
- __NL90__ = match( NL, TOKENS_FOLLOWING_NL_IN_state_dependency_552 )
2200
+ __NL90__ = match( NL, TOKENS_FOLLOWING_NL_IN_state_dependency_556 )
2195
2201
 
2196
2202
  tree_for_NL90 = @adaptor.create_with_payload( __NL90__ )
2197
2203
  @adaptor.add_child( root_0, tree_for_NL90 )
@@ -2201,11 +2207,11 @@ module SfpLang
2201
2207
  break # out of loop for decision 36
2202
2208
  end
2203
2209
  end # loop for decision 36
2204
- @state.following.push( TOKENS_FOLLOWING_constraint_body_IN_state_dependency_555 )
2210
+ @state.following.push( TOKENS_FOLLOWING_constraint_body_IN_state_dependency_559 )
2205
2211
  constraint_body91 = constraint_body
2206
2212
  @state.following.pop
2207
2213
  @adaptor.add_child( root_0, constraint_body91.tree )
2208
- char_literal92 = match( T__21, TOKENS_FOLLOWING_T__21_IN_state_dependency_560 )
2214
+ char_literal92 = match( T__21, TOKENS_FOLLOWING_T__21_IN_state_dependency_564 )
2209
2215
 
2210
2216
  tree_for_char_literal92 = @adaptor.create_with_payload( char_literal92 )
2211
2217
  @adaptor.add_child( root_0, tree_for_char_literal92 )
@@ -2229,7 +2235,7 @@ module SfpLang
2229
2235
  case alt_37
2230
2236
  when 1
2231
2237
  # at line 216:5: NL
2232
- __NL93__ = match( NL, TOKENS_FOLLOWING_NL_IN_state_dependency_566 )
2238
+ __NL93__ = match( NL, TOKENS_FOLLOWING_NL_IN_state_dependency_570 )
2233
2239
 
2234
2240
  tree_for_NL93 = @adaptor.create_with_payload( __NL93__ )
2235
2241
  @adaptor.add_child( root_0, tree_for_NL93 )
@@ -2239,7 +2245,7 @@ module SfpLang
2239
2245
  break # out of loop for decision 37
2240
2246
  end
2241
2247
  end # loop for decision 37
2242
- string_literal94 = match( T__30, TOKENS_FOLLOWING_T__30_IN_state_dependency_569 )
2248
+ string_literal94 = match( T__31, TOKENS_FOLLOWING_T__31_IN_state_dependency_573 )
2243
2249
 
2244
2250
  tree_for_string_literal94 = @adaptor.create_with_payload( string_literal94 )
2245
2251
  @adaptor.add_child( root_0, tree_for_string_literal94 )
@@ -2256,7 +2262,7 @@ module SfpLang
2256
2262
  case alt_38
2257
2263
  when 1
2258
2264
  # at line 216:14: NL
2259
- __NL95__ = match( NL, TOKENS_FOLLOWING_NL_IN_state_dependency_571 )
2265
+ __NL95__ = match( NL, TOKENS_FOLLOWING_NL_IN_state_dependency_575 )
2260
2266
 
2261
2267
  tree_for_NL95 = @adaptor.create_with_payload( __NL95__ )
2262
2268
  @adaptor.add_child( root_0, tree_for_NL95 )
@@ -2266,7 +2272,7 @@ module SfpLang
2266
2272
  break # out of loop for decision 38
2267
2273
  end
2268
2274
  end # loop for decision 38
2269
- char_literal96 = match( T__20, TOKENS_FOLLOWING_T__20_IN_state_dependency_574 )
2275
+ char_literal96 = match( T__20, TOKENS_FOLLOWING_T__20_IN_state_dependency_578 )
2270
2276
 
2271
2277
  tree_for_char_literal96 = @adaptor.create_with_payload( char_literal96 )
2272
2278
  @adaptor.add_child( root_0, tree_for_char_literal96 )
@@ -2283,7 +2289,7 @@ module SfpLang
2283
2289
  case alt_39
2284
2290
  when 1
2285
2291
  # at line 217:3: NL
2286
- __NL97__ = match( NL, TOKENS_FOLLOWING_NL_IN_state_dependency_578 )
2292
+ __NL97__ = match( NL, TOKENS_FOLLOWING_NL_IN_state_dependency_582 )
2287
2293
 
2288
2294
  tree_for_NL97 = @adaptor.create_with_payload( __NL97__ )
2289
2295
  @adaptor.add_child( root_0, tree_for_NL97 )
@@ -2293,11 +2299,11 @@ module SfpLang
2293
2299
  break # out of loop for decision 39
2294
2300
  end
2295
2301
  end # loop for decision 39
2296
- @state.following.push( TOKENS_FOLLOWING_constraint_body_IN_state_dependency_581 )
2302
+ @state.following.push( TOKENS_FOLLOWING_constraint_body_IN_state_dependency_585 )
2297
2303
  constraint_body98 = constraint_body
2298
2304
  @state.following.pop
2299
2305
  @adaptor.add_child( root_0, constraint_body98.tree )
2300
- char_literal99 = match( T__21, TOKENS_FOLLOWING_T__21_IN_state_dependency_585 )
2306
+ char_literal99 = match( T__21, TOKENS_FOLLOWING_T__21_IN_state_dependency_589 )
2301
2307
 
2302
2308
  tree_for_char_literal99 = @adaptor.create_with_payload( char_literal99 )
2303
2309
  @adaptor.add_child( root_0, tree_for_char_literal99 )
@@ -2320,7 +2326,7 @@ module SfpLang
2320
2326
  case alt_41
2321
2327
  when 1
2322
2328
  # at line 219:3: NL
2323
- __NL100__ = match( NL, TOKENS_FOLLOWING_NL_IN_state_dependency_591 )
2329
+ __NL100__ = match( NL, TOKENS_FOLLOWING_NL_IN_state_dependency_595 )
2324
2330
 
2325
2331
  tree_for_NL100 = @adaptor.create_with_payload( __NL100__ )
2326
2332
  @adaptor.add_child( root_0, tree_for_NL100 )
@@ -2386,11 +2392,11 @@ module SfpLang
2386
2392
 
2387
2393
 
2388
2394
  # at line 223:4: reference equals_op ( value | NULL )
2389
- @state.following.push( TOKENS_FOLLOWING_reference_IN_dep_effect_603 )
2395
+ @state.following.push( TOKENS_FOLLOWING_reference_IN_dep_effect_607 )
2390
2396
  reference101 = reference
2391
2397
  @state.following.pop
2392
2398
  @adaptor.add_child( root_0, reference101.tree )
2393
- @state.following.push( TOKENS_FOLLOWING_equals_op_IN_dep_effect_605 )
2399
+ @state.following.push( TOKENS_FOLLOWING_equals_op_IN_dep_effect_609 )
2394
2400
  equals_op102 = equals_op
2395
2401
  @state.following.pop
2396
2402
  @adaptor.add_child( root_0, equals_op102.tree )
@@ -2398,7 +2404,7 @@ module SfpLang
2398
2404
  alt_42 = 2
2399
2405
  look_42_0 = @input.peek( 1 )
2400
2406
 
2401
- if ( look_42_0.between?( STRING, MULTILINE_STRING ) || look_42_0 == T__37 )
2407
+ if ( look_42_0.between?( STRING, MULTILINE_STRING ) || look_42_0 == T__38 )
2402
2408
  alt_42 = 1
2403
2409
  elsif ( look_42_0 == NULL )
2404
2410
  alt_42 = 2
@@ -2408,14 +2414,14 @@ module SfpLang
2408
2414
  case alt_42
2409
2415
  when 1
2410
2416
  # at line 224:5: value
2411
- @state.following.push( TOKENS_FOLLOWING_value_IN_dep_effect_612 )
2417
+ @state.following.push( TOKENS_FOLLOWING_value_IN_dep_effect_616 )
2412
2418
  value103 = value
2413
2419
  @state.following.pop
2414
2420
  @adaptor.add_child( root_0, value103.tree )
2415
2421
 
2416
2422
  when 2
2417
2423
  # at line 225:5: NULL
2418
- __NULL104__ = match( NULL, TOKENS_FOLLOWING_NULL_IN_dep_effect_618 )
2424
+ __NULL104__ = match( NULL, TOKENS_FOLLOWING_NULL_IN_dep_effect_622 )
2419
2425
 
2420
2426
  tree_for_NULL104 = @adaptor.create_with_payload( __NULL104__ )
2421
2427
  @adaptor.add_child( root_0, tree_for_NULL104 )
@@ -2488,17 +2494,17 @@ module SfpLang
2488
2494
 
2489
2495
 
2490
2496
  # at line 230:4: 'operator' ID '{' ( NL )* ( 'cost' equals_op NUMBER ( NL )+ )? ( op_conditions )? op_effects '}' ( NL )+
2491
- string_literal105 = match( T__31, TOKENS_FOLLOWING_T__31_IN_operator_634 )
2497
+ string_literal105 = match( T__32, TOKENS_FOLLOWING_T__32_IN_operator_638 )
2492
2498
 
2493
2499
  tree_for_string_literal105 = @adaptor.create_with_payload( string_literal105 )
2494
2500
  @adaptor.add_child( root_0, tree_for_string_literal105 )
2495
2501
 
2496
- __ID106__ = match( ID, TOKENS_FOLLOWING_ID_IN_operator_636 )
2502
+ __ID106__ = match( ID, TOKENS_FOLLOWING_ID_IN_operator_640 )
2497
2503
 
2498
2504
  tree_for_ID106 = @adaptor.create_with_payload( __ID106__ )
2499
2505
  @adaptor.add_child( root_0, tree_for_ID106 )
2500
2506
 
2501
- char_literal107 = match( T__20, TOKENS_FOLLOWING_T__20_IN_operator_638 )
2507
+ char_literal107 = match( T__20, TOKENS_FOLLOWING_T__20_IN_operator_642 )
2502
2508
 
2503
2509
  tree_for_char_literal107 = @adaptor.create_with_payload( char_literal107 )
2504
2510
  @adaptor.add_child( root_0, tree_for_char_literal107 )
@@ -2515,7 +2521,7 @@ module SfpLang
2515
2521
  case alt_43
2516
2522
  when 1
2517
2523
  # at line 230:22: NL
2518
- __NL108__ = match( NL, TOKENS_FOLLOWING_NL_IN_operator_640 )
2524
+ __NL108__ = match( NL, TOKENS_FOLLOWING_NL_IN_operator_644 )
2519
2525
 
2520
2526
  tree_for_NL108 = @adaptor.create_with_payload( __NL108__ )
2521
2527
  @adaptor.add_child( root_0, tree_for_NL108 )
@@ -2541,22 +2547,22 @@ module SfpLang
2541
2547
  alt_45 = 2
2542
2548
  look_45_0 = @input.peek( 1 )
2543
2549
 
2544
- if ( look_45_0 == T__32 )
2550
+ if ( look_45_0 == T__33 )
2545
2551
  alt_45 = 1
2546
2552
  end
2547
2553
  case alt_45
2548
2554
  when 1
2549
2555
  # at line 241:5: 'cost' equals_op NUMBER ( NL )+
2550
- string_literal109 = match( T__32, TOKENS_FOLLOWING_T__32_IN_operator_651 )
2556
+ string_literal109 = match( T__33, TOKENS_FOLLOWING_T__33_IN_operator_655 )
2551
2557
 
2552
2558
  tree_for_string_literal109 = @adaptor.create_with_payload( string_literal109 )
2553
2559
  @adaptor.add_child( root_0, tree_for_string_literal109 )
2554
2560
 
2555
- @state.following.push( TOKENS_FOLLOWING_equals_op_IN_operator_653 )
2561
+ @state.following.push( TOKENS_FOLLOWING_equals_op_IN_operator_657 )
2556
2562
  equals_op110 = equals_op
2557
2563
  @state.following.pop
2558
2564
  @adaptor.add_child( root_0, equals_op110.tree )
2559
- __NUMBER111__ = match( NUMBER, TOKENS_FOLLOWING_NUMBER_IN_operator_655 )
2565
+ __NUMBER111__ = match( NUMBER, TOKENS_FOLLOWING_NUMBER_IN_operator_659 )
2560
2566
 
2561
2567
  tree_for_NUMBER111 = @adaptor.create_with_payload( __NUMBER111__ )
2562
2568
  @adaptor.add_child( root_0, tree_for_NUMBER111 )
@@ -2574,7 +2580,7 @@ module SfpLang
2574
2580
  case alt_44
2575
2581
  when 1
2576
2582
  # at line 241:29: NL
2577
- __NL112__ = match( NL, TOKENS_FOLLOWING_NL_IN_operator_657 )
2583
+ __NL112__ = match( NL, TOKENS_FOLLOWING_NL_IN_operator_661 )
2578
2584
 
2579
2585
  tree_for_NL112 = @adaptor.create_with_payload( __NL112__ )
2580
2586
  @adaptor.add_child( root_0, tree_for_NL112 )
@@ -2599,23 +2605,23 @@ module SfpLang
2599
2605
  alt_46 = 2
2600
2606
  look_46_0 = @input.peek( 1 )
2601
2607
 
2602
- if ( look_46_0.between?( T__33, T__34 ) )
2608
+ if ( look_46_0.between?( T__34, T__35 ) )
2603
2609
  alt_46 = 1
2604
2610
  end
2605
2611
  case alt_46
2606
2612
  when 1
2607
2613
  # at line 245:3: op_conditions
2608
- @state.following.push( TOKENS_FOLLOWING_op_conditions_IN_operator_676 )
2614
+ @state.following.push( TOKENS_FOLLOWING_op_conditions_IN_operator_680 )
2609
2615
  op_conditions113 = op_conditions
2610
2616
  @state.following.pop
2611
2617
  @adaptor.add_child( root_0, op_conditions113.tree )
2612
2618
 
2613
2619
  end
2614
- @state.following.push( TOKENS_FOLLOWING_op_effects_IN_operator_679 )
2620
+ @state.following.push( TOKENS_FOLLOWING_op_effects_IN_operator_683 )
2615
2621
  op_effects114 = op_effects
2616
2622
  @state.following.pop
2617
2623
  @adaptor.add_child( root_0, op_effects114.tree )
2618
- char_literal115 = match( T__21, TOKENS_FOLLOWING_T__21_IN_operator_683 )
2624
+ char_literal115 = match( T__21, TOKENS_FOLLOWING_T__21_IN_operator_687 )
2619
2625
 
2620
2626
  tree_for_char_literal115 = @adaptor.create_with_payload( char_literal115 )
2621
2627
  @adaptor.add_child( root_0, tree_for_char_literal115 )
@@ -2633,7 +2639,7 @@ module SfpLang
2633
2639
  case alt_47
2634
2640
  when 1
2635
2641
  # at line 246:7: NL
2636
- __NL116__ = match( NL, TOKENS_FOLLOWING_NL_IN_operator_685 )
2642
+ __NL116__ = match( NL, TOKENS_FOLLOWING_NL_IN_operator_689 )
2637
2643
 
2638
2644
  tree_for_NL116 = @adaptor.create_with_payload( __NL116__ )
2639
2645
  @adaptor.add_child( root_0, tree_for_NL116 )
@@ -2703,16 +2709,16 @@ module SfpLang
2703
2709
 
2704
2710
 
2705
2711
  # at line 251:4: ID equals_op reference ( NL )+
2706
- __ID117__ = match( ID, TOKENS_FOLLOWING_ID_IN_op_param_701 )
2712
+ __ID117__ = match( ID, TOKENS_FOLLOWING_ID_IN_op_param_705 )
2707
2713
 
2708
2714
  tree_for_ID117 = @adaptor.create_with_payload( __ID117__ )
2709
2715
  @adaptor.add_child( root_0, tree_for_ID117 )
2710
2716
 
2711
- @state.following.push( TOKENS_FOLLOWING_equals_op_IN_op_param_703 )
2717
+ @state.following.push( TOKENS_FOLLOWING_equals_op_IN_op_param_707 )
2712
2718
  equals_op118 = equals_op
2713
2719
  @state.following.pop
2714
2720
  @adaptor.add_child( root_0, equals_op118.tree )
2715
- @state.following.push( TOKENS_FOLLOWING_reference_IN_op_param_705 )
2721
+ @state.following.push( TOKENS_FOLLOWING_reference_IN_op_param_709 )
2716
2722
  reference119 = reference
2717
2723
  @state.following.pop
2718
2724
  @adaptor.add_child( root_0, reference119.tree )
@@ -2729,7 +2735,7 @@ module SfpLang
2729
2735
  case alt_48
2730
2736
  when 1
2731
2737
  # at line 251:27: NL
2732
- __NL120__ = match( NL, TOKENS_FOLLOWING_NL_IN_op_param_707 )
2738
+ __NL120__ = match( NL, TOKENS_FOLLOWING_NL_IN_op_param_711 )
2733
2739
 
2734
2740
  tree_for_NL120 = @adaptor.create_with_payload( __NL120__ )
2735
2741
  @adaptor.add_child( root_0, tree_for_NL120 )
@@ -2805,7 +2811,7 @@ module SfpLang
2805
2811
 
2806
2812
  # at line 256:4: ( 'conditions' | 'condition' ) '{' ( NL )* ( op_statement )* '}' ( NL )+
2807
2813
  set121 = @input.look
2808
- if @input.peek( 1 ).between?( T__33, T__34 )
2814
+ if @input.peek( 1 ).between?( T__34, T__35 )
2809
2815
  @input.consume
2810
2816
  @adaptor.add_child( root_0, @adaptor.create_with_payload( set121 ) )
2811
2817
  @state.error_recovery = false
@@ -2815,7 +2821,7 @@ module SfpLang
2815
2821
  end
2816
2822
 
2817
2823
 
2818
- char_literal122 = match( T__20, TOKENS_FOLLOWING_T__20_IN_op_conditions_731 )
2824
+ char_literal122 = match( T__20, TOKENS_FOLLOWING_T__20_IN_op_conditions_735 )
2819
2825
 
2820
2826
  tree_for_char_literal122 = @adaptor.create_with_payload( char_literal122 )
2821
2827
  @adaptor.add_child( root_0, tree_for_char_literal122 )
@@ -2832,7 +2838,7 @@ module SfpLang
2832
2838
  case alt_49
2833
2839
  when 1
2834
2840
  # at line 256:37: NL
2835
- __NL123__ = match( NL, TOKENS_FOLLOWING_NL_IN_op_conditions_733 )
2841
+ __NL123__ = match( NL, TOKENS_FOLLOWING_NL_IN_op_conditions_737 )
2836
2842
 
2837
2843
  tree_for_NL123 = @adaptor.create_with_payload( __NL123__ )
2838
2844
  @adaptor.add_child( root_0, tree_for_NL123 )
@@ -2860,7 +2866,7 @@ module SfpLang
2860
2866
  case alt_50
2861
2867
  when 1
2862
2868
  # at line 261:3: op_statement
2863
- @state.following.push( TOKENS_FOLLOWING_op_statement_IN_op_conditions_742 )
2869
+ @state.following.push( TOKENS_FOLLOWING_op_statement_IN_op_conditions_746 )
2864
2870
  op_statement124 = op_statement
2865
2871
  @state.following.pop
2866
2872
  @adaptor.add_child( root_0, op_statement124.tree )
@@ -2869,7 +2875,7 @@ module SfpLang
2869
2875
  break # out of loop for decision 50
2870
2876
  end
2871
2877
  end # loop for decision 50
2872
- char_literal125 = match( T__21, TOKENS_FOLLOWING_T__21_IN_op_conditions_747 )
2878
+ char_literal125 = match( T__21, TOKENS_FOLLOWING_T__21_IN_op_conditions_751 )
2873
2879
 
2874
2880
  tree_for_char_literal125 = @adaptor.create_with_payload( char_literal125 )
2875
2881
  @adaptor.add_child( root_0, tree_for_char_literal125 )
@@ -2887,7 +2893,7 @@ module SfpLang
2887
2893
  case alt_51
2888
2894
  when 1
2889
2895
  # at line 262:7: NL
2890
- __NL126__ = match( NL, TOKENS_FOLLOWING_NL_IN_op_conditions_749 )
2896
+ __NL126__ = match( NL, TOKENS_FOLLOWING_NL_IN_op_conditions_753 )
2891
2897
 
2892
2898
  tree_for_NL126 = @adaptor.create_with_payload( __NL126__ )
2893
2899
  @adaptor.add_child( root_0, tree_for_NL126 )
@@ -2962,12 +2968,12 @@ module SfpLang
2962
2968
 
2963
2969
 
2964
2970
  # at line 267:4: 'effects' '{' ( NL )* ( op_statement )* '}' ( NL )+
2965
- string_literal127 = match( T__35, TOKENS_FOLLOWING_T__35_IN_op_effects_765 )
2971
+ string_literal127 = match( T__36, TOKENS_FOLLOWING_T__36_IN_op_effects_769 )
2966
2972
 
2967
2973
  tree_for_string_literal127 = @adaptor.create_with_payload( string_literal127 )
2968
2974
  @adaptor.add_child( root_0, tree_for_string_literal127 )
2969
2975
 
2970
- char_literal128 = match( T__20, TOKENS_FOLLOWING_T__20_IN_op_effects_767 )
2976
+ char_literal128 = match( T__20, TOKENS_FOLLOWING_T__20_IN_op_effects_771 )
2971
2977
 
2972
2978
  tree_for_char_literal128 = @adaptor.create_with_payload( char_literal128 )
2973
2979
  @adaptor.add_child( root_0, tree_for_char_literal128 )
@@ -2984,7 +2990,7 @@ module SfpLang
2984
2990
  case alt_52
2985
2991
  when 1
2986
2992
  # at line 267:18: NL
2987
- __NL129__ = match( NL, TOKENS_FOLLOWING_NL_IN_op_effects_769 )
2993
+ __NL129__ = match( NL, TOKENS_FOLLOWING_NL_IN_op_effects_773 )
2988
2994
 
2989
2995
  tree_for_NL129 = @adaptor.create_with_payload( __NL129__ )
2990
2996
  @adaptor.add_child( root_0, tree_for_NL129 )
@@ -3012,7 +3018,7 @@ module SfpLang
3012
3018
  case alt_53
3013
3019
  when 1
3014
3020
  # at line 272:3: op_statement
3015
- @state.following.push( TOKENS_FOLLOWING_op_statement_IN_op_effects_778 )
3021
+ @state.following.push( TOKENS_FOLLOWING_op_statement_IN_op_effects_782 )
3016
3022
  op_statement130 = op_statement
3017
3023
  @state.following.pop
3018
3024
  @adaptor.add_child( root_0, op_statement130.tree )
@@ -3021,7 +3027,7 @@ module SfpLang
3021
3027
  break # out of loop for decision 53
3022
3028
  end
3023
3029
  end # loop for decision 53
3024
- char_literal131 = match( T__21, TOKENS_FOLLOWING_T__21_IN_op_effects_783 )
3030
+ char_literal131 = match( T__21, TOKENS_FOLLOWING_T__21_IN_op_effects_787 )
3025
3031
 
3026
3032
  tree_for_char_literal131 = @adaptor.create_with_payload( char_literal131 )
3027
3033
  @adaptor.add_child( root_0, tree_for_char_literal131 )
@@ -3039,7 +3045,7 @@ module SfpLang
3039
3045
  case alt_54
3040
3046
  when 1
3041
3047
  # at line 273:7: NL
3042
- __NL132__ = match( NL, TOKENS_FOLLOWING_NL_IN_op_effects_785 )
3048
+ __NL132__ = match( NL, TOKENS_FOLLOWING_NL_IN_op_effects_789 )
3043
3049
 
3044
3050
  tree_for_NL132 = @adaptor.create_with_payload( __NL132__ )
3045
3051
  @adaptor.add_child( root_0, tree_for_NL132 )
@@ -3108,15 +3114,15 @@ module SfpLang
3108
3114
 
3109
3115
 
3110
3116
  # at line 278:4: reference equals_op value ( NL )+
3111
- @state.following.push( TOKENS_FOLLOWING_reference_IN_op_statement_801 )
3117
+ @state.following.push( TOKENS_FOLLOWING_reference_IN_op_statement_805 )
3112
3118
  reference133 = reference
3113
3119
  @state.following.pop
3114
3120
  @adaptor.add_child( root_0, reference133.tree )
3115
- @state.following.push( TOKENS_FOLLOWING_equals_op_IN_op_statement_803 )
3121
+ @state.following.push( TOKENS_FOLLOWING_equals_op_IN_op_statement_807 )
3116
3122
  equals_op134 = equals_op
3117
3123
  @state.following.pop
3118
3124
  @adaptor.add_child( root_0, equals_op134.tree )
3119
- @state.following.push( TOKENS_FOLLOWING_value_IN_op_statement_805 )
3125
+ @state.following.push( TOKENS_FOLLOWING_value_IN_op_statement_809 )
3120
3126
  value135 = value
3121
3127
  @state.following.pop
3122
3128
  @adaptor.add_child( root_0, value135.tree )
@@ -3133,7 +3139,7 @@ module SfpLang
3133
3139
  case alt_55
3134
3140
  when 1
3135
3141
  # at line 278:30: NL
3136
- __NL136__ = match( NL, TOKENS_FOLLOWING_NL_IN_op_statement_807 )
3142
+ __NL136__ = match( NL, TOKENS_FOLLOWING_NL_IN_op_statement_811 )
3137
3143
 
3138
3144
  tree_for_NL136 = @adaptor.create_with_payload( __NL136__ )
3139
3145
  @adaptor.add_child( root_0, tree_for_NL136 )
@@ -3219,12 +3225,12 @@ module SfpLang
3219
3225
 
3220
3226
 
3221
3227
  # at line 283:4: 'procedure' ID ( parameters )? '{' ( NL )* ( 'cost' equals_op NUMBER ( NL )+ )? ( conditions )? effects '}' ( NL )+
3222
- string_literal137 = match( T__36, TOKENS_FOLLOWING_T__36_IN_procedure_823 )
3228
+ string_literal137 = match( T__37, TOKENS_FOLLOWING_T__37_IN_procedure_827 )
3223
3229
 
3224
3230
  tree_for_string_literal137 = @adaptor.create_with_payload( string_literal137 )
3225
3231
  @adaptor.add_child( root_0, tree_for_string_literal137 )
3226
3232
 
3227
- __ID138__ = match( ID, TOKENS_FOLLOWING_ID_IN_procedure_825 )
3233
+ __ID138__ = match( ID, TOKENS_FOLLOWING_ID_IN_procedure_829 )
3228
3234
 
3229
3235
  tree_for_ID138 = @adaptor.create_with_payload( __ID138__ )
3230
3236
  @adaptor.add_child( root_0, tree_for_ID138 )
@@ -3245,19 +3251,19 @@ module SfpLang
3245
3251
  alt_56 = 2
3246
3252
  look_56_0 = @input.peek( 1 )
3247
3253
 
3248
- if ( look_56_0 == T__37 )
3254
+ if ( look_56_0 == T__38 )
3249
3255
  alt_56 = 1
3250
3256
  end
3251
3257
  case alt_56
3252
3258
  when 1
3253
3259
  # at line 294:3: parameters
3254
- @state.following.push( TOKENS_FOLLOWING_parameters_IN_procedure_833 )
3260
+ @state.following.push( TOKENS_FOLLOWING_parameters_IN_procedure_837 )
3255
3261
  parameters139 = parameters
3256
3262
  @state.following.pop
3257
3263
  @adaptor.add_child( root_0, parameters139.tree )
3258
3264
 
3259
3265
  end
3260
- char_literal140 = match( T__20, TOKENS_FOLLOWING_T__20_IN_procedure_836 )
3266
+ char_literal140 = match( T__20, TOKENS_FOLLOWING_T__20_IN_procedure_840 )
3261
3267
 
3262
3268
  tree_for_char_literal140 = @adaptor.create_with_payload( char_literal140 )
3263
3269
  @adaptor.add_child( root_0, tree_for_char_literal140 )
@@ -3274,7 +3280,7 @@ module SfpLang
3274
3280
  case alt_57
3275
3281
  when 1
3276
3282
  # at line 294:19: NL
3277
- __NL141__ = match( NL, TOKENS_FOLLOWING_NL_IN_procedure_838 )
3283
+ __NL141__ = match( NL, TOKENS_FOLLOWING_NL_IN_procedure_842 )
3278
3284
 
3279
3285
  tree_for_NL141 = @adaptor.create_with_payload( __NL141__ )
3280
3286
  @adaptor.add_child( root_0, tree_for_NL141 )
@@ -3288,22 +3294,22 @@ module SfpLang
3288
3294
  alt_59 = 2
3289
3295
  look_59_0 = @input.peek( 1 )
3290
3296
 
3291
- if ( look_59_0 == T__32 )
3297
+ if ( look_59_0 == T__33 )
3292
3298
  alt_59 = 1
3293
3299
  end
3294
3300
  case alt_59
3295
3301
  when 1
3296
3302
  # at line 295:5: 'cost' equals_op NUMBER ( NL )+
3297
- string_literal142 = match( T__32, TOKENS_FOLLOWING_T__32_IN_procedure_846 )
3303
+ string_literal142 = match( T__33, TOKENS_FOLLOWING_T__33_IN_procedure_850 )
3298
3304
 
3299
3305
  tree_for_string_literal142 = @adaptor.create_with_payload( string_literal142 )
3300
3306
  @adaptor.add_child( root_0, tree_for_string_literal142 )
3301
3307
 
3302
- @state.following.push( TOKENS_FOLLOWING_equals_op_IN_procedure_848 )
3308
+ @state.following.push( TOKENS_FOLLOWING_equals_op_IN_procedure_852 )
3303
3309
  equals_op143 = equals_op
3304
3310
  @state.following.pop
3305
3311
  @adaptor.add_child( root_0, equals_op143.tree )
3306
- __NUMBER144__ = match( NUMBER, TOKENS_FOLLOWING_NUMBER_IN_procedure_850 )
3312
+ __NUMBER144__ = match( NUMBER, TOKENS_FOLLOWING_NUMBER_IN_procedure_854 )
3307
3313
 
3308
3314
  tree_for_NUMBER144 = @adaptor.create_with_payload( __NUMBER144__ )
3309
3315
  @adaptor.add_child( root_0, tree_for_NUMBER144 )
@@ -3324,7 +3330,7 @@ module SfpLang
3324
3330
  case alt_58
3325
3331
  when 1
3326
3332
  # at line 297:4: NL
3327
- __NL145__ = match( NL, TOKENS_FOLLOWING_NL_IN_procedure_860 )
3333
+ __NL145__ = match( NL, TOKENS_FOLLOWING_NL_IN_procedure_864 )
3328
3334
 
3329
3335
  tree_for_NL145 = @adaptor.create_with_payload( __NL145__ )
3330
3336
  @adaptor.add_child( root_0, tree_for_NL145 )
@@ -3346,23 +3352,23 @@ module SfpLang
3346
3352
  alt_60 = 2
3347
3353
  look_60_0 = @input.peek( 1 )
3348
3354
 
3349
- if ( look_60_0.between?( T__33, T__34 ) )
3355
+ if ( look_60_0.between?( T__34, T__35 ) )
3350
3356
  alt_60 = 1
3351
3357
  end
3352
3358
  case alt_60
3353
3359
  when 1
3354
3360
  # at line 299:3: conditions
3355
- @state.following.push( TOKENS_FOLLOWING_conditions_IN_procedure_870 )
3361
+ @state.following.push( TOKENS_FOLLOWING_conditions_IN_procedure_874 )
3356
3362
  conditions146 = conditions
3357
3363
  @state.following.pop
3358
3364
  @adaptor.add_child( root_0, conditions146.tree )
3359
3365
 
3360
3366
  end
3361
- @state.following.push( TOKENS_FOLLOWING_effects_IN_procedure_873 )
3367
+ @state.following.push( TOKENS_FOLLOWING_effects_IN_procedure_877 )
3362
3368
  effects147 = effects
3363
3369
  @state.following.pop
3364
3370
  @adaptor.add_child( root_0, effects147.tree )
3365
- char_literal148 = match( T__21, TOKENS_FOLLOWING_T__21_IN_procedure_875 )
3371
+ char_literal148 = match( T__21, TOKENS_FOLLOWING_T__21_IN_procedure_879 )
3366
3372
 
3367
3373
  tree_for_char_literal148 = @adaptor.create_with_payload( char_literal148 )
3368
3374
  @adaptor.add_child( root_0, tree_for_char_literal148 )
@@ -3380,7 +3386,7 @@ module SfpLang
3380
3386
  case alt_61
3381
3387
  when 1
3382
3388
  # at line 299:27: NL
3383
- __NL149__ = match( NL, TOKENS_FOLLOWING_NL_IN_procedure_877 )
3389
+ __NL149__ = match( NL, TOKENS_FOLLOWING_NL_IN_procedure_881 )
3384
3390
 
3385
3391
  tree_for_NL149 = @adaptor.create_with_payload( __NL149__ )
3386
3392
  @adaptor.add_child( root_0, tree_for_NL149 )
@@ -3454,12 +3460,12 @@ module SfpLang
3454
3460
 
3455
3461
 
3456
3462
  # at line 304:4: '(' parameter ( ',' ( NL )* parameter )* ')'
3457
- char_literal150 = match( T__37, TOKENS_FOLLOWING_T__37_IN_parameters_893 )
3463
+ char_literal150 = match( T__38, TOKENS_FOLLOWING_T__38_IN_parameters_897 )
3458
3464
 
3459
3465
  tree_for_char_literal150 = @adaptor.create_with_payload( char_literal150 )
3460
3466
  @adaptor.add_child( root_0, tree_for_char_literal150 )
3461
3467
 
3462
- @state.following.push( TOKENS_FOLLOWING_parameter_IN_parameters_895 )
3468
+ @state.following.push( TOKENS_FOLLOWING_parameter_IN_parameters_899 )
3463
3469
  parameter151 = parameter
3464
3470
  @state.following.pop
3465
3471
  @adaptor.add_child( root_0, parameter151.tree )
@@ -3468,14 +3474,14 @@ module SfpLang
3468
3474
  alt_63 = 2
3469
3475
  look_63_0 = @input.peek( 1 )
3470
3476
 
3471
- if ( look_63_0 == T__38 )
3477
+ if ( look_63_0 == T__39 )
3472
3478
  alt_63 = 1
3473
3479
 
3474
3480
  end
3475
3481
  case alt_63
3476
3482
  when 1
3477
3483
  # at line 304:19: ',' ( NL )* parameter
3478
- char_literal152 = match( T__38, TOKENS_FOLLOWING_T__38_IN_parameters_898 )
3484
+ char_literal152 = match( T__39, TOKENS_FOLLOWING_T__39_IN_parameters_902 )
3479
3485
 
3480
3486
  tree_for_char_literal152 = @adaptor.create_with_payload( char_literal152 )
3481
3487
  @adaptor.add_child( root_0, tree_for_char_literal152 )
@@ -3492,7 +3498,7 @@ module SfpLang
3492
3498
  case alt_62
3493
3499
  when 1
3494
3500
  # at line 304:23: NL
3495
- __NL153__ = match( NL, TOKENS_FOLLOWING_NL_IN_parameters_900 )
3501
+ __NL153__ = match( NL, TOKENS_FOLLOWING_NL_IN_parameters_904 )
3496
3502
 
3497
3503
  tree_for_NL153 = @adaptor.create_with_payload( __NL153__ )
3498
3504
  @adaptor.add_child( root_0, tree_for_NL153 )
@@ -3502,7 +3508,7 @@ module SfpLang
3502
3508
  break # out of loop for decision 62
3503
3509
  end
3504
3510
  end # loop for decision 62
3505
- @state.following.push( TOKENS_FOLLOWING_parameter_IN_parameters_903 )
3511
+ @state.following.push( TOKENS_FOLLOWING_parameter_IN_parameters_907 )
3506
3512
  parameter154 = parameter
3507
3513
  @state.following.pop
3508
3514
  @adaptor.add_child( root_0, parameter154.tree )
@@ -3511,7 +3517,7 @@ module SfpLang
3511
3517
  break # out of loop for decision 63
3512
3518
  end
3513
3519
  end # loop for decision 63
3514
- char_literal155 = match( T__39, TOKENS_FOLLOWING_T__39_IN_parameters_907 )
3520
+ char_literal155 = match( T__40, TOKENS_FOLLOWING_T__40_IN_parameters_911 )
3515
3521
 
3516
3522
  tree_for_char_literal155 = @adaptor.create_with_payload( char_literal155 )
3517
3523
  @adaptor.add_child( root_0, tree_for_char_literal155 )
@@ -3576,9 +3582,9 @@ module SfpLang
3576
3582
 
3577
3583
  if ( look_64_0 == ID )
3578
3584
  case look_64 = @input.peek( 2 )
3579
- when T__40 then alt_64 = 2
3580
- when T__41 then alt_64 = 3
3581
- when T__69 then alt_64 = 1
3585
+ when T__41 then alt_64 = 2
3586
+ when T__42 then alt_64 = 3
3587
+ when T__70 then alt_64 = 1
3582
3588
  else
3583
3589
  raise NoViableAlternative( "", 64, 1 )
3584
3590
  end
@@ -3591,12 +3597,12 @@ module SfpLang
3591
3597
 
3592
3598
 
3593
3599
  # at line 308:4: ID reference_type
3594
- __ID156__ = match( ID, TOKENS_FOLLOWING_ID_IN_parameter_919 )
3600
+ __ID156__ = match( ID, TOKENS_FOLLOWING_ID_IN_parameter_923 )
3595
3601
 
3596
3602
  tree_for_ID156 = @adaptor.create_with_payload( __ID156__ )
3597
3603
  @adaptor.add_child( root_0, tree_for_ID156 )
3598
3604
 
3599
- @state.following.push( TOKENS_FOLLOWING_reference_type_IN_parameter_921 )
3605
+ @state.following.push( TOKENS_FOLLOWING_reference_type_IN_parameter_925 )
3600
3606
  reference_type157 = reference_type
3601
3607
  @state.following.pop
3602
3608
  @adaptor.add_child( root_0, reference_type157.tree )
@@ -3609,17 +3615,17 @@ module SfpLang
3609
3615
 
3610
3616
 
3611
3617
  # at line 310:4: ID 'areall' path
3612
- __ID158__ = match( ID, TOKENS_FOLLOWING_ID_IN_parameter_930 )
3618
+ __ID158__ = match( ID, TOKENS_FOLLOWING_ID_IN_parameter_934 )
3613
3619
 
3614
3620
  tree_for_ID158 = @adaptor.create_with_payload( __ID158__ )
3615
3621
  @adaptor.add_child( root_0, tree_for_ID158 )
3616
3622
 
3617
- string_literal159 = match( T__40, TOKENS_FOLLOWING_T__40_IN_parameter_932 )
3623
+ string_literal159 = match( T__41, TOKENS_FOLLOWING_T__41_IN_parameter_936 )
3618
3624
 
3619
3625
  tree_for_string_literal159 = @adaptor.create_with_payload( string_literal159 )
3620
3626
  @adaptor.add_child( root_0, tree_for_string_literal159 )
3621
3627
 
3622
- @state.following.push( TOKENS_FOLLOWING_path_IN_parameter_934 )
3628
+ @state.following.push( TOKENS_FOLLOWING_path_IN_parameter_938 )
3623
3629
  path160 = path
3624
3630
  @state.following.pop
3625
3631
  @adaptor.add_child( root_0, path160.tree )
@@ -3637,17 +3643,17 @@ module SfpLang
3637
3643
 
3638
3644
 
3639
3645
  # at line 317:4: ID 'isset' path
3640
- __ID161__ = match( ID, TOKENS_FOLLOWING_ID_IN_parameter_943 )
3646
+ __ID161__ = match( ID, TOKENS_FOLLOWING_ID_IN_parameter_947 )
3641
3647
 
3642
3648
  tree_for_ID161 = @adaptor.create_with_payload( __ID161__ )
3643
3649
  @adaptor.add_child( root_0, tree_for_ID161 )
3644
3650
 
3645
- string_literal162 = match( T__41, TOKENS_FOLLOWING_T__41_IN_parameter_945 )
3651
+ string_literal162 = match( T__42, TOKENS_FOLLOWING_T__42_IN_parameter_949 )
3646
3652
 
3647
3653
  tree_for_string_literal162 = @adaptor.create_with_payload( string_literal162 )
3648
3654
  @adaptor.add_child( root_0, tree_for_string_literal162 )
3649
3655
 
3650
- @state.following.push( TOKENS_FOLLOWING_path_IN_parameter_947 )
3656
+ @state.following.push( TOKENS_FOLLOWING_path_IN_parameter_951 )
3651
3657
  path163 = path
3652
3658
  @state.following.pop
3653
3659
  @adaptor.add_child( root_0, path163.tree )
@@ -3717,7 +3723,7 @@ module SfpLang
3717
3723
 
3718
3724
  # at line 327:4: ( 'conditions' | 'condition' ) '{' ( NL )* constraint_body '}' ( NL )+
3719
3725
  set164 = @input.look
3720
- if @input.peek( 1 ).between?( T__33, T__34 )
3726
+ if @input.peek( 1 ).between?( T__34, T__35 )
3721
3727
  @input.consume
3722
3728
  @adaptor.add_child( root_0, @adaptor.create_with_payload( set164 ) )
3723
3729
  @state.error_recovery = false
@@ -3733,7 +3739,7 @@ module SfpLang
3733
3739
  @now = @now['_condition']
3734
3740
 
3735
3741
  # <-- action
3736
- char_literal165 = match( T__20, TOKENS_FOLLOWING_T__20_IN_conditions_976 )
3742
+ char_literal165 = match( T__20, TOKENS_FOLLOWING_T__20_IN_conditions_980 )
3737
3743
 
3738
3744
  tree_for_char_literal165 = @adaptor.create_with_payload( char_literal165 )
3739
3745
  @adaptor.add_child( root_0, tree_for_char_literal165 )
@@ -3750,7 +3756,7 @@ module SfpLang
3750
3756
  case alt_65
3751
3757
  when 1
3752
3758
  # at line 332:7: NL
3753
- __NL166__ = match( NL, TOKENS_FOLLOWING_NL_IN_conditions_978 )
3759
+ __NL166__ = match( NL, TOKENS_FOLLOWING_NL_IN_conditions_982 )
3754
3760
 
3755
3761
  tree_for_NL166 = @adaptor.create_with_payload( __NL166__ )
3756
3762
  @adaptor.add_child( root_0, tree_for_NL166 )
@@ -3760,11 +3766,11 @@ module SfpLang
3760
3766
  break # out of loop for decision 65
3761
3767
  end
3762
3768
  end # loop for decision 65
3763
- @state.following.push( TOKENS_FOLLOWING_constraint_body_IN_conditions_981 )
3769
+ @state.following.push( TOKENS_FOLLOWING_constraint_body_IN_conditions_985 )
3764
3770
  constraint_body167 = constraint_body
3765
3771
  @state.following.pop
3766
3772
  @adaptor.add_child( root_0, constraint_body167.tree )
3767
- char_literal168 = match( T__21, TOKENS_FOLLOWING_T__21_IN_conditions_983 )
3773
+ char_literal168 = match( T__21, TOKENS_FOLLOWING_T__21_IN_conditions_987 )
3768
3774
 
3769
3775
  tree_for_char_literal168 = @adaptor.create_with_payload( char_literal168 )
3770
3776
  @adaptor.add_child( root_0, tree_for_char_literal168 )
@@ -3782,7 +3788,7 @@ module SfpLang
3782
3788
  case alt_66
3783
3789
  when 1
3784
3790
  # at line 332:31: NL
3785
- __NL169__ = match( NL, TOKENS_FOLLOWING_NL_IN_conditions_985 )
3791
+ __NL169__ = match( NL, TOKENS_FOLLOWING_NL_IN_conditions_989 )
3786
3792
 
3787
3793
  tree_for_NL169 = @adaptor.create_with_payload( __NL169__ )
3788
3794
  @adaptor.add_child( root_0, tree_for_NL169 )
@@ -3858,7 +3864,7 @@ module SfpLang
3858
3864
 
3859
3865
  # at line 338:4: ( 'effects' | 'effect' ) '{' ( NL )* effect_body '}' ( NL )+
3860
3866
  set170 = @input.look
3861
- if @input.peek(1) == T__35 || @input.peek(1) == T__42
3867
+ if @input.peek(1) == T__36 || @input.peek(1) == T__43
3862
3868
  @input.consume
3863
3869
  @adaptor.add_child( root_0, @adaptor.create_with_payload( set170 ) )
3864
3870
  @state.error_recovery = false
@@ -3875,7 +3881,7 @@ module SfpLang
3875
3881
  @in_effects = true
3876
3882
 
3877
3883
  # <-- action
3878
- char_literal171 = match( T__20, TOKENS_FOLLOWING_T__20_IN_effects_1016 )
3884
+ char_literal171 = match( T__20, TOKENS_FOLLOWING_T__20_IN_effects_1020 )
3879
3885
 
3880
3886
  tree_for_char_literal171 = @adaptor.create_with_payload( char_literal171 )
3881
3887
  @adaptor.add_child( root_0, tree_for_char_literal171 )
@@ -3892,7 +3898,7 @@ module SfpLang
3892
3898
  case alt_67
3893
3899
  when 1
3894
3900
  # at line 344:7: NL
3895
- __NL172__ = match( NL, TOKENS_FOLLOWING_NL_IN_effects_1018 )
3901
+ __NL172__ = match( NL, TOKENS_FOLLOWING_NL_IN_effects_1022 )
3896
3902
 
3897
3903
  tree_for_NL172 = @adaptor.create_with_payload( __NL172__ )
3898
3904
  @adaptor.add_child( root_0, tree_for_NL172 )
@@ -3902,11 +3908,11 @@ module SfpLang
3902
3908
  break # out of loop for decision 67
3903
3909
  end
3904
3910
  end # loop for decision 67
3905
- @state.following.push( TOKENS_FOLLOWING_effect_body_IN_effects_1024 )
3911
+ @state.following.push( TOKENS_FOLLOWING_effect_body_IN_effects_1028 )
3906
3912
  effect_body173 = effect_body
3907
3913
  @state.following.pop
3908
3914
  @adaptor.add_child( root_0, effect_body173.tree )
3909
- char_literal174 = match( T__21, TOKENS_FOLLOWING_T__21_IN_effects_1029 )
3915
+ char_literal174 = match( T__21, TOKENS_FOLLOWING_T__21_IN_effects_1033 )
3910
3916
 
3911
3917
  tree_for_char_literal174 = @adaptor.create_with_payload( char_literal174 )
3912
3918
  @adaptor.add_child( root_0, tree_for_char_literal174 )
@@ -3924,7 +3930,7 @@ module SfpLang
3924
3930
  case alt_68
3925
3931
  when 1
3926
3932
  # at line 346:7: NL
3927
- __NL175__ = match( NL, TOKENS_FOLLOWING_NL_IN_effects_1031 )
3933
+ __NL175__ = match( NL, TOKENS_FOLLOWING_NL_IN_effects_1035 )
3928
3934
 
3929
3935
  tree_for_NL175 = @adaptor.create_with_payload( __NL175__ )
3930
3936
  @adaptor.add_child( root_0, tree_for_NL175 )
@@ -4006,7 +4012,7 @@ module SfpLang
4006
4012
 
4007
4013
 
4008
4014
  # at line 354:4: 'goal' ( 'constraint' )? ( NL )* '{' ( NL )* ( goal_body )* '}' ( NL )+
4009
- string_literal176 = match( T__43, TOKENS_FOLLOWING_T__43_IN_goal_constraint_1047 )
4015
+ string_literal176 = match( T__44, TOKENS_FOLLOWING_T__44_IN_goal_constraint_1051 )
4010
4016
 
4011
4017
  tree_for_string_literal176 = @adaptor.create_with_payload( string_literal176 )
4012
4018
  @adaptor.add_child( root_0, tree_for_string_literal176 )
@@ -4015,13 +4021,13 @@ module SfpLang
4015
4021
  alt_69 = 2
4016
4022
  look_69_0 = @input.peek( 1 )
4017
4023
 
4018
- if ( look_69_0 == T__44 )
4024
+ if ( look_69_0 == T__45 )
4019
4025
  alt_69 = 1
4020
4026
  end
4021
4027
  case alt_69
4022
4028
  when 1
4023
4029
  # at line 354:11: 'constraint'
4024
- string_literal177 = match( T__44, TOKENS_FOLLOWING_T__44_IN_goal_constraint_1049 )
4030
+ string_literal177 = match( T__45, TOKENS_FOLLOWING_T__45_IN_goal_constraint_1053 )
4025
4031
 
4026
4032
  tree_for_string_literal177 = @adaptor.create_with_payload( string_literal177 )
4027
4033
  @adaptor.add_child( root_0, tree_for_string_literal177 )
@@ -4040,7 +4046,7 @@ module SfpLang
4040
4046
  case alt_70
4041
4047
  when 1
4042
4048
  # at line 354:25: NL
4043
- __NL178__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_constraint_1052 )
4049
+ __NL178__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_constraint_1056 )
4044
4050
 
4045
4051
  tree_for_NL178 = @adaptor.create_with_payload( __NL178__ )
4046
4052
  @adaptor.add_child( root_0, tree_for_NL178 )
@@ -4060,7 +4066,7 @@ module SfpLang
4060
4066
  @now = @now['goal']
4061
4067
 
4062
4068
  # <-- action
4063
- char_literal179 = match( T__20, TOKENS_FOLLOWING_T__20_IN_goal_constraint_1061 )
4069
+ char_literal179 = match( T__20, TOKENS_FOLLOWING_T__20_IN_goal_constraint_1065 )
4064
4070
 
4065
4071
  tree_for_char_literal179 = @adaptor.create_with_payload( char_literal179 )
4066
4072
  @adaptor.add_child( root_0, tree_for_char_literal179 )
@@ -4077,7 +4083,7 @@ module SfpLang
4077
4083
  case alt_71
4078
4084
  when 1
4079
4085
  # at line 363:7: NL
4080
- __NL180__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_constraint_1063 )
4086
+ __NL180__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_constraint_1067 )
4081
4087
 
4082
4088
  tree_for_NL180 = @adaptor.create_with_payload( __NL180__ )
4083
4089
  @adaptor.add_child( root_0, tree_for_NL180 )
@@ -4092,14 +4098,14 @@ module SfpLang
4092
4098
  alt_72 = 2
4093
4099
  look_72_0 = @input.peek( 1 )
4094
4100
 
4095
- if ( look_72_0 == ID || look_72_0 == T__28 || look_72_0.between?( T__45, T__50 ) || look_72_0.between?( T__52, T__54 ) || look_72_0 == T__57 || look_72_0 == T__63 )
4101
+ if ( look_72_0 == ID || look_72_0 == T__29 || look_72_0.between?( T__46, T__51 ) || look_72_0.between?( T__53, T__55 ) || look_72_0 == T__58 || look_72_0 == T__64 )
4096
4102
  alt_72 = 1
4097
4103
 
4098
4104
  end
4099
4105
  case alt_72
4100
4106
  when 1
4101
4107
  # at line 363:11: goal_body
4102
- @state.following.push( TOKENS_FOLLOWING_goal_body_IN_goal_constraint_1066 )
4108
+ @state.following.push( TOKENS_FOLLOWING_goal_body_IN_goal_constraint_1070 )
4103
4109
  goal_body181 = goal_body
4104
4110
  @state.following.pop
4105
4111
  @adaptor.add_child( root_0, goal_body181.tree )
@@ -4108,7 +4114,7 @@ module SfpLang
4108
4114
  break # out of loop for decision 72
4109
4115
  end
4110
4116
  end # loop for decision 72
4111
- char_literal182 = match( T__21, TOKENS_FOLLOWING_T__21_IN_goal_constraint_1069 )
4117
+ char_literal182 = match( T__21, TOKENS_FOLLOWING_T__21_IN_goal_constraint_1073 )
4112
4118
 
4113
4119
  tree_for_char_literal182 = @adaptor.create_with_payload( char_literal182 )
4114
4120
  @adaptor.add_child( root_0, tree_for_char_literal182 )
@@ -4126,7 +4132,7 @@ module SfpLang
4126
4132
  case alt_73
4127
4133
  when 1
4128
4134
  # at line 363:26: NL
4129
- __NL183__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_constraint_1071 )
4135
+ __NL183__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_constraint_1075 )
4130
4136
 
4131
4137
  tree_for_NL183 = @adaptor.create_with_payload( __NL183__ )
4132
4138
  @adaptor.add_child( root_0, tree_for_NL183 )
@@ -4292,12 +4298,12 @@ module SfpLang
4292
4298
  # at line 368:2: ( ( ( constraint_statement | constraint_namespace | constraint_iterator | constraint_class_quantification ) ( NL )+ ) | 'always' ( NL )* '{' ( NL )* constraint_body '}' ( NL )+ | 'sometime' ( NL )* '{' ( NL )* constraint_body '}' ( NL )+ | 'within' NUMBER ( NL )* '{' ( NL )* constraint_body '}' ( NL )+ | 'after' ( NL )* '{' ( NL )* constraint_body '}' ( NL )* ( 'then' | 'within' NUMBER ) ( NL )* '{' ( NL )* constraint_body '}' ( NL )+ | 'before' ( NL )* '{' ( NL )* constraint_body '}' ( NL )* 'then' ( NL )* '{' ( NL )* constraint_body '}' ( NL )+ )
4293
4299
  alt_98 = 6
4294
4300
  case look_98 = @input.peek( 1 )
4295
- when ID, T__28, T__50, T__52, T__53, T__54, T__57, T__63 then alt_98 = 1
4296
- when T__45 then alt_98 = 2
4297
- when T__46 then alt_98 = 3
4298
- when T__47 then alt_98 = 4
4299
- when T__48 then alt_98 = 5
4300
- when T__49 then alt_98 = 6
4301
+ when ID, T__29, T__51, T__53, T__54, T__55, T__58, T__64 then alt_98 = 1
4302
+ when T__46 then alt_98 = 2
4303
+ when T__47 then alt_98 = 3
4304
+ when T__48 then alt_98 = 4
4305
+ when T__49 then alt_98 = 5
4306
+ when T__50 then alt_98 = 6
4301
4307
  else
4302
4308
  raise NoViableAlternative( "", 98, 0 )
4303
4309
  end
@@ -4315,7 +4321,7 @@ module SfpLang
4315
4321
  case alt_74
4316
4322
  when 1
4317
4323
  # at line 369:6: constraint_statement
4318
- @state.following.push( TOKENS_FOLLOWING_constraint_statement_IN_goal_body_1094 )
4324
+ @state.following.push( TOKENS_FOLLOWING_constraint_statement_IN_goal_body_1098 )
4319
4325
  constraint_statement184 = constraint_statement
4320
4326
  @state.following.pop
4321
4327
  @adaptor.add_child( root_0, constraint_statement184.tree )
@@ -4327,21 +4333,21 @@ module SfpLang
4327
4333
 
4328
4334
  when 2
4329
4335
  # at line 373:6: constraint_namespace
4330
- @state.following.push( TOKENS_FOLLOWING_constraint_namespace_IN_goal_body_1107 )
4336
+ @state.following.push( TOKENS_FOLLOWING_constraint_namespace_IN_goal_body_1111 )
4331
4337
  constraint_namespace185 = constraint_namespace
4332
4338
  @state.following.pop
4333
4339
  @adaptor.add_child( root_0, constraint_namespace185.tree )
4334
4340
 
4335
4341
  when 3
4336
4342
  # at line 374:6: constraint_iterator
4337
- @state.following.push( TOKENS_FOLLOWING_constraint_iterator_IN_goal_body_1114 )
4343
+ @state.following.push( TOKENS_FOLLOWING_constraint_iterator_IN_goal_body_1118 )
4338
4344
  constraint_iterator186 = constraint_iterator
4339
4345
  @state.following.pop
4340
4346
  @adaptor.add_child( root_0, constraint_iterator186.tree )
4341
4347
 
4342
4348
  when 4
4343
4349
  # at line 375:6: constraint_class_quantification
4344
- @state.following.push( TOKENS_FOLLOWING_constraint_class_quantification_IN_goal_body_1121 )
4350
+ @state.following.push( TOKENS_FOLLOWING_constraint_class_quantification_IN_goal_body_1125 )
4345
4351
  constraint_class_quantification187 = constraint_class_quantification
4346
4352
  @state.following.pop
4347
4353
  @adaptor.add_child( root_0, constraint_class_quantification187.tree )
@@ -4360,7 +4366,7 @@ module SfpLang
4360
4366
  case alt_75
4361
4367
  when 1
4362
4368
  # at line 377:3: NL
4363
- __NL188__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1130 )
4369
+ __NL188__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1134 )
4364
4370
 
4365
4371
  tree_for_NL188 = @adaptor.create_with_payload( __NL188__ )
4366
4372
  @adaptor.add_child( root_0, tree_for_NL188 )
@@ -4383,7 +4389,7 @@ module SfpLang
4383
4389
 
4384
4390
 
4385
4391
  # at line 378:4: 'always' ( NL )* '{' ( NL )* constraint_body '}' ( NL )+
4386
- string_literal189 = match( T__45, TOKENS_FOLLOWING_T__45_IN_goal_body_1137 )
4392
+ string_literal189 = match( T__46, TOKENS_FOLLOWING_T__46_IN_goal_body_1141 )
4387
4393
 
4388
4394
  tree_for_string_literal189 = @adaptor.create_with_payload( string_literal189 )
4389
4395
  @adaptor.add_child( root_0, tree_for_string_literal189 )
@@ -4400,7 +4406,7 @@ module SfpLang
4400
4406
  case alt_76
4401
4407
  when 1
4402
4408
  # at line 378:13: NL
4403
- __NL190__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1139 )
4409
+ __NL190__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1143 )
4404
4410
 
4405
4411
  tree_for_NL190 = @adaptor.create_with_payload( __NL190__ )
4406
4412
  @adaptor.add_child( root_0, tree_for_NL190 )
@@ -4417,7 +4423,7 @@ module SfpLang
4417
4423
  @now = @now['always']
4418
4424
 
4419
4425
  # <-- action
4420
- char_literal191 = match( T__20, TOKENS_FOLLOWING_T__20_IN_goal_body_1148 )
4426
+ char_literal191 = match( T__20, TOKENS_FOLLOWING_T__20_IN_goal_body_1152 )
4421
4427
 
4422
4428
  tree_for_char_literal191 = @adaptor.create_with_payload( char_literal191 )
4423
4429
  @adaptor.add_child( root_0, tree_for_char_literal191 )
@@ -4434,7 +4440,7 @@ module SfpLang
4434
4440
  case alt_77
4435
4441
  when 1
4436
4442
  # at line 384:7: NL
4437
- __NL192__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1150 )
4443
+ __NL192__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1154 )
4438
4444
 
4439
4445
  tree_for_NL192 = @adaptor.create_with_payload( __NL192__ )
4440
4446
  @adaptor.add_child( root_0, tree_for_NL192 )
@@ -4444,11 +4450,11 @@ module SfpLang
4444
4450
  break # out of loop for decision 77
4445
4451
  end
4446
4452
  end # loop for decision 77
4447
- @state.following.push( TOKENS_FOLLOWING_constraint_body_IN_goal_body_1153 )
4453
+ @state.following.push( TOKENS_FOLLOWING_constraint_body_IN_goal_body_1157 )
4448
4454
  constraint_body193 = constraint_body
4449
4455
  @state.following.pop
4450
4456
  @adaptor.add_child( root_0, constraint_body193.tree )
4451
- char_literal194 = match( T__21, TOKENS_FOLLOWING_T__21_IN_goal_body_1155 )
4457
+ char_literal194 = match( T__21, TOKENS_FOLLOWING_T__21_IN_goal_body_1159 )
4452
4458
 
4453
4459
  tree_for_char_literal194 = @adaptor.create_with_payload( char_literal194 )
4454
4460
  @adaptor.add_child( root_0, tree_for_char_literal194 )
@@ -4466,7 +4472,7 @@ module SfpLang
4466
4472
  case alt_78
4467
4473
  when 1
4468
4474
  # at line 384:31: NL
4469
- __NL195__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1157 )
4475
+ __NL195__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1161 )
4470
4476
 
4471
4477
  tree_for_NL195 = @adaptor.create_with_payload( __NL195__ )
4472
4478
  @adaptor.add_child( root_0, tree_for_NL195 )
@@ -4491,7 +4497,7 @@ module SfpLang
4491
4497
 
4492
4498
 
4493
4499
  # at line 386:4: 'sometime' ( NL )* '{' ( NL )* constraint_body '}' ( NL )+
4494
- string_literal196 = match( T__46, TOKENS_FOLLOWING_T__46_IN_goal_body_1167 )
4500
+ string_literal196 = match( T__47, TOKENS_FOLLOWING_T__47_IN_goal_body_1171 )
4495
4501
 
4496
4502
  tree_for_string_literal196 = @adaptor.create_with_payload( string_literal196 )
4497
4503
  @adaptor.add_child( root_0, tree_for_string_literal196 )
@@ -4508,7 +4514,7 @@ module SfpLang
4508
4514
  case alt_79
4509
4515
  when 1
4510
4516
  # at line 386:15: NL
4511
- __NL197__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1169 )
4517
+ __NL197__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1173 )
4512
4518
 
4513
4519
  tree_for_NL197 = @adaptor.create_with_payload( __NL197__ )
4514
4520
  @adaptor.add_child( root_0, tree_for_NL197 )
@@ -4528,7 +4534,7 @@ module SfpLang
4528
4534
  @now = @now[id]
4529
4535
 
4530
4536
  # <-- action
4531
- char_literal198 = match( T__20, TOKENS_FOLLOWING_T__20_IN_goal_body_1178 )
4537
+ char_literal198 = match( T__20, TOKENS_FOLLOWING_T__20_IN_goal_body_1182 )
4532
4538
 
4533
4539
  tree_for_char_literal198 = @adaptor.create_with_payload( char_literal198 )
4534
4540
  @adaptor.add_child( root_0, tree_for_char_literal198 )
@@ -4545,7 +4551,7 @@ module SfpLang
4545
4551
  case alt_80
4546
4552
  when 1
4547
4553
  # at line 395:7: NL
4548
- __NL199__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1180 )
4554
+ __NL199__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1184 )
4549
4555
 
4550
4556
  tree_for_NL199 = @adaptor.create_with_payload( __NL199__ )
4551
4557
  @adaptor.add_child( root_0, tree_for_NL199 )
@@ -4555,11 +4561,11 @@ module SfpLang
4555
4561
  break # out of loop for decision 80
4556
4562
  end
4557
4563
  end # loop for decision 80
4558
- @state.following.push( TOKENS_FOLLOWING_constraint_body_IN_goal_body_1183 )
4564
+ @state.following.push( TOKENS_FOLLOWING_constraint_body_IN_goal_body_1187 )
4559
4565
  constraint_body200 = constraint_body
4560
4566
  @state.following.pop
4561
4567
  @adaptor.add_child( root_0, constraint_body200.tree )
4562
- char_literal201 = match( T__21, TOKENS_FOLLOWING_T__21_IN_goal_body_1185 )
4568
+ char_literal201 = match( T__21, TOKENS_FOLLOWING_T__21_IN_goal_body_1189 )
4563
4569
 
4564
4570
  tree_for_char_literal201 = @adaptor.create_with_payload( char_literal201 )
4565
4571
  @adaptor.add_child( root_0, tree_for_char_literal201 )
@@ -4577,7 +4583,7 @@ module SfpLang
4577
4583
  case alt_81
4578
4584
  when 1
4579
4585
  # at line 395:31: NL
4580
- __NL202__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1187 )
4586
+ __NL202__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1191 )
4581
4587
 
4582
4588
  tree_for_NL202 = @adaptor.create_with_payload( __NL202__ )
4583
4589
  @adaptor.add_child( root_0, tree_for_NL202 )
@@ -4605,12 +4611,12 @@ module SfpLang
4605
4611
 
4606
4612
 
4607
4613
  # at line 398:4: 'within' NUMBER ( NL )* '{' ( NL )* constraint_body '}' ( NL )+
4608
- string_literal203 = match( T__47, TOKENS_FOLLOWING_T__47_IN_goal_body_1201 )
4614
+ string_literal203 = match( T__48, TOKENS_FOLLOWING_T__48_IN_goal_body_1205 )
4609
4615
 
4610
4616
  tree_for_string_literal203 = @adaptor.create_with_payload( string_literal203 )
4611
4617
  @adaptor.add_child( root_0, tree_for_string_literal203 )
4612
4618
 
4613
- __NUMBER204__ = match( NUMBER, TOKENS_FOLLOWING_NUMBER_IN_goal_body_1203 )
4619
+ __NUMBER204__ = match( NUMBER, TOKENS_FOLLOWING_NUMBER_IN_goal_body_1207 )
4614
4620
 
4615
4621
  tree_for_NUMBER204 = @adaptor.create_with_payload( __NUMBER204__ )
4616
4622
  @adaptor.add_child( root_0, tree_for_NUMBER204 )
@@ -4627,7 +4633,7 @@ module SfpLang
4627
4633
  case alt_82
4628
4634
  when 1
4629
4635
  # at line 398:20: NL
4630
- __NL205__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1205 )
4636
+ __NL205__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1209 )
4631
4637
 
4632
4638
  tree_for_NL205 = @adaptor.create_with_payload( __NL205__ )
4633
4639
  @adaptor.add_child( root_0, tree_for_NL205 )
@@ -4645,7 +4651,7 @@ module SfpLang
4645
4651
  @now['deadline'] = __NUMBER204__.text.to_s.to_i
4646
4652
 
4647
4653
  # <-- action
4648
- char_literal206 = match( T__20, TOKENS_FOLLOWING_T__20_IN_goal_body_1214 )
4654
+ char_literal206 = match( T__20, TOKENS_FOLLOWING_T__20_IN_goal_body_1218 )
4649
4655
 
4650
4656
  tree_for_char_literal206 = @adaptor.create_with_payload( char_literal206 )
4651
4657
  @adaptor.add_child( root_0, tree_for_char_literal206 )
@@ -4662,7 +4668,7 @@ module SfpLang
4662
4668
  case alt_83
4663
4669
  when 1
4664
4670
  # at line 405:7: NL
4665
- __NL207__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1216 )
4671
+ __NL207__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1220 )
4666
4672
 
4667
4673
  tree_for_NL207 = @adaptor.create_with_payload( __NL207__ )
4668
4674
  @adaptor.add_child( root_0, tree_for_NL207 )
@@ -4672,11 +4678,11 @@ module SfpLang
4672
4678
  break # out of loop for decision 83
4673
4679
  end
4674
4680
  end # loop for decision 83
4675
- @state.following.push( TOKENS_FOLLOWING_constraint_body_IN_goal_body_1219 )
4681
+ @state.following.push( TOKENS_FOLLOWING_constraint_body_IN_goal_body_1223 )
4676
4682
  constraint_body208 = constraint_body
4677
4683
  @state.following.pop
4678
4684
  @adaptor.add_child( root_0, constraint_body208.tree )
4679
- char_literal209 = match( T__21, TOKENS_FOLLOWING_T__21_IN_goal_body_1221 )
4685
+ char_literal209 = match( T__21, TOKENS_FOLLOWING_T__21_IN_goal_body_1225 )
4680
4686
 
4681
4687
  tree_for_char_literal209 = @adaptor.create_with_payload( char_literal209 )
4682
4688
  @adaptor.add_child( root_0, tree_for_char_literal209 )
@@ -4694,7 +4700,7 @@ module SfpLang
4694
4700
  case alt_84
4695
4701
  when 1
4696
4702
  # at line 405:31: NL
4697
- __NL210__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1223 )
4703
+ __NL210__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1227 )
4698
4704
 
4699
4705
  tree_for_NL210 = @adaptor.create_with_payload( __NL210__ )
4700
4706
  @adaptor.add_child( root_0, tree_for_NL210 )
@@ -4719,7 +4725,7 @@ module SfpLang
4719
4725
 
4720
4726
 
4721
4727
  # at line 407:4: 'after' ( NL )* '{' ( NL )* constraint_body '}' ( NL )* ( 'then' | 'within' NUMBER ) ( NL )* '{' ( NL )* constraint_body '}' ( NL )+
4722
- string_literal211 = match( T__48, TOKENS_FOLLOWING_T__48_IN_goal_body_1233 )
4728
+ string_literal211 = match( T__49, TOKENS_FOLLOWING_T__49_IN_goal_body_1237 )
4723
4729
 
4724
4730
  tree_for_string_literal211 = @adaptor.create_with_payload( string_literal211 )
4725
4731
  @adaptor.add_child( root_0, tree_for_string_literal211 )
@@ -4736,7 +4742,7 @@ module SfpLang
4736
4742
  case alt_85
4737
4743
  when 1
4738
4744
  # at line 407:12: NL
4739
- __NL212__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1235 )
4745
+ __NL212__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1239 )
4740
4746
 
4741
4747
  tree_for_NL212 = @adaptor.create_with_payload( __NL212__ )
4742
4748
  @adaptor.add_child( root_0, tree_for_NL212 )
@@ -4760,7 +4766,7 @@ module SfpLang
4760
4766
  @now = @now['after']
4761
4767
 
4762
4768
  # <-- action
4763
- char_literal213 = match( T__20, TOKENS_FOLLOWING_T__20_IN_goal_body_1244 )
4769
+ char_literal213 = match( T__20, TOKENS_FOLLOWING_T__20_IN_goal_body_1248 )
4764
4770
 
4765
4771
  tree_for_char_literal213 = @adaptor.create_with_payload( char_literal213 )
4766
4772
  @adaptor.add_child( root_0, tree_for_char_literal213 )
@@ -4777,7 +4783,7 @@ module SfpLang
4777
4783
  case alt_86
4778
4784
  when 1
4779
4785
  # at line 420:7: NL
4780
- __NL214__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1246 )
4786
+ __NL214__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1250 )
4781
4787
 
4782
4788
  tree_for_NL214 = @adaptor.create_with_payload( __NL214__ )
4783
4789
  @adaptor.add_child( root_0, tree_for_NL214 )
@@ -4787,11 +4793,11 @@ module SfpLang
4787
4793
  break # out of loop for decision 86
4788
4794
  end
4789
4795
  end # loop for decision 86
4790
- @state.following.push( TOKENS_FOLLOWING_constraint_body_IN_goal_body_1249 )
4796
+ @state.following.push( TOKENS_FOLLOWING_constraint_body_IN_goal_body_1253 )
4791
4797
  constraint_body215 = constraint_body
4792
4798
  @state.following.pop
4793
4799
  @adaptor.add_child( root_0, constraint_body215.tree )
4794
- char_literal216 = match( T__21, TOKENS_FOLLOWING_T__21_IN_goal_body_1251 )
4800
+ char_literal216 = match( T__21, TOKENS_FOLLOWING_T__21_IN_goal_body_1255 )
4795
4801
 
4796
4802
  tree_for_char_literal216 = @adaptor.create_with_payload( char_literal216 )
4797
4803
  @adaptor.add_child( root_0, tree_for_char_literal216 )
@@ -4808,7 +4814,7 @@ module SfpLang
4808
4814
  case alt_87
4809
4815
  when 1
4810
4816
  # at line 420:31: NL
4811
- __NL217__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1253 )
4817
+ __NL217__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1257 )
4812
4818
 
4813
4819
  tree_for_NL217 = @adaptor.create_with_payload( __NL217__ )
4814
4820
  @adaptor.add_child( root_0, tree_for_NL217 )
@@ -4825,9 +4831,9 @@ module SfpLang
4825
4831
  alt_88 = 2
4826
4832
  look_88_0 = @input.peek( 1 )
4827
4833
 
4828
- if ( look_88_0 == T__29 )
4834
+ if ( look_88_0 == T__30 )
4829
4835
  alt_88 = 1
4830
- elsif ( look_88_0 == T__47 )
4836
+ elsif ( look_88_0 == T__48 )
4831
4837
  alt_88 = 2
4832
4838
  else
4833
4839
  raise NoViableAlternative( "", 88, 0 )
@@ -4835,7 +4841,7 @@ module SfpLang
4835
4841
  case alt_88
4836
4842
  when 1
4837
4843
  # at line 422:5: 'then'
4838
- string_literal218 = match( T__29, TOKENS_FOLLOWING_T__29_IN_goal_body_1264 )
4844
+ string_literal218 = match( T__30, TOKENS_FOLLOWING_T__30_IN_goal_body_1268 )
4839
4845
 
4840
4846
  tree_for_string_literal218 = @adaptor.create_with_payload( string_literal218 )
4841
4847
  @adaptor.add_child( root_0, tree_for_string_literal218 )
@@ -4843,12 +4849,12 @@ module SfpLang
4843
4849
 
4844
4850
  when 2
4845
4851
  # at line 423:6: 'within' NUMBER
4846
- string_literal219 = match( T__47, TOKENS_FOLLOWING_T__47_IN_goal_body_1271 )
4852
+ string_literal219 = match( T__48, TOKENS_FOLLOWING_T__48_IN_goal_body_1275 )
4847
4853
 
4848
4854
  tree_for_string_literal219 = @adaptor.create_with_payload( string_literal219 )
4849
4855
  @adaptor.add_child( root_0, tree_for_string_literal219 )
4850
4856
 
4851
- __NUMBER220__ = match( NUMBER, TOKENS_FOLLOWING_NUMBER_IN_goal_body_1273 )
4857
+ __NUMBER220__ = match( NUMBER, TOKENS_FOLLOWING_NUMBER_IN_goal_body_1277 )
4852
4858
 
4853
4859
  tree_for_NUMBER220 = @adaptor.create_with_payload( __NUMBER220__ )
4854
4860
  @adaptor.add_child( root_0, tree_for_NUMBER220 )
@@ -4870,7 +4876,7 @@ module SfpLang
4870
4876
  case alt_89
4871
4877
  when 1
4872
4878
  # at line 425:5: NL
4873
- __NL221__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1285 )
4879
+ __NL221__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1289 )
4874
4880
 
4875
4881
  tree_for_NL221 = @adaptor.create_with_payload( __NL221__ )
4876
4882
  @adaptor.add_child( root_0, tree_for_NL221 )
@@ -4886,7 +4892,7 @@ module SfpLang
4886
4892
  @now = @now['then']
4887
4893
 
4888
4894
  # <-- action
4889
- char_literal222 = match( T__20, TOKENS_FOLLOWING_T__20_IN_goal_body_1294 )
4895
+ char_literal222 = match( T__20, TOKENS_FOLLOWING_T__20_IN_goal_body_1298 )
4890
4896
 
4891
4897
  tree_for_char_literal222 = @adaptor.create_with_payload( char_literal222 )
4892
4898
  @adaptor.add_child( root_0, tree_for_char_literal222 )
@@ -4903,7 +4909,7 @@ module SfpLang
4903
4909
  case alt_90
4904
4910
  when 1
4905
4911
  # at line 430:7: NL
4906
- __NL223__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1296 )
4912
+ __NL223__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1300 )
4907
4913
 
4908
4914
  tree_for_NL223 = @adaptor.create_with_payload( __NL223__ )
4909
4915
  @adaptor.add_child( root_0, tree_for_NL223 )
@@ -4913,11 +4919,11 @@ module SfpLang
4913
4919
  break # out of loop for decision 90
4914
4920
  end
4915
4921
  end # loop for decision 90
4916
- @state.following.push( TOKENS_FOLLOWING_constraint_body_IN_goal_body_1299 )
4922
+ @state.following.push( TOKENS_FOLLOWING_constraint_body_IN_goal_body_1303 )
4917
4923
  constraint_body224 = constraint_body
4918
4924
  @state.following.pop
4919
4925
  @adaptor.add_child( root_0, constraint_body224.tree )
4920
- char_literal225 = match( T__21, TOKENS_FOLLOWING_T__21_IN_goal_body_1301 )
4926
+ char_literal225 = match( T__21, TOKENS_FOLLOWING_T__21_IN_goal_body_1305 )
4921
4927
 
4922
4928
  tree_for_char_literal225 = @adaptor.create_with_payload( char_literal225 )
4923
4929
  @adaptor.add_child( root_0, tree_for_char_literal225 )
@@ -4935,7 +4941,7 @@ module SfpLang
4935
4941
  case alt_91
4936
4942
  when 1
4937
4943
  # at line 430:31: NL
4938
- __NL226__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1303 )
4944
+ __NL226__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1307 )
4939
4945
 
4940
4946
  tree_for_NL226 = @adaptor.create_with_payload( __NL226__ )
4941
4947
  @adaptor.add_child( root_0, tree_for_NL226 )
@@ -4966,7 +4972,7 @@ module SfpLang
4966
4972
 
4967
4973
 
4968
4974
  # at line 434:4: 'before' ( NL )* '{' ( NL )* constraint_body '}' ( NL )* 'then' ( NL )* '{' ( NL )* constraint_body '}' ( NL )+
4969
- string_literal227 = match( T__49, TOKENS_FOLLOWING_T__49_IN_goal_body_1321 )
4975
+ string_literal227 = match( T__50, TOKENS_FOLLOWING_T__50_IN_goal_body_1325 )
4970
4976
 
4971
4977
  tree_for_string_literal227 = @adaptor.create_with_payload( string_literal227 )
4972
4978
  @adaptor.add_child( root_0, tree_for_string_literal227 )
@@ -4983,7 +4989,7 @@ module SfpLang
4983
4989
  case alt_92
4984
4990
  when 1
4985
4991
  # at line 434:13: NL
4986
- __NL228__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1323 )
4992
+ __NL228__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1327 )
4987
4993
 
4988
4994
  tree_for_NL228 = @adaptor.create_with_payload( __NL228__ )
4989
4995
  @adaptor.add_child( root_0, tree_for_NL228 )
@@ -5002,7 +5008,7 @@ module SfpLang
5002
5008
  @now = @now['before']
5003
5009
 
5004
5010
  # <-- action
5005
- char_literal229 = match( T__20, TOKENS_FOLLOWING_T__20_IN_goal_body_1332 )
5011
+ char_literal229 = match( T__20, TOKENS_FOLLOWING_T__20_IN_goal_body_1336 )
5006
5012
 
5007
5013
  tree_for_char_literal229 = @adaptor.create_with_payload( char_literal229 )
5008
5014
  @adaptor.add_child( root_0, tree_for_char_literal229 )
@@ -5019,7 +5025,7 @@ module SfpLang
5019
5025
  case alt_93
5020
5026
  when 1
5021
5027
  # at line 442:7: NL
5022
- __NL230__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1334 )
5028
+ __NL230__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1338 )
5023
5029
 
5024
5030
  tree_for_NL230 = @adaptor.create_with_payload( __NL230__ )
5025
5031
  @adaptor.add_child( root_0, tree_for_NL230 )
@@ -5029,11 +5035,11 @@ module SfpLang
5029
5035
  break # out of loop for decision 93
5030
5036
  end
5031
5037
  end # loop for decision 93
5032
- @state.following.push( TOKENS_FOLLOWING_constraint_body_IN_goal_body_1337 )
5038
+ @state.following.push( TOKENS_FOLLOWING_constraint_body_IN_goal_body_1341 )
5033
5039
  constraint_body231 = constraint_body
5034
5040
  @state.following.pop
5035
5041
  @adaptor.add_child( root_0, constraint_body231.tree )
5036
- char_literal232 = match( T__21, TOKENS_FOLLOWING_T__21_IN_goal_body_1339 )
5042
+ char_literal232 = match( T__21, TOKENS_FOLLOWING_T__21_IN_goal_body_1343 )
5037
5043
 
5038
5044
  tree_for_char_literal232 = @adaptor.create_with_payload( char_literal232 )
5039
5045
  @adaptor.add_child( root_0, tree_for_char_literal232 )
@@ -5050,7 +5056,7 @@ module SfpLang
5050
5056
  case alt_94
5051
5057
  when 1
5052
5058
  # at line 442:31: NL
5053
- __NL233__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1341 )
5059
+ __NL233__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1345 )
5054
5060
 
5055
5061
  tree_for_NL233 = @adaptor.create_with_payload( __NL233__ )
5056
5062
  @adaptor.add_child( root_0, tree_for_NL233 )
@@ -5063,7 +5069,7 @@ module SfpLang
5063
5069
  # --> action
5064
5070
  self.goto_parent()
5065
5071
  # <-- action
5066
- string_literal234 = match( T__29, TOKENS_FOLLOWING_T__29_IN_goal_body_1350 )
5072
+ string_literal234 = match( T__30, TOKENS_FOLLOWING_T__30_IN_goal_body_1354 )
5067
5073
 
5068
5074
  tree_for_string_literal234 = @adaptor.create_with_payload( string_literal234 )
5069
5075
  @adaptor.add_child( root_0, tree_for_string_literal234 )
@@ -5080,7 +5086,7 @@ module SfpLang
5080
5086
  case alt_95
5081
5087
  when 1
5082
5088
  # at line 444:10: NL
5083
- __NL235__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1352 )
5089
+ __NL235__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1356 )
5084
5090
 
5085
5091
  tree_for_NL235 = @adaptor.create_with_payload( __NL235__ )
5086
5092
  @adaptor.add_child( root_0, tree_for_NL235 )
@@ -5096,7 +5102,7 @@ module SfpLang
5096
5102
  @now = @now['then']
5097
5103
 
5098
5104
  # <-- action
5099
- char_literal236 = match( T__20, TOKENS_FOLLOWING_T__20_IN_goal_body_1361 )
5105
+ char_literal236 = match( T__20, TOKENS_FOLLOWING_T__20_IN_goal_body_1365 )
5100
5106
 
5101
5107
  tree_for_char_literal236 = @adaptor.create_with_payload( char_literal236 )
5102
5108
  @adaptor.add_child( root_0, tree_for_char_literal236 )
@@ -5113,7 +5119,7 @@ module SfpLang
5113
5119
  case alt_96
5114
5120
  when 1
5115
5121
  # at line 449:7: NL
5116
- __NL237__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1363 )
5122
+ __NL237__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1367 )
5117
5123
 
5118
5124
  tree_for_NL237 = @adaptor.create_with_payload( __NL237__ )
5119
5125
  @adaptor.add_child( root_0, tree_for_NL237 )
@@ -5123,11 +5129,11 @@ module SfpLang
5123
5129
  break # out of loop for decision 96
5124
5130
  end
5125
5131
  end # loop for decision 96
5126
- @state.following.push( TOKENS_FOLLOWING_constraint_body_IN_goal_body_1366 )
5132
+ @state.following.push( TOKENS_FOLLOWING_constraint_body_IN_goal_body_1370 )
5127
5133
  constraint_body238 = constraint_body
5128
5134
  @state.following.pop
5129
5135
  @adaptor.add_child( root_0, constraint_body238.tree )
5130
- char_literal239 = match( T__21, TOKENS_FOLLOWING_T__21_IN_goal_body_1368 )
5136
+ char_literal239 = match( T__21, TOKENS_FOLLOWING_T__21_IN_goal_body_1372 )
5131
5137
 
5132
5138
  tree_for_char_literal239 = @adaptor.create_with_payload( char_literal239 )
5133
5139
  @adaptor.add_child( root_0, tree_for_char_literal239 )
@@ -5145,7 +5151,7 @@ module SfpLang
5145
5151
  case alt_97
5146
5152
  when 1
5147
5153
  # at line 449:31: NL
5148
- __NL240__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1370 )
5154
+ __NL240__ = match( NL, TOKENS_FOLLOWING_NL_IN_goal_body_1374 )
5149
5155
 
5150
5156
  tree_for_NL240 = @adaptor.create_with_payload( __NL240__ )
5151
5157
  @adaptor.add_child( root_0, tree_for_NL240 )
@@ -5220,7 +5226,7 @@ module SfpLang
5220
5226
 
5221
5227
 
5222
5228
  # at line 455:4: '{' ( NL )* constraint_body '}'
5223
- char_literal241 = match( T__20, TOKENS_FOLLOWING_T__20_IN_nested_constraint_1390 )
5229
+ char_literal241 = match( T__20, TOKENS_FOLLOWING_T__20_IN_nested_constraint_1394 )
5224
5230
 
5225
5231
  tree_for_char_literal241 = @adaptor.create_with_payload( char_literal241 )
5226
5232
  @adaptor.add_child( root_0, tree_for_char_literal241 )
@@ -5237,7 +5243,7 @@ module SfpLang
5237
5243
  case alt_99
5238
5244
  when 1
5239
5245
  # at line 455:8: NL
5240
- __NL242__ = match( NL, TOKENS_FOLLOWING_NL_IN_nested_constraint_1392 )
5246
+ __NL242__ = match( NL, TOKENS_FOLLOWING_NL_IN_nested_constraint_1396 )
5241
5247
 
5242
5248
  tree_for_NL242 = @adaptor.create_with_payload( __NL242__ )
5243
5249
  @adaptor.add_child( root_0, tree_for_NL242 )
@@ -5247,11 +5253,11 @@ module SfpLang
5247
5253
  break # out of loop for decision 99
5248
5254
  end
5249
5255
  end # loop for decision 99
5250
- @state.following.push( TOKENS_FOLLOWING_constraint_body_IN_nested_constraint_1395 )
5256
+ @state.following.push( TOKENS_FOLLOWING_constraint_body_IN_nested_constraint_1399 )
5251
5257
  constraint_body243 = constraint_body
5252
5258
  @state.following.pop
5253
5259
  @adaptor.add_child( root_0, constraint_body243.tree )
5254
- char_literal244 = match( T__21, TOKENS_FOLLOWING_T__21_IN_nested_constraint_1397 )
5260
+ char_literal244 = match( T__21, TOKENS_FOLLOWING_T__21_IN_nested_constraint_1401 )
5255
5261
 
5256
5262
  tree_for_char_literal244 = @adaptor.create_with_payload( char_literal244 )
5257
5263
  @adaptor.add_child( root_0, tree_for_char_literal244 )
@@ -5314,12 +5320,12 @@ module SfpLang
5314
5320
 
5315
5321
 
5316
5322
  # at line 459:4: ID 'constraint' '{' ( NL )* constraint_body '}' ( NL )+
5317
- __ID245__ = match( ID, TOKENS_FOLLOWING_ID_IN_constraint_1408 )
5323
+ __ID245__ = match( ID, TOKENS_FOLLOWING_ID_IN_constraint_1412 )
5318
5324
 
5319
5325
  tree_for_ID245 = @adaptor.create_with_payload( __ID245__ )
5320
5326
  @adaptor.add_child( root_0, tree_for_ID245 )
5321
5327
 
5322
- string_literal246 = match( T__44, TOKENS_FOLLOWING_T__44_IN_constraint_1410 )
5328
+ string_literal246 = match( T__45, TOKENS_FOLLOWING_T__45_IN_constraint_1414 )
5323
5329
 
5324
5330
  tree_for_string_literal246 = @adaptor.create_with_payload( string_literal246 )
5325
5331
  @adaptor.add_child( root_0, tree_for_string_literal246 )
@@ -5334,7 +5340,7 @@ module SfpLang
5334
5340
  @now = @now[__ID245__.text]
5335
5341
 
5336
5342
  # <-- action
5337
- char_literal247 = match( T__20, TOKENS_FOLLOWING_T__20_IN_constraint_1418 )
5343
+ char_literal247 = match( T__20, TOKENS_FOLLOWING_T__20_IN_constraint_1422 )
5338
5344
 
5339
5345
  tree_for_char_literal247 = @adaptor.create_with_payload( char_literal247 )
5340
5346
  @adaptor.add_child( root_0, tree_for_char_literal247 )
@@ -5351,7 +5357,7 @@ module SfpLang
5351
5357
  case alt_100
5352
5358
  when 1
5353
5359
  # at line 468:7: NL
5354
- __NL248__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_1420 )
5360
+ __NL248__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_1424 )
5355
5361
 
5356
5362
  tree_for_NL248 = @adaptor.create_with_payload( __NL248__ )
5357
5363
  @adaptor.add_child( root_0, tree_for_NL248 )
@@ -5361,11 +5367,11 @@ module SfpLang
5361
5367
  break # out of loop for decision 100
5362
5368
  end
5363
5369
  end # loop for decision 100
5364
- @state.following.push( TOKENS_FOLLOWING_constraint_body_IN_constraint_1423 )
5370
+ @state.following.push( TOKENS_FOLLOWING_constraint_body_IN_constraint_1427 )
5365
5371
  constraint_body249 = constraint_body
5366
5372
  @state.following.pop
5367
5373
  @adaptor.add_child( root_0, constraint_body249.tree )
5368
- char_literal250 = match( T__21, TOKENS_FOLLOWING_T__21_IN_constraint_1425 )
5374
+ char_literal250 = match( T__21, TOKENS_FOLLOWING_T__21_IN_constraint_1429 )
5369
5375
 
5370
5376
  tree_for_char_literal250 = @adaptor.create_with_payload( char_literal250 )
5371
5377
  @adaptor.add_child( root_0, tree_for_char_literal250 )
@@ -5383,7 +5389,7 @@ module SfpLang
5383
5389
  case alt_101
5384
5390
  when 1
5385
5391
  # at line 468:31: NL
5386
- __NL251__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_1427 )
5392
+ __NL251__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_1431 )
5387
5393
 
5388
5394
  tree_for_NL251 = @adaptor.create_with_payload( __NL251__ )
5389
5395
  @adaptor.add_child( root_0, tree_for_NL251 )
@@ -5458,7 +5464,7 @@ module SfpLang
5458
5464
  alt_104 = 2
5459
5465
  look_104_0 = @input.peek( 1 )
5460
5466
 
5461
- if ( look_104_0 == ID || look_104_0 == T__28 || look_104_0 == T__50 || look_104_0.between?( T__52, T__54 ) || look_104_0 == T__57 || look_104_0 == T__63 )
5467
+ if ( look_104_0 == ID || look_104_0 == T__29 || look_104_0 == T__51 || look_104_0.between?( T__53, T__55 ) || look_104_0 == T__58 || look_104_0 == T__64 )
5462
5468
  alt_104 = 1
5463
5469
 
5464
5470
  end
@@ -5471,7 +5477,7 @@ module SfpLang
5471
5477
  case alt_102
5472
5478
  when 1
5473
5479
  # at line 474:6: constraint_statement
5474
- @state.following.push( TOKENS_FOLLOWING_constraint_statement_IN_constraint_body_1450 )
5480
+ @state.following.push( TOKENS_FOLLOWING_constraint_statement_IN_constraint_body_1454 )
5475
5481
  constraint_statement252 = constraint_statement
5476
5482
  @state.following.pop
5477
5483
  @adaptor.add_child( root_0, constraint_statement252.tree )
@@ -5483,21 +5489,21 @@ module SfpLang
5483
5489
 
5484
5490
  when 2
5485
5491
  # at line 478:6: constraint_namespace
5486
- @state.following.push( TOKENS_FOLLOWING_constraint_namespace_IN_constraint_body_1463 )
5492
+ @state.following.push( TOKENS_FOLLOWING_constraint_namespace_IN_constraint_body_1467 )
5487
5493
  constraint_namespace253 = constraint_namespace
5488
5494
  @state.following.pop
5489
5495
  @adaptor.add_child( root_0, constraint_namespace253.tree )
5490
5496
 
5491
5497
  when 3
5492
5498
  # at line 479:6: constraint_iterator
5493
- @state.following.push( TOKENS_FOLLOWING_constraint_iterator_IN_constraint_body_1470 )
5499
+ @state.following.push( TOKENS_FOLLOWING_constraint_iterator_IN_constraint_body_1474 )
5494
5500
  constraint_iterator254 = constraint_iterator
5495
5501
  @state.following.pop
5496
5502
  @adaptor.add_child( root_0, constraint_iterator254.tree )
5497
5503
 
5498
5504
  when 4
5499
5505
  # at line 480:6: constraint_class_quantification
5500
- @state.following.push( TOKENS_FOLLOWING_constraint_class_quantification_IN_constraint_body_1477 )
5506
+ @state.following.push( TOKENS_FOLLOWING_constraint_class_quantification_IN_constraint_body_1481 )
5501
5507
  constraint_class_quantification255 = constraint_class_quantification
5502
5508
  @state.following.pop
5503
5509
  @adaptor.add_child( root_0, constraint_class_quantification255.tree )
@@ -5516,7 +5522,7 @@ module SfpLang
5516
5522
  case alt_103
5517
5523
  when 1
5518
5524
  # at line 482:3: NL
5519
- __NL256__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_body_1486 )
5525
+ __NL256__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_body_1490 )
5520
5526
 
5521
5527
  tree_for_NL256 = @adaptor.create_with_payload( __NL256__ )
5522
5528
  @adaptor.add_child( root_0, tree_for_NL256 )
@@ -5594,7 +5600,7 @@ module SfpLang
5594
5600
 
5595
5601
 
5596
5602
  # at line 486:4: path ( NL )* '{' ( NL )* ( constraint_statement ( NL )+ )* '}'
5597
- @state.following.push( TOKENS_FOLLOWING_path_IN_constraint_namespace_1500 )
5603
+ @state.following.push( TOKENS_FOLLOWING_path_IN_constraint_namespace_1504 )
5598
5604
  path257 = path
5599
5605
  @state.following.pop
5600
5606
  @adaptor.add_child( root_0, path257.tree )
@@ -5610,7 +5616,7 @@ module SfpLang
5610
5616
  case alt_105
5611
5617
  when 1
5612
5618
  # at line 486:9: NL
5613
- __NL258__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_namespace_1502 )
5619
+ __NL258__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_namespace_1506 )
5614
5620
 
5615
5621
  tree_for_NL258 = @adaptor.create_with_payload( __NL258__ )
5616
5622
  @adaptor.add_child( root_0, tree_for_NL258 )
@@ -5620,7 +5626,7 @@ module SfpLang
5620
5626
  break # out of loop for decision 105
5621
5627
  end
5622
5628
  end # loop for decision 105
5623
- char_literal259 = match( T__20, TOKENS_FOLLOWING_T__20_IN_constraint_namespace_1505 )
5629
+ char_literal259 = match( T__20, TOKENS_FOLLOWING_T__20_IN_constraint_namespace_1509 )
5624
5630
 
5625
5631
  tree_for_char_literal259 = @adaptor.create_with_payload( char_literal259 )
5626
5632
  @adaptor.add_child( root_0, tree_for_char_literal259 )
@@ -5637,7 +5643,7 @@ module SfpLang
5637
5643
  case alt_106
5638
5644
  when 1
5639
5645
  # at line 486:17: NL
5640
- __NL260__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_namespace_1507 )
5646
+ __NL260__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_namespace_1511 )
5641
5647
 
5642
5648
  tree_for_NL260 = @adaptor.create_with_payload( __NL260__ )
5643
5649
  @adaptor.add_child( root_0, tree_for_NL260 )
@@ -5652,14 +5658,14 @@ module SfpLang
5652
5658
  alt_108 = 2
5653
5659
  look_108_0 = @input.peek( 1 )
5654
5660
 
5655
- if ( look_108_0 == ID || look_108_0 == T__28 || look_108_0 == T__57 || look_108_0 == T__63 )
5661
+ if ( look_108_0 == ID || look_108_0 == T__29 || look_108_0 == T__58 || look_108_0 == T__64 )
5656
5662
  alt_108 = 1
5657
5663
 
5658
5664
  end
5659
5665
  case alt_108
5660
5666
  when 1
5661
5667
  # at line 486:22: constraint_statement ( NL )+
5662
- @state.following.push( TOKENS_FOLLOWING_constraint_statement_IN_constraint_namespace_1511 )
5668
+ @state.following.push( TOKENS_FOLLOWING_constraint_statement_IN_constraint_namespace_1515 )
5663
5669
  constraint_statement261 = constraint_statement
5664
5670
  @state.following.pop
5665
5671
  @adaptor.add_child( root_0, constraint_statement261.tree )
@@ -5682,7 +5688,7 @@ module SfpLang
5682
5688
  case alt_107
5683
5689
  when 1
5684
5690
  # at line 491:3: NL
5685
- __NL262__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_namespace_1519 )
5691
+ __NL262__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_namespace_1523 )
5686
5692
 
5687
5693
  tree_for_NL262 = @adaptor.create_with_payload( __NL262__ )
5688
5694
  @adaptor.add_child( root_0, tree_for_NL262 )
@@ -5703,7 +5709,7 @@ module SfpLang
5703
5709
  break # out of loop for decision 108
5704
5710
  end
5705
5711
  end # loop for decision 108
5706
- char_literal263 = match( T__21, TOKENS_FOLLOWING_T__21_IN_constraint_namespace_1524 )
5712
+ char_literal263 = match( T__21, TOKENS_FOLLOWING_T__21_IN_constraint_namespace_1528 )
5707
5713
 
5708
5714
  tree_for_char_literal263 = @adaptor.create_with_payload( char_literal263 )
5709
5715
  @adaptor.add_child( root_0, tree_for_char_literal263 )
@@ -5775,31 +5781,31 @@ module SfpLang
5775
5781
 
5776
5782
 
5777
5783
  # at line 495:4: 'foreach' '(' path 'as' ID ')' ( NL )* '{' ( NL )+ ( constraint_statement ( NL )+ )* '}'
5778
- string_literal264 = match( T__50, TOKENS_FOLLOWING_T__50_IN_constraint_iterator_1535 )
5784
+ string_literal264 = match( T__51, TOKENS_FOLLOWING_T__51_IN_constraint_iterator_1539 )
5779
5785
 
5780
5786
  tree_for_string_literal264 = @adaptor.create_with_payload( string_literal264 )
5781
5787
  @adaptor.add_child( root_0, tree_for_string_literal264 )
5782
5788
 
5783
- char_literal265 = match( T__37, TOKENS_FOLLOWING_T__37_IN_constraint_iterator_1537 )
5789
+ char_literal265 = match( T__38, TOKENS_FOLLOWING_T__38_IN_constraint_iterator_1541 )
5784
5790
 
5785
5791
  tree_for_char_literal265 = @adaptor.create_with_payload( char_literal265 )
5786
5792
  @adaptor.add_child( root_0, tree_for_char_literal265 )
5787
5793
 
5788
- @state.following.push( TOKENS_FOLLOWING_path_IN_constraint_iterator_1539 )
5794
+ @state.following.push( TOKENS_FOLLOWING_path_IN_constraint_iterator_1543 )
5789
5795
  path266 = path
5790
5796
  @state.following.pop
5791
5797
  @adaptor.add_child( root_0, path266.tree )
5792
- string_literal267 = match( T__51, TOKENS_FOLLOWING_T__51_IN_constraint_iterator_1541 )
5798
+ string_literal267 = match( T__52, TOKENS_FOLLOWING_T__52_IN_constraint_iterator_1545 )
5793
5799
 
5794
5800
  tree_for_string_literal267 = @adaptor.create_with_payload( string_literal267 )
5795
5801
  @adaptor.add_child( root_0, tree_for_string_literal267 )
5796
5802
 
5797
- __ID268__ = match( ID, TOKENS_FOLLOWING_ID_IN_constraint_iterator_1543 )
5803
+ __ID268__ = match( ID, TOKENS_FOLLOWING_ID_IN_constraint_iterator_1547 )
5798
5804
 
5799
5805
  tree_for_ID268 = @adaptor.create_with_payload( __ID268__ )
5800
5806
  @adaptor.add_child( root_0, tree_for_ID268 )
5801
5807
 
5802
- char_literal269 = match( T__39, TOKENS_FOLLOWING_T__39_IN_constraint_iterator_1545 )
5808
+ char_literal269 = match( T__40, TOKENS_FOLLOWING_T__40_IN_constraint_iterator_1549 )
5803
5809
 
5804
5810
  tree_for_char_literal269 = @adaptor.create_with_payload( char_literal269 )
5805
5811
  @adaptor.add_child( root_0, tree_for_char_literal269 )
@@ -5816,7 +5822,7 @@ module SfpLang
5816
5822
  case alt_109
5817
5823
  when 1
5818
5824
  # at line 495:35: NL
5819
- __NL270__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_iterator_1547 )
5825
+ __NL270__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_iterator_1551 )
5820
5826
 
5821
5827
  tree_for_NL270 = @adaptor.create_with_payload( __NL270__ )
5822
5828
  @adaptor.add_child( root_0, tree_for_NL270 )
@@ -5826,7 +5832,7 @@ module SfpLang
5826
5832
  break # out of loop for decision 109
5827
5833
  end
5828
5834
  end # loop for decision 109
5829
- char_literal271 = match( T__20, TOKENS_FOLLOWING_T__20_IN_constraint_iterator_1550 )
5835
+ char_literal271 = match( T__20, TOKENS_FOLLOWING_T__20_IN_constraint_iterator_1554 )
5830
5836
 
5831
5837
  tree_for_char_literal271 = @adaptor.create_with_payload( char_literal271 )
5832
5838
  @adaptor.add_child( root_0, tree_for_char_literal271 )
@@ -5844,7 +5850,7 @@ module SfpLang
5844
5850
  case alt_110
5845
5851
  when 1
5846
5852
  # at line 495:43: NL
5847
- __NL272__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_iterator_1552 )
5853
+ __NL272__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_iterator_1556 )
5848
5854
 
5849
5855
  tree_for_NL272 = @adaptor.create_with_payload( __NL272__ )
5850
5856
  @adaptor.add_child( root_0, tree_for_NL272 )
@@ -5886,14 +5892,14 @@ module SfpLang
5886
5892
  alt_112 = 2
5887
5893
  look_112_0 = @input.peek( 1 )
5888
5894
 
5889
- if ( look_112_0 == ID || look_112_0 == T__28 || look_112_0 == T__57 || look_112_0 == T__63 )
5895
+ if ( look_112_0 == ID || look_112_0 == T__29 || look_112_0 == T__58 || look_112_0 == T__64 )
5890
5896
  alt_112 = 1
5891
5897
 
5892
5898
  end
5893
5899
  case alt_112
5894
5900
  when 1
5895
5901
  # at line 515:4: constraint_statement ( NL )+
5896
- @state.following.push( TOKENS_FOLLOWING_constraint_statement_IN_constraint_iterator_1562 )
5902
+ @state.following.push( TOKENS_FOLLOWING_constraint_statement_IN_constraint_iterator_1566 )
5897
5903
  constraint_statement273 = constraint_statement
5898
5904
  @state.following.pop
5899
5905
  @adaptor.add_child( root_0, constraint_statement273.tree )
@@ -5915,7 +5921,7 @@ module SfpLang
5915
5921
  case alt_111
5916
5922
  when 1
5917
5923
  # at line 519:3: NL
5918
- __NL274__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_iterator_1570 )
5924
+ __NL274__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_iterator_1574 )
5919
5925
 
5920
5926
  tree_for_NL274 = @adaptor.create_with_payload( __NL274__ )
5921
5927
  @adaptor.add_child( root_0, tree_for_NL274 )
@@ -5936,7 +5942,7 @@ module SfpLang
5936
5942
  break # out of loop for decision 112
5937
5943
  end
5938
5944
  end # loop for decision 112
5939
- char_literal275 = match( T__21, TOKENS_FOLLOWING_T__21_IN_constraint_iterator_1577 )
5945
+ char_literal275 = match( T__21, TOKENS_FOLLOWING_T__21_IN_constraint_iterator_1581 )
5940
5946
 
5941
5947
  tree_for_char_literal275 = @adaptor.create_with_payload( char_literal275 )
5942
5948
  @adaptor.add_child( root_0, tree_for_char_literal275 )
@@ -5995,7 +6001,7 @@ module SfpLang
5995
6001
 
5996
6002
  # at line
5997
6003
  set276 = @input.look
5998
- if @input.peek( 1 ).between?( T__52, T__54 )
6004
+ if @input.peek( 1 ).between?( T__53, T__55 )
5999
6005
  @input.consume
6000
6006
  @adaptor.add_child( root_0, @adaptor.create_with_payload( set276 ) )
6001
6007
  @state.error_recovery = false
@@ -6082,30 +6088,30 @@ module SfpLang
6082
6088
 
6083
6089
 
6084
6090
  # at line 534:4: quantification_keyword '(' path 'as' ID ')' ( ( binary_comp | '=' ) NUMBER )? ( NL )* '{' ( NL )+ ( constraint_statement ( NL )+ | constraint_different ( NL )+ | constraint_iterator ( NL )+ )* '}'
6085
- @state.following.push( TOKENS_FOLLOWING_quantification_keyword_IN_constraint_class_quantification_1613 )
6091
+ @state.following.push( TOKENS_FOLLOWING_quantification_keyword_IN_constraint_class_quantification_1617 )
6086
6092
  quantification_keyword277 = quantification_keyword
6087
6093
  @state.following.pop
6088
6094
  @adaptor.add_child( root_0, quantification_keyword277.tree )
6089
- char_literal278 = match( T__37, TOKENS_FOLLOWING_T__37_IN_constraint_class_quantification_1615 )
6095
+ char_literal278 = match( T__38, TOKENS_FOLLOWING_T__38_IN_constraint_class_quantification_1619 )
6090
6096
 
6091
6097
  tree_for_char_literal278 = @adaptor.create_with_payload( char_literal278 )
6092
6098
  @adaptor.add_child( root_0, tree_for_char_literal278 )
6093
6099
 
6094
- @state.following.push( TOKENS_FOLLOWING_path_IN_constraint_class_quantification_1617 )
6100
+ @state.following.push( TOKENS_FOLLOWING_path_IN_constraint_class_quantification_1621 )
6095
6101
  path279 = path
6096
6102
  @state.following.pop
6097
6103
  @adaptor.add_child( root_0, path279.tree )
6098
- string_literal280 = match( T__51, TOKENS_FOLLOWING_T__51_IN_constraint_class_quantification_1619 )
6104
+ string_literal280 = match( T__52, TOKENS_FOLLOWING_T__52_IN_constraint_class_quantification_1623 )
6099
6105
 
6100
6106
  tree_for_string_literal280 = @adaptor.create_with_payload( string_literal280 )
6101
6107
  @adaptor.add_child( root_0, tree_for_string_literal280 )
6102
6108
 
6103
- __ID281__ = match( ID, TOKENS_FOLLOWING_ID_IN_constraint_class_quantification_1621 )
6109
+ __ID281__ = match( ID, TOKENS_FOLLOWING_ID_IN_constraint_class_quantification_1625 )
6104
6110
 
6105
6111
  tree_for_ID281 = @adaptor.create_with_payload( __ID281__ )
6106
6112
  @adaptor.add_child( root_0, tree_for_ID281 )
6107
6113
 
6108
- char_literal282 = match( T__39, TOKENS_FOLLOWING_T__39_IN_constraint_class_quantification_1623 )
6114
+ char_literal282 = match( T__40, TOKENS_FOLLOWING_T__40_IN_constraint_class_quantification_1627 )
6109
6115
 
6110
6116
  tree_for_char_literal282 = @adaptor.create_with_payload( char_literal282 )
6111
6117
  @adaptor.add_child( root_0, tree_for_char_literal282 )
@@ -6135,7 +6141,7 @@ module SfpLang
6135
6141
  alt_114 = 2
6136
6142
  look_114_0 = @input.peek( 1 )
6137
6143
 
6138
- if ( look_114_0 == T__55 || look_114_0.between?( T__76, T__79 ) )
6144
+ if ( look_114_0 == T__56 || look_114_0.between?( T__77, T__80 ) )
6139
6145
  alt_114 = 1
6140
6146
  end
6141
6147
  case alt_114
@@ -6145,9 +6151,9 @@ module SfpLang
6145
6151
  alt_113 = 2
6146
6152
  look_113_0 = @input.peek( 1 )
6147
6153
 
6148
- if ( look_113_0.between?( T__76, T__79 ) )
6154
+ if ( look_113_0.between?( T__77, T__80 ) )
6149
6155
  alt_113 = 1
6150
- elsif ( look_113_0 == T__55 )
6156
+ elsif ( look_113_0 == T__56 )
6151
6157
  alt_113 = 2
6152
6158
  else
6153
6159
  raise NoViableAlternative( "", 113, 0 )
@@ -6155,7 +6161,7 @@ module SfpLang
6155
6161
  case alt_113
6156
6162
  when 1
6157
6163
  # at line 554:7: binary_comp
6158
- @state.following.push( TOKENS_FOLLOWING_binary_comp_IN_constraint_class_quantification_1635 )
6164
+ @state.following.push( TOKENS_FOLLOWING_binary_comp_IN_constraint_class_quantification_1639 )
6159
6165
  binary_comp283 = binary_comp
6160
6166
  @state.following.pop
6161
6167
  @adaptor.add_child( root_0, binary_comp283.tree )
@@ -6165,7 +6171,7 @@ module SfpLang
6165
6171
 
6166
6172
  when 2
6167
6173
  # at line 556:6: '='
6168
- char_literal284 = match( T__55, TOKENS_FOLLOWING_T__55_IN_constraint_class_quantification_1648 )
6174
+ char_literal284 = match( T__56, TOKENS_FOLLOWING_T__56_IN_constraint_class_quantification_1652 )
6169
6175
 
6170
6176
  tree_for_char_literal284 = @adaptor.create_with_payload( char_literal284 )
6171
6177
  @adaptor.add_child( root_0, tree_for_char_literal284 )
@@ -6175,7 +6181,7 @@ module SfpLang
6175
6181
  # <-- action
6176
6182
 
6177
6183
  end
6178
- __NUMBER285__ = match( NUMBER, TOKENS_FOLLOWING_NUMBER_IN_constraint_class_quantification_1664 )
6184
+ __NUMBER285__ = match( NUMBER, TOKENS_FOLLOWING_NUMBER_IN_constraint_class_quantification_1668 )
6179
6185
 
6180
6186
  tree_for_NUMBER285 = @adaptor.create_with_payload( __NUMBER285__ )
6181
6187
  @adaptor.add_child( root_0, tree_for_NUMBER285 )
@@ -6197,7 +6203,7 @@ module SfpLang
6197
6203
  case alt_115
6198
6204
  when 1
6199
6205
  # at line 562:3: NL
6200
- __NL286__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_class_quantification_1678 )
6206
+ __NL286__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_class_quantification_1682 )
6201
6207
 
6202
6208
  tree_for_NL286 = @adaptor.create_with_payload( __NL286__ )
6203
6209
  @adaptor.add_child( root_0, tree_for_NL286 )
@@ -6207,7 +6213,7 @@ module SfpLang
6207
6213
  break # out of loop for decision 115
6208
6214
  end
6209
6215
  end # loop for decision 115
6210
- char_literal287 = match( T__20, TOKENS_FOLLOWING_T__20_IN_constraint_class_quantification_1681 )
6216
+ char_literal287 = match( T__20, TOKENS_FOLLOWING_T__20_IN_constraint_class_quantification_1685 )
6211
6217
 
6212
6218
  tree_for_char_literal287 = @adaptor.create_with_payload( char_literal287 )
6213
6219
  @adaptor.add_child( root_0, tree_for_char_literal287 )
@@ -6225,7 +6231,7 @@ module SfpLang
6225
6231
  case alt_116
6226
6232
  when 1
6227
6233
  # at line 562:11: NL
6228
- __NL288__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_class_quantification_1683 )
6234
+ __NL288__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_class_quantification_1687 )
6229
6235
 
6230
6236
  tree_for_NL288 = @adaptor.create_with_payload( __NL288__ )
6231
6237
  @adaptor.add_child( root_0, tree_for_NL288 )
@@ -6245,14 +6251,14 @@ module SfpLang
6245
6251
  while true # decision 120
6246
6252
  alt_120 = 4
6247
6253
  case look_120 = @input.peek( 1 )
6248
- when ID, T__28, T__57, T__63 then alt_120 = 1
6249
- when T__56 then alt_120 = 2
6250
- when T__50 then alt_120 = 3
6254
+ when ID, T__29, T__58, T__64 then alt_120 = 1
6255
+ when T__57 then alt_120 = 2
6256
+ when T__51 then alt_120 = 3
6251
6257
  end
6252
6258
  case alt_120
6253
6259
  when 1
6254
6260
  # at line 563:5: constraint_statement ( NL )+
6255
- @state.following.push( TOKENS_FOLLOWING_constraint_statement_IN_constraint_class_quantification_1690 )
6261
+ @state.following.push( TOKENS_FOLLOWING_constraint_statement_IN_constraint_class_quantification_1694 )
6256
6262
  constraint_statement289 = constraint_statement
6257
6263
  @state.following.pop
6258
6264
  @adaptor.add_child( root_0, constraint_statement289.tree )
@@ -6272,7 +6278,7 @@ module SfpLang
6272
6278
  case alt_117
6273
6279
  when 1
6274
6280
  # at line 565:4: NL
6275
- __NL290__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_class_quantification_1700 )
6281
+ __NL290__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_class_quantification_1704 )
6276
6282
 
6277
6283
  tree_for_NL290 = @adaptor.create_with_payload( __NL290__ )
6278
6284
  @adaptor.add_child( root_0, tree_for_NL290 )
@@ -6291,7 +6297,7 @@ module SfpLang
6291
6297
 
6292
6298
  when 2
6293
6299
  # at line 566:5: constraint_different ( NL )+
6294
- @state.following.push( TOKENS_FOLLOWING_constraint_different_IN_constraint_class_quantification_1707 )
6300
+ @state.following.push( TOKENS_FOLLOWING_constraint_different_IN_constraint_class_quantification_1711 )
6295
6301
  constraint_different291 = constraint_different
6296
6302
  @state.following.pop
6297
6303
  @adaptor.add_child( root_0, constraint_different291.tree )
@@ -6308,7 +6314,7 @@ module SfpLang
6308
6314
  case alt_118
6309
6315
  when 1
6310
6316
  # at line 566:26: NL
6311
- __NL292__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_class_quantification_1709 )
6317
+ __NL292__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_class_quantification_1713 )
6312
6318
 
6313
6319
  tree_for_NL292 = @adaptor.create_with_payload( __NL292__ )
6314
6320
  @adaptor.add_child( root_0, tree_for_NL292 )
@@ -6327,7 +6333,7 @@ module SfpLang
6327
6333
 
6328
6334
  when 3
6329
6335
  # at line 567:5: constraint_iterator ( NL )+
6330
- @state.following.push( TOKENS_FOLLOWING_constraint_iterator_IN_constraint_class_quantification_1716 )
6336
+ @state.following.push( TOKENS_FOLLOWING_constraint_iterator_IN_constraint_class_quantification_1720 )
6331
6337
  constraint_iterator293 = constraint_iterator
6332
6338
  @state.following.pop
6333
6339
  @adaptor.add_child( root_0, constraint_iterator293.tree )
@@ -6344,7 +6350,7 @@ module SfpLang
6344
6350
  case alt_119
6345
6351
  when 1
6346
6352
  # at line 567:25: NL
6347
- __NL294__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_class_quantification_1718 )
6353
+ __NL294__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_class_quantification_1722 )
6348
6354
 
6349
6355
  tree_for_NL294 = @adaptor.create_with_payload( __NL294__ )
6350
6356
  @adaptor.add_child( root_0, tree_for_NL294 )
@@ -6365,7 +6371,7 @@ module SfpLang
6365
6371
  break # out of loop for decision 120
6366
6372
  end
6367
6373
  end # loop for decision 120
6368
- char_literal295 = match( T__21, TOKENS_FOLLOWING_T__21_IN_constraint_class_quantification_1726 )
6374
+ char_literal295 = match( T__21, TOKENS_FOLLOWING_T__21_IN_constraint_class_quantification_1730 )
6369
6375
 
6370
6376
  tree_for_char_literal295 = @adaptor.create_with_payload( char_literal295 )
6371
6377
  @adaptor.add_child( root_0, tree_for_char_literal295 )
@@ -6428,21 +6434,21 @@ module SfpLang
6428
6434
 
6429
6435
 
6430
6436
  # at line 574:4: ':different' '(' path ')'
6431
- string_literal296 = match( T__56, TOKENS_FOLLOWING_T__56_IN_constraint_different_1745 )
6437
+ string_literal296 = match( T__57, TOKENS_FOLLOWING_T__57_IN_constraint_different_1749 )
6432
6438
 
6433
6439
  tree_for_string_literal296 = @adaptor.create_with_payload( string_literal296 )
6434
6440
  @adaptor.add_child( root_0, tree_for_string_literal296 )
6435
6441
 
6436
- char_literal297 = match( T__37, TOKENS_FOLLOWING_T__37_IN_constraint_different_1747 )
6442
+ char_literal297 = match( T__38, TOKENS_FOLLOWING_T__38_IN_constraint_different_1751 )
6437
6443
 
6438
6444
  tree_for_char_literal297 = @adaptor.create_with_payload( char_literal297 )
6439
6445
  @adaptor.add_child( root_0, tree_for_char_literal297 )
6440
6446
 
6441
- @state.following.push( TOKENS_FOLLOWING_path_IN_constraint_different_1749 )
6447
+ @state.following.push( TOKENS_FOLLOWING_path_IN_constraint_different_1753 )
6442
6448
  path298 = path
6443
6449
  @state.following.pop
6444
6450
  @adaptor.add_child( root_0, path298.tree )
6445
- char_literal299 = match( T__39, TOKENS_FOLLOWING_T__39_IN_constraint_different_1751 )
6451
+ char_literal299 = match( T__40, TOKENS_FOLLOWING_T__40_IN_constraint_different_1755 )
6446
6452
 
6447
6453
  tree_for_char_literal299 = @adaptor.create_with_payload( char_literal299 )
6448
6454
  @adaptor.add_child( root_0, tree_for_char_literal299 )
@@ -6547,7 +6553,7 @@ module SfpLang
6547
6553
 
6548
6554
 
6549
6555
  # at line 587:4: reference
6550
- @state.following.push( TOKENS_FOLLOWING_reference_IN_constraint_statement_1770 )
6556
+ @state.following.push( TOKENS_FOLLOWING_reference_IN_constraint_statement_1774 )
6551
6557
  reference300 = reference
6552
6558
  @state.following.pop
6553
6559
  @adaptor.add_child( root_0, reference300.tree )
@@ -6563,12 +6569,12 @@ module SfpLang
6563
6569
 
6564
6570
 
6565
6571
  # at line 592:4: 'not' reference
6566
- string_literal301 = match( T__57, TOKENS_FOLLOWING_T__57_IN_constraint_statement_1779 )
6572
+ string_literal301 = match( T__58, TOKENS_FOLLOWING_T__58_IN_constraint_statement_1783 )
6567
6573
 
6568
6574
  tree_for_string_literal301 = @adaptor.create_with_payload( string_literal301 )
6569
6575
  @adaptor.add_child( root_0, tree_for_string_literal301 )
6570
6576
 
6571
- @state.following.push( TOKENS_FOLLOWING_reference_IN_constraint_statement_1781 )
6577
+ @state.following.push( TOKENS_FOLLOWING_reference_IN_constraint_statement_1785 )
6572
6578
  reference302 = reference
6573
6579
  @state.following.pop
6574
6580
  @adaptor.add_child( root_0, reference302.tree )
@@ -6584,15 +6590,15 @@ module SfpLang
6584
6590
 
6585
6591
 
6586
6592
  # at line 597:4: reference equals_op value
6587
- @state.following.push( TOKENS_FOLLOWING_reference_IN_constraint_statement_1790 )
6593
+ @state.following.push( TOKENS_FOLLOWING_reference_IN_constraint_statement_1794 )
6588
6594
  reference303 = reference
6589
6595
  @state.following.pop
6590
6596
  @adaptor.add_child( root_0, reference303.tree )
6591
- @state.following.push( TOKENS_FOLLOWING_equals_op_IN_constraint_statement_1792 )
6597
+ @state.following.push( TOKENS_FOLLOWING_equals_op_IN_constraint_statement_1796 )
6592
6598
  equals_op304 = equals_op
6593
6599
  @state.following.pop
6594
6600
  @adaptor.add_child( root_0, equals_op304.tree )
6595
- @state.following.push( TOKENS_FOLLOWING_value_IN_constraint_statement_1794 )
6601
+ @state.following.push( TOKENS_FOLLOWING_value_IN_constraint_statement_1798 )
6596
6602
  value305 = value
6597
6603
  @state.following.pop
6598
6604
  @adaptor.add_child( root_0, value305.tree )
@@ -6608,15 +6614,15 @@ module SfpLang
6608
6614
 
6609
6615
 
6610
6616
  # at line 602:4: reference equals_op NULL
6611
- @state.following.push( TOKENS_FOLLOWING_reference_IN_constraint_statement_1803 )
6617
+ @state.following.push( TOKENS_FOLLOWING_reference_IN_constraint_statement_1807 )
6612
6618
  reference306 = reference
6613
6619
  @state.following.pop
6614
6620
  @adaptor.add_child( root_0, reference306.tree )
6615
- @state.following.push( TOKENS_FOLLOWING_equals_op_IN_constraint_statement_1805 )
6621
+ @state.following.push( TOKENS_FOLLOWING_equals_op_IN_constraint_statement_1809 )
6616
6622
  equals_op307 = equals_op
6617
6623
  @state.following.pop
6618
6624
  @adaptor.add_child( root_0, equals_op307.tree )
6619
- __NULL308__ = match( NULL, TOKENS_FOLLOWING_NULL_IN_constraint_statement_1807 )
6625
+ __NULL308__ = match( NULL, TOKENS_FOLLOWING_NULL_IN_constraint_statement_1811 )
6620
6626
 
6621
6627
  tree_for_NULL308 = @adaptor.create_with_payload( __NULL308__ )
6622
6628
  @adaptor.add_child( root_0, tree_for_NULL308 )
@@ -6633,15 +6639,15 @@ module SfpLang
6633
6639
 
6634
6640
 
6635
6641
  # at line 607:4: reference not_equals_op value
6636
- @state.following.push( TOKENS_FOLLOWING_reference_IN_constraint_statement_1816 )
6642
+ @state.following.push( TOKENS_FOLLOWING_reference_IN_constraint_statement_1820 )
6637
6643
  reference309 = reference
6638
6644
  @state.following.pop
6639
6645
  @adaptor.add_child( root_0, reference309.tree )
6640
- @state.following.push( TOKENS_FOLLOWING_not_equals_op_IN_constraint_statement_1818 )
6646
+ @state.following.push( TOKENS_FOLLOWING_not_equals_op_IN_constraint_statement_1822 )
6641
6647
  not_equals_op310 = not_equals_op
6642
6648
  @state.following.pop
6643
6649
  @adaptor.add_child( root_0, not_equals_op310.tree )
6644
- @state.following.push( TOKENS_FOLLOWING_value_IN_constraint_statement_1820 )
6650
+ @state.following.push( TOKENS_FOLLOWING_value_IN_constraint_statement_1824 )
6645
6651
  value311 = value
6646
6652
  @state.following.pop
6647
6653
  @adaptor.add_child( root_0, value311.tree )
@@ -6657,15 +6663,15 @@ module SfpLang
6657
6663
 
6658
6664
 
6659
6665
  # at line 612:4: reference not_equals_op NULL
6660
- @state.following.push( TOKENS_FOLLOWING_reference_IN_constraint_statement_1829 )
6666
+ @state.following.push( TOKENS_FOLLOWING_reference_IN_constraint_statement_1833 )
6661
6667
  reference312 = reference
6662
6668
  @state.following.pop
6663
6669
  @adaptor.add_child( root_0, reference312.tree )
6664
- @state.following.push( TOKENS_FOLLOWING_not_equals_op_IN_constraint_statement_1831 )
6670
+ @state.following.push( TOKENS_FOLLOWING_not_equals_op_IN_constraint_statement_1835 )
6665
6671
  not_equals_op313 = not_equals_op
6666
6672
  @state.following.pop
6667
6673
  @adaptor.add_child( root_0, not_equals_op313.tree )
6668
- __NULL314__ = match( NULL, TOKENS_FOLLOWING_NULL_IN_constraint_statement_1833 )
6674
+ __NULL314__ = match( NULL, TOKENS_FOLLOWING_NULL_IN_constraint_statement_1837 )
6669
6675
 
6670
6676
  tree_for_NULL314 = @adaptor.create_with_payload( __NULL314__ )
6671
6677
  @adaptor.add_child( root_0, tree_for_NULL314 )
@@ -6682,7 +6688,7 @@ module SfpLang
6682
6688
 
6683
6689
 
6684
6690
  # at line 617:4: conditional_constraint
6685
- @state.following.push( TOKENS_FOLLOWING_conditional_constraint_IN_constraint_statement_1842 )
6691
+ @state.following.push( TOKENS_FOLLOWING_conditional_constraint_IN_constraint_statement_1846 )
6686
6692
  conditional_constraint315 = conditional_constraint
6687
6693
  @state.following.pop
6688
6694
  @adaptor.add_child( root_0, conditional_constraint315.tree )
@@ -6698,7 +6704,7 @@ module SfpLang
6698
6704
 
6699
6705
 
6700
6706
  # at line 622:4: reference ( 'is' )? 'in' set_value
6701
- @state.following.push( TOKENS_FOLLOWING_reference_IN_constraint_statement_1851 )
6707
+ @state.following.push( TOKENS_FOLLOWING_reference_IN_constraint_statement_1855 )
6702
6708
  reference316 = reference
6703
6709
  @state.following.pop
6704
6710
  @adaptor.add_child( root_0, reference316.tree )
@@ -6706,25 +6712,25 @@ module SfpLang
6706
6712
  alt_121 = 2
6707
6713
  look_121_0 = @input.peek( 1 )
6708
6714
 
6709
- if ( look_121_0 == T__58 )
6715
+ if ( look_121_0 == T__59 )
6710
6716
  alt_121 = 1
6711
6717
  end
6712
6718
  case alt_121
6713
6719
  when 1
6714
6720
  # at line 622:14: 'is'
6715
- string_literal317 = match( T__58, TOKENS_FOLLOWING_T__58_IN_constraint_statement_1853 )
6721
+ string_literal317 = match( T__59, TOKENS_FOLLOWING_T__59_IN_constraint_statement_1857 )
6716
6722
 
6717
6723
  tree_for_string_literal317 = @adaptor.create_with_payload( string_literal317 )
6718
6724
  @adaptor.add_child( root_0, tree_for_string_literal317 )
6719
6725
 
6720
6726
 
6721
6727
  end
6722
- string_literal318 = match( T__59, TOKENS_FOLLOWING_T__59_IN_constraint_statement_1856 )
6728
+ string_literal318 = match( T__60, TOKENS_FOLLOWING_T__60_IN_constraint_statement_1860 )
6723
6729
 
6724
6730
  tree_for_string_literal318 = @adaptor.create_with_payload( string_literal318 )
6725
6731
  @adaptor.add_child( root_0, tree_for_string_literal318 )
6726
6732
 
6727
- @state.following.push( TOKENS_FOLLOWING_set_value_IN_constraint_statement_1858 )
6733
+ @state.following.push( TOKENS_FOLLOWING_set_value_IN_constraint_statement_1862 )
6728
6734
  set_value319 = set_value
6729
6735
  @state.following.pop
6730
6736
  @adaptor.add_child( root_0, set_value319.tree )
@@ -6747,12 +6753,12 @@ module SfpLang
6747
6753
 
6748
6754
 
6749
6755
  # at line 634:4: reference ( 'isnot' | 'isnt' | 'not' ) 'in' set_value
6750
- @state.following.push( TOKENS_FOLLOWING_reference_IN_constraint_statement_1867 )
6756
+ @state.following.push( TOKENS_FOLLOWING_reference_IN_constraint_statement_1871 )
6751
6757
  reference320 = reference
6752
6758
  @state.following.pop
6753
6759
  @adaptor.add_child( root_0, reference320.tree )
6754
6760
  set321 = @input.look
6755
- if @input.peek(1) == T__57 || @input.peek( 1 ).between?( T__60, T__61 )
6761
+ if @input.peek(1) == T__58 || @input.peek( 1 ).between?( T__61, T__62 )
6756
6762
  @input.consume
6757
6763
  @adaptor.add_child( root_0, @adaptor.create_with_payload( set321 ) )
6758
6764
  @state.error_recovery = false
@@ -6762,12 +6768,12 @@ module SfpLang
6762
6768
  end
6763
6769
 
6764
6770
 
6765
- string_literal322 = match( T__59, TOKENS_FOLLOWING_T__59_IN_constraint_statement_1877 )
6771
+ string_literal322 = match( T__60, TOKENS_FOLLOWING_T__60_IN_constraint_statement_1881 )
6766
6772
 
6767
6773
  tree_for_string_literal322 = @adaptor.create_with_payload( string_literal322 )
6768
6774
  @adaptor.add_child( root_0, tree_for_string_literal322 )
6769
6775
 
6770
- @state.following.push( TOKENS_FOLLOWING_set_value_IN_constraint_statement_1879 )
6776
+ @state.following.push( TOKENS_FOLLOWING_set_value_IN_constraint_statement_1883 )
6771
6777
  set_value323 = set_value
6772
6778
  @state.following.pop
6773
6779
  @adaptor.add_child( root_0, set_value323.tree )
@@ -6793,16 +6799,16 @@ module SfpLang
6793
6799
 
6794
6800
 
6795
6801
  # at line 649:4: reference 'has' value
6796
- @state.following.push( TOKENS_FOLLOWING_reference_IN_constraint_statement_1888 )
6802
+ @state.following.push( TOKENS_FOLLOWING_reference_IN_constraint_statement_1892 )
6797
6803
  reference324 = reference
6798
6804
  @state.following.pop
6799
6805
  @adaptor.add_child( root_0, reference324.tree )
6800
- string_literal325 = match( T__62, TOKENS_FOLLOWING_T__62_IN_constraint_statement_1890 )
6806
+ string_literal325 = match( T__63, TOKENS_FOLLOWING_T__63_IN_constraint_statement_1894 )
6801
6807
 
6802
6808
  tree_for_string_literal325 = @adaptor.create_with_payload( string_literal325 )
6803
6809
  @adaptor.add_child( root_0, tree_for_string_literal325 )
6804
6810
 
6805
- @state.following.push( TOKENS_FOLLOWING_value_IN_constraint_statement_1892 )
6811
+ @state.following.push( TOKENS_FOLLOWING_value_IN_constraint_statement_1896 )
6806
6812
  value326 = value
6807
6813
  @state.following.pop
6808
6814
  @adaptor.add_child( root_0, value326.tree )
@@ -6822,15 +6828,15 @@ module SfpLang
6822
6828
 
6823
6829
 
6824
6830
  # at line 658:4: reference binary_comp comp_value
6825
- @state.following.push( TOKENS_FOLLOWING_reference_IN_constraint_statement_1901 )
6831
+ @state.following.push( TOKENS_FOLLOWING_reference_IN_constraint_statement_1905 )
6826
6832
  reference327 = reference
6827
6833
  @state.following.pop
6828
6834
  @adaptor.add_child( root_0, reference327.tree )
6829
- @state.following.push( TOKENS_FOLLOWING_binary_comp_IN_constraint_statement_1903 )
6835
+ @state.following.push( TOKENS_FOLLOWING_binary_comp_IN_constraint_statement_1907 )
6830
6836
  binary_comp328 = binary_comp
6831
6837
  @state.following.pop
6832
6838
  @adaptor.add_child( root_0, binary_comp328.tree )
6833
- @state.following.push( TOKENS_FOLLOWING_comp_value_IN_constraint_statement_1905 )
6839
+ @state.following.push( TOKENS_FOLLOWING_comp_value_IN_constraint_statement_1909 )
6834
6840
  comp_value329 = comp_value
6835
6841
  @state.following.pop
6836
6842
  @adaptor.add_child( root_0, comp_value329.tree )
@@ -6846,7 +6852,7 @@ module SfpLang
6846
6852
 
6847
6853
 
6848
6854
  # at line 663:4: total_constraint
6849
- @state.following.push( TOKENS_FOLLOWING_total_constraint_IN_constraint_statement_1914 )
6855
+ @state.following.push( TOKENS_FOLLOWING_total_constraint_IN_constraint_statement_1918 )
6850
6856
  total_constraint330 = total_constraint
6851
6857
  @state.following.pop
6852
6858
  @adaptor.add_child( root_0, total_constraint330.tree )
@@ -6904,25 +6910,25 @@ module SfpLang
6904
6910
 
6905
6911
 
6906
6912
  # at line 667:4: 'total(' total_statement ')' binary_comp NUMBER
6907
- string_literal331 = match( T__63, TOKENS_FOLLOWING_T__63_IN_total_constraint_1925 )
6913
+ string_literal331 = match( T__64, TOKENS_FOLLOWING_T__64_IN_total_constraint_1929 )
6908
6914
 
6909
6915
  tree_for_string_literal331 = @adaptor.create_with_payload( string_literal331 )
6910
6916
  @adaptor.add_child( root_0, tree_for_string_literal331 )
6911
6917
 
6912
- @state.following.push( TOKENS_FOLLOWING_total_statement_IN_total_constraint_1927 )
6918
+ @state.following.push( TOKENS_FOLLOWING_total_statement_IN_total_constraint_1931 )
6913
6919
  total_statement332 = total_statement
6914
6920
  @state.following.pop
6915
6921
  @adaptor.add_child( root_0, total_statement332.tree )
6916
- char_literal333 = match( T__39, TOKENS_FOLLOWING_T__39_IN_total_constraint_1929 )
6922
+ char_literal333 = match( T__40, TOKENS_FOLLOWING_T__40_IN_total_constraint_1933 )
6917
6923
 
6918
6924
  tree_for_char_literal333 = @adaptor.create_with_payload( char_literal333 )
6919
6925
  @adaptor.add_child( root_0, tree_for_char_literal333 )
6920
6926
 
6921
- @state.following.push( TOKENS_FOLLOWING_binary_comp_IN_total_constraint_1931 )
6927
+ @state.following.push( TOKENS_FOLLOWING_binary_comp_IN_total_constraint_1935 )
6922
6928
  binary_comp334 = binary_comp
6923
6929
  @state.following.pop
6924
6930
  @adaptor.add_child( root_0, binary_comp334.tree )
6925
- __NUMBER335__ = match( NUMBER, TOKENS_FOLLOWING_NUMBER_IN_total_constraint_1933 )
6931
+ __NUMBER335__ = match( NUMBER, TOKENS_FOLLOWING_NUMBER_IN_total_constraint_1937 )
6926
6932
 
6927
6933
  tree_for_NUMBER335 = @adaptor.create_with_payload( __NUMBER335__ )
6928
6934
  @adaptor.add_child( root_0, tree_for_NUMBER335 )
@@ -6975,15 +6981,15 @@ module SfpLang
6975
6981
 
6976
6982
 
6977
6983
  # at line 671:4: reference equals_op value
6978
- @state.following.push( TOKENS_FOLLOWING_reference_IN_total_statement_1944 )
6984
+ @state.following.push( TOKENS_FOLLOWING_reference_IN_total_statement_1948 )
6979
6985
  reference336 = reference
6980
6986
  @state.following.pop
6981
6987
  @adaptor.add_child( root_0, reference336.tree )
6982
- @state.following.push( TOKENS_FOLLOWING_equals_op_IN_total_statement_1946 )
6988
+ @state.following.push( TOKENS_FOLLOWING_equals_op_IN_total_statement_1950 )
6983
6989
  equals_op337 = equals_op
6984
6990
  @state.following.pop
6985
6991
  @adaptor.add_child( root_0, equals_op337.tree )
6986
- @state.following.push( TOKENS_FOLLOWING_value_IN_total_statement_1948 )
6992
+ @state.following.push( TOKENS_FOLLOWING_value_IN_total_statement_1952 )
6987
6993
  value338 = value
6988
6994
  @state.following.pop
6989
6995
  @adaptor.add_child( root_0, value338.tree )
@@ -7048,7 +7054,7 @@ module SfpLang
7048
7054
 
7049
7055
 
7050
7056
  # at line 675:4: NUMBER
7051
- __NUMBER339__ = match( NUMBER, TOKENS_FOLLOWING_NUMBER_IN_comp_value_1963 )
7057
+ __NUMBER339__ = match( NUMBER, TOKENS_FOLLOWING_NUMBER_IN_comp_value_1967 )
7052
7058
 
7053
7059
  tree_for_NUMBER339 = @adaptor.create_with_payload( __NUMBER339__ )
7054
7060
  @adaptor.add_child( root_0, tree_for_NUMBER339 )
@@ -7062,7 +7068,7 @@ module SfpLang
7062
7068
 
7063
7069
 
7064
7070
  # at line 677:4: reference
7065
- @state.following.push( TOKENS_FOLLOWING_reference_IN_comp_value_1972 )
7071
+ @state.following.push( TOKENS_FOLLOWING_reference_IN_comp_value_1976 )
7066
7072
  reference340 = reference
7067
7073
  @state.following.pop
7068
7074
  @adaptor.add_child( root_0, reference340.tree )
@@ -7119,7 +7125,7 @@ module SfpLang
7119
7125
 
7120
7126
 
7121
7127
  # at line 682:4: 'if' conditional_constraint_if_part conditional_constraint_then_part
7122
- string_literal341 = match( T__28, TOKENS_FOLLOWING_T__28_IN_conditional_constraint_1991 )
7128
+ string_literal341 = match( T__29, TOKENS_FOLLOWING_T__29_IN_conditional_constraint_1995 )
7123
7129
 
7124
7130
  tree_for_string_literal341 = @adaptor.create_with_payload( string_literal341 )
7125
7131
  @adaptor.add_child( root_0, tree_for_string_literal341 )
@@ -7134,11 +7140,11 @@ module SfpLang
7134
7140
  @now = @now[id]
7135
7141
 
7136
7142
  # <-- action
7137
- @state.following.push( TOKENS_FOLLOWING_conditional_constraint_if_part_IN_conditional_constraint_1999 )
7143
+ @state.following.push( TOKENS_FOLLOWING_conditional_constraint_if_part_IN_conditional_constraint_2003 )
7138
7144
  conditional_constraint_if_part342 = conditional_constraint_if_part
7139
7145
  @state.following.pop
7140
7146
  @adaptor.add_child( root_0, conditional_constraint_if_part342.tree )
7141
- @state.following.push( TOKENS_FOLLOWING_conditional_constraint_then_part_IN_conditional_constraint_2003 )
7147
+ @state.following.push( TOKENS_FOLLOWING_conditional_constraint_then_part_IN_conditional_constraint_2007 )
7142
7148
  conditional_constraint_then_part343 = conditional_constraint_then_part
7143
7149
  @state.following.pop
7144
7150
  @adaptor.add_child( root_0, conditional_constraint_then_part343.tree )
@@ -7202,7 +7208,7 @@ module SfpLang
7202
7208
  alt_127 = 2
7203
7209
  look_127_0 = @input.peek( 1 )
7204
7210
 
7205
- if ( look_127_0 == ID || look_127_0 == T__28 || look_127_0 == T__57 || look_127_0 == T__63 )
7211
+ if ( look_127_0 == ID || look_127_0 == T__29 || look_127_0 == T__58 || look_127_0 == T__64 )
7206
7212
  alt_127 = 1
7207
7213
  elsif ( look_127_0 == T__20 )
7208
7214
  alt_127 = 2
@@ -7215,7 +7221,7 @@ module SfpLang
7215
7221
 
7216
7222
 
7217
7223
  # at line 697:4: constraint_statement ( NL )*
7218
- @state.following.push( TOKENS_FOLLOWING_constraint_statement_IN_conditional_constraint_if_part_2018 )
7224
+ @state.following.push( TOKENS_FOLLOWING_constraint_statement_IN_conditional_constraint_if_part_2022 )
7219
7225
  constraint_statement344 = constraint_statement
7220
7226
  @state.following.pop
7221
7227
  @adaptor.add_child( root_0, constraint_statement344.tree )
@@ -7231,7 +7237,7 @@ module SfpLang
7231
7237
  case alt_124
7232
7238
  when 1
7233
7239
  # at line 697:25: NL
7234
- __NL345__ = match( NL, TOKENS_FOLLOWING_NL_IN_conditional_constraint_if_part_2020 )
7240
+ __NL345__ = match( NL, TOKENS_FOLLOWING_NL_IN_conditional_constraint_if_part_2024 )
7235
7241
 
7236
7242
  tree_for_NL345 = @adaptor.create_with_payload( __NL345__ )
7237
7243
  @adaptor.add_child( root_0, tree_for_NL345 )
@@ -7257,7 +7263,7 @@ module SfpLang
7257
7263
 
7258
7264
 
7259
7265
  # at line 706:4: '{' ( NL )+ constraint_body '}' ( NL )*
7260
- char_literal346 = match( T__20, TOKENS_FOLLOWING_T__20_IN_conditional_constraint_if_part_2030 )
7266
+ char_literal346 = match( T__20, TOKENS_FOLLOWING_T__20_IN_conditional_constraint_if_part_2034 )
7261
7267
 
7262
7268
  tree_for_char_literal346 = @adaptor.create_with_payload( char_literal346 )
7263
7269
  @adaptor.add_child( root_0, tree_for_char_literal346 )
@@ -7282,7 +7288,7 @@ module SfpLang
7282
7288
  case alt_125
7283
7289
  when 1
7284
7290
  # at line 712:3: NL
7285
- __NL347__ = match( NL, TOKENS_FOLLOWING_NL_IN_conditional_constraint_if_part_2038 )
7291
+ __NL347__ = match( NL, TOKENS_FOLLOWING_NL_IN_conditional_constraint_if_part_2042 )
7286
7292
 
7287
7293
  tree_for_NL347 = @adaptor.create_with_payload( __NL347__ )
7288
7294
  @adaptor.add_child( root_0, tree_for_NL347 )
@@ -7298,11 +7304,11 @@ module SfpLang
7298
7304
  match_count_125 += 1
7299
7305
  end
7300
7306
 
7301
- @state.following.push( TOKENS_FOLLOWING_constraint_body_IN_conditional_constraint_if_part_2041 )
7307
+ @state.following.push( TOKENS_FOLLOWING_constraint_body_IN_conditional_constraint_if_part_2045 )
7302
7308
  constraint_body348 = constraint_body
7303
7309
  @state.following.pop
7304
7310
  @adaptor.add_child( root_0, constraint_body348.tree )
7305
- char_literal349 = match( T__21, TOKENS_FOLLOWING_T__21_IN_conditional_constraint_if_part_2045 )
7311
+ char_literal349 = match( T__21, TOKENS_FOLLOWING_T__21_IN_conditional_constraint_if_part_2049 )
7306
7312
 
7307
7313
  tree_for_char_literal349 = @adaptor.create_with_payload( char_literal349 )
7308
7314
  @adaptor.add_child( root_0, tree_for_char_literal349 )
@@ -7319,7 +7325,7 @@ module SfpLang
7319
7325
  case alt_126
7320
7326
  when 1
7321
7327
  # at line 713:7: NL
7322
- __NL350__ = match( NL, TOKENS_FOLLOWING_NL_IN_conditional_constraint_if_part_2047 )
7328
+ __NL350__ = match( NL, TOKENS_FOLLOWING_NL_IN_conditional_constraint_if_part_2051 )
7323
7329
 
7324
7330
  tree_for_NL350 = @adaptor.create_with_payload( __NL350__ )
7325
7331
  @adaptor.add_child( root_0, tree_for_NL350 )
@@ -7390,10 +7396,10 @@ module SfpLang
7390
7396
  alt_129 = 2
7391
7397
  look_129_0 = @input.peek( 1 )
7392
7398
 
7393
- if ( look_129_0 == T__29 )
7399
+ if ( look_129_0 == T__30 )
7394
7400
  look_129_1 = @input.peek( 2 )
7395
7401
 
7396
- if ( look_129_1 == ID || look_129_1 == T__28 || look_129_1 == T__57 || look_129_1 == T__63 )
7402
+ if ( look_129_1 == ID || look_129_1 == T__29 || look_129_1 == T__58 || look_129_1 == T__64 )
7397
7403
  alt_129 = 1
7398
7404
  elsif ( look_129_1 == T__20 )
7399
7405
  alt_129 = 2
@@ -7409,12 +7415,12 @@ module SfpLang
7409
7415
 
7410
7416
 
7411
7417
  # at line 718:4: 'then' constraint_statement
7412
- string_literal351 = match( T__29, TOKENS_FOLLOWING_T__29_IN_conditional_constraint_then_part_2063 )
7418
+ string_literal351 = match( T__30, TOKENS_FOLLOWING_T__30_IN_conditional_constraint_then_part_2067 )
7413
7419
 
7414
7420
  tree_for_string_literal351 = @adaptor.create_with_payload( string_literal351 )
7415
7421
  @adaptor.add_child( root_0, tree_for_string_literal351 )
7416
7422
 
7417
- @state.following.push( TOKENS_FOLLOWING_constraint_statement_IN_conditional_constraint_then_part_2065 )
7423
+ @state.following.push( TOKENS_FOLLOWING_constraint_statement_IN_conditional_constraint_then_part_2069 )
7418
7424
  constraint_statement352 = constraint_statement
7419
7425
  @state.following.pop
7420
7426
  @adaptor.add_child( root_0, constraint_statement352.tree )
@@ -7434,7 +7440,7 @@ module SfpLang
7434
7440
 
7435
7441
 
7436
7442
  # at line 727:4: 'then' '{' ( NL )+ constraint_body '}'
7437
- string_literal353 = match( T__29, TOKENS_FOLLOWING_T__29_IN_conditional_constraint_then_part_2074 )
7443
+ string_literal353 = match( T__30, TOKENS_FOLLOWING_T__30_IN_conditional_constraint_then_part_2078 )
7438
7444
 
7439
7445
  tree_for_string_literal353 = @adaptor.create_with_payload( string_literal353 )
7440
7446
  @adaptor.add_child( root_0, tree_for_string_literal353 )
@@ -7449,7 +7455,7 @@ module SfpLang
7449
7455
  @now = @now[id]
7450
7456
 
7451
7457
  # <-- action
7452
- char_literal354 = match( T__20, TOKENS_FOLLOWING_T__20_IN_conditional_constraint_then_part_2082 )
7458
+ char_literal354 = match( T__20, TOKENS_FOLLOWING_T__20_IN_conditional_constraint_then_part_2086 )
7453
7459
 
7454
7460
  tree_for_char_literal354 = @adaptor.create_with_payload( char_literal354 )
7455
7461
  @adaptor.add_child( root_0, tree_for_char_literal354 )
@@ -7467,7 +7473,7 @@ module SfpLang
7467
7473
  case alt_128
7468
7474
  when 1
7469
7475
  # at line 736:7: NL
7470
- __NL355__ = match( NL, TOKENS_FOLLOWING_NL_IN_conditional_constraint_then_part_2084 )
7476
+ __NL355__ = match( NL, TOKENS_FOLLOWING_NL_IN_conditional_constraint_then_part_2088 )
7471
7477
 
7472
7478
  tree_for_NL355 = @adaptor.create_with_payload( __NL355__ )
7473
7479
  @adaptor.add_child( root_0, tree_for_NL355 )
@@ -7483,11 +7489,11 @@ module SfpLang
7483
7489
  match_count_128 += 1
7484
7490
  end
7485
7491
 
7486
- @state.following.push( TOKENS_FOLLOWING_constraint_body_IN_conditional_constraint_then_part_2087 )
7492
+ @state.following.push( TOKENS_FOLLOWING_constraint_body_IN_conditional_constraint_then_part_2091 )
7487
7493
  constraint_body356 = constraint_body
7488
7494
  @state.following.pop
7489
7495
  @adaptor.add_child( root_0, constraint_body356.tree )
7490
- char_literal357 = match( T__21, TOKENS_FOLLOWING_T__21_IN_conditional_constraint_then_part_2089 )
7496
+ char_literal357 = match( T__21, TOKENS_FOLLOWING_T__21_IN_conditional_constraint_then_part_2093 )
7491
7497
 
7492
7498
  tree_for_char_literal357 = @adaptor.create_with_payload( char_literal357 )
7493
7499
  @adaptor.add_child( root_0, tree_for_char_literal357 )
@@ -7550,7 +7556,7 @@ module SfpLang
7550
7556
  alt_132 = 2
7551
7557
  look_132_0 = @input.peek( 1 )
7552
7558
 
7553
- if ( look_132_0 == ID || look_132_0 == T__50 || look_132_0 == T__65 )
7559
+ if ( look_132_0 == ID || look_132_0 == T__51 || look_132_0 == T__66 )
7554
7560
  alt_132 = 1
7555
7561
 
7556
7562
  end
@@ -7561,9 +7567,9 @@ module SfpLang
7561
7567
  alt_130 = 2
7562
7568
  look_130_0 = @input.peek( 1 )
7563
7569
 
7564
- if ( look_130_0 == ID || look_130_0 == T__65 )
7570
+ if ( look_130_0 == ID || look_130_0 == T__66 )
7565
7571
  alt_130 = 1
7566
- elsif ( look_130_0 == T__50 )
7572
+ elsif ( look_130_0 == T__51 )
7567
7573
  alt_130 = 2
7568
7574
  else
7569
7575
  raise NoViableAlternative( "", 130, 0 )
@@ -7571,7 +7577,7 @@ module SfpLang
7571
7577
  case alt_130
7572
7578
  when 1
7573
7579
  # at line 742:6: mutation
7574
- @state.following.push( TOKENS_FOLLOWING_mutation_IN_effect_body_2111 )
7580
+ @state.following.push( TOKENS_FOLLOWING_mutation_IN_effect_body_2115 )
7575
7581
  mutation358 = mutation
7576
7582
  @state.following.pop
7577
7583
  @adaptor.add_child( root_0, mutation358.tree )
@@ -7581,7 +7587,7 @@ module SfpLang
7581
7587
 
7582
7588
  when 2
7583
7589
  # at line 744:6: mutation_iterator
7584
- @state.following.push( TOKENS_FOLLOWING_mutation_iterator_IN_effect_body_2124 )
7590
+ @state.following.push( TOKENS_FOLLOWING_mutation_iterator_IN_effect_body_2128 )
7585
7591
  mutation_iterator359 = mutation_iterator
7586
7592
  @state.following.pop
7587
7593
  @adaptor.add_child( root_0, mutation_iterator359.tree )
@@ -7600,7 +7606,7 @@ module SfpLang
7600
7606
  case alt_131
7601
7607
  when 1
7602
7608
  # at line 746:3: NL
7603
- __NL360__ = match( NL, TOKENS_FOLLOWING_NL_IN_effect_body_2133 )
7609
+ __NL360__ = match( NL, TOKENS_FOLLOWING_NL_IN_effect_body_2137 )
7604
7610
 
7605
7611
  tree_for_NL360 = @adaptor.create_with_payload( __NL360__ )
7606
7612
  @adaptor.add_child( root_0, tree_for_NL360 )
@@ -7684,21 +7690,21 @@ module SfpLang
7684
7690
 
7685
7691
 
7686
7692
  # at line 750:4: 'foreach' path 'as' ID ( NL )* '{' ( NL )+ ( mutation ( NL )+ )* '}'
7687
- string_literal361 = match( T__50, TOKENS_FOLLOWING_T__50_IN_mutation_iterator_2148 )
7693
+ string_literal361 = match( T__51, TOKENS_FOLLOWING_T__51_IN_mutation_iterator_2152 )
7688
7694
 
7689
7695
  tree_for_string_literal361 = @adaptor.create_with_payload( string_literal361 )
7690
7696
  @adaptor.add_child( root_0, tree_for_string_literal361 )
7691
7697
 
7692
- @state.following.push( TOKENS_FOLLOWING_path_IN_mutation_iterator_2150 )
7698
+ @state.following.push( TOKENS_FOLLOWING_path_IN_mutation_iterator_2154 )
7693
7699
  path362 = path
7694
7700
  @state.following.pop
7695
7701
  @adaptor.add_child( root_0, path362.tree )
7696
- string_literal363 = match( T__51, TOKENS_FOLLOWING_T__51_IN_mutation_iterator_2152 )
7702
+ string_literal363 = match( T__52, TOKENS_FOLLOWING_T__52_IN_mutation_iterator_2156 )
7697
7703
 
7698
7704
  tree_for_string_literal363 = @adaptor.create_with_payload( string_literal363 )
7699
7705
  @adaptor.add_child( root_0, tree_for_string_literal363 )
7700
7706
 
7701
- __ID364__ = match( ID, TOKENS_FOLLOWING_ID_IN_mutation_iterator_2154 )
7707
+ __ID364__ = match( ID, TOKENS_FOLLOWING_ID_IN_mutation_iterator_2158 )
7702
7708
 
7703
7709
  tree_for_ID364 = @adaptor.create_with_payload( __ID364__ )
7704
7710
  @adaptor.add_child( root_0, tree_for_ID364 )
@@ -7715,7 +7721,7 @@ module SfpLang
7715
7721
  case alt_133
7716
7722
  when 1
7717
7723
  # at line 750:27: NL
7718
- __NL365__ = match( NL, TOKENS_FOLLOWING_NL_IN_mutation_iterator_2156 )
7724
+ __NL365__ = match( NL, TOKENS_FOLLOWING_NL_IN_mutation_iterator_2160 )
7719
7725
 
7720
7726
  tree_for_NL365 = @adaptor.create_with_payload( __NL365__ )
7721
7727
  @adaptor.add_child( root_0, tree_for_NL365 )
@@ -7725,7 +7731,7 @@ module SfpLang
7725
7731
  break # out of loop for decision 133
7726
7732
  end
7727
7733
  end # loop for decision 133
7728
- char_literal366 = match( T__20, TOKENS_FOLLOWING_T__20_IN_mutation_iterator_2159 )
7734
+ char_literal366 = match( T__20, TOKENS_FOLLOWING_T__20_IN_mutation_iterator_2163 )
7729
7735
 
7730
7736
  tree_for_char_literal366 = @adaptor.create_with_payload( char_literal366 )
7731
7737
  @adaptor.add_child( root_0, tree_for_char_literal366 )
@@ -7743,7 +7749,7 @@ module SfpLang
7743
7749
  case alt_134
7744
7750
  when 1
7745
7751
  # at line 750:35: NL
7746
- __NL367__ = match( NL, TOKENS_FOLLOWING_NL_IN_mutation_iterator_2161 )
7752
+ __NL367__ = match( NL, TOKENS_FOLLOWING_NL_IN_mutation_iterator_2165 )
7747
7753
 
7748
7754
  tree_for_NL367 = @adaptor.create_with_payload( __NL367__ )
7749
7755
  @adaptor.add_child( root_0, tree_for_NL367 )
@@ -7775,14 +7781,14 @@ module SfpLang
7775
7781
  alt_136 = 2
7776
7782
  look_136_0 = @input.peek( 1 )
7777
7783
 
7778
- if ( look_136_0 == ID || look_136_0 == T__65 )
7784
+ if ( look_136_0 == ID || look_136_0 == T__66 )
7779
7785
  alt_136 = 1
7780
7786
 
7781
7787
  end
7782
7788
  case alt_136
7783
7789
  when 1
7784
7790
  # at line 760:4: mutation ( NL )+
7785
- @state.following.push( TOKENS_FOLLOWING_mutation_IN_mutation_iterator_2171 )
7791
+ @state.following.push( TOKENS_FOLLOWING_mutation_IN_mutation_iterator_2175 )
7786
7792
  mutation368 = mutation
7787
7793
  @state.following.pop
7788
7794
  @adaptor.add_child( root_0, mutation368.tree )
@@ -7802,7 +7808,7 @@ module SfpLang
7802
7808
  case alt_135
7803
7809
  when 1
7804
7810
  # at line 762:3: NL
7805
- __NL369__ = match( NL, TOKENS_FOLLOWING_NL_IN_mutation_iterator_2179 )
7811
+ __NL369__ = match( NL, TOKENS_FOLLOWING_NL_IN_mutation_iterator_2183 )
7806
7812
 
7807
7813
  tree_for_NL369 = @adaptor.create_with_payload( __NL369__ )
7808
7814
  @adaptor.add_child( root_0, tree_for_NL369 )
@@ -7823,7 +7829,7 @@ module SfpLang
7823
7829
  break # out of loop for decision 136
7824
7830
  end
7825
7831
  end # loop for decision 136
7826
- char_literal370 = match( T__21, TOKENS_FOLLOWING_T__21_IN_mutation_iterator_2186 )
7832
+ char_literal370 = match( T__21, TOKENS_FOLLOWING_T__21_IN_mutation_iterator_2190 )
7827
7833
 
7828
7834
  tree_for_char_literal370 = @adaptor.create_with_payload( char_literal370 )
7829
7835
  @adaptor.add_child( root_0, tree_for_char_literal370 )
@@ -7914,15 +7920,15 @@ module SfpLang
7914
7920
 
7915
7921
 
7916
7922
  # at line 768:4: reference equals_op value
7917
- @state.following.push( TOKENS_FOLLOWING_reference_IN_mutation_2205 )
7923
+ @state.following.push( TOKENS_FOLLOWING_reference_IN_mutation_2209 )
7918
7924
  reference371 = reference
7919
7925
  @state.following.pop
7920
7926
  @adaptor.add_child( root_0, reference371.tree )
7921
- @state.following.push( TOKENS_FOLLOWING_equals_op_IN_mutation_2207 )
7927
+ @state.following.push( TOKENS_FOLLOWING_equals_op_IN_mutation_2211 )
7922
7928
  equals_op372 = equals_op
7923
7929
  @state.following.pop
7924
7930
  @adaptor.add_child( root_0, equals_op372.tree )
7925
- @state.following.push( TOKENS_FOLLOWING_value_IN_mutation_2209 )
7931
+ @state.following.push( TOKENS_FOLLOWING_value_IN_mutation_2213 )
7926
7932
  value373 = value
7927
7933
  @state.following.pop
7928
7934
  @adaptor.add_child( root_0, value373.tree )
@@ -7941,15 +7947,15 @@ module SfpLang
7941
7947
 
7942
7948
 
7943
7949
  # at line 776:4: reference equals_op NULL
7944
- @state.following.push( TOKENS_FOLLOWING_reference_IN_mutation_2218 )
7950
+ @state.following.push( TOKENS_FOLLOWING_reference_IN_mutation_2222 )
7945
7951
  reference374 = reference
7946
7952
  @state.following.pop
7947
7953
  @adaptor.add_child( root_0, reference374.tree )
7948
- @state.following.push( TOKENS_FOLLOWING_equals_op_IN_mutation_2220 )
7954
+ @state.following.push( TOKENS_FOLLOWING_equals_op_IN_mutation_2224 )
7949
7955
  equals_op375 = equals_op
7950
7956
  @state.following.pop
7951
7957
  @adaptor.add_child( root_0, equals_op375.tree )
7952
- __NULL376__ = match( NULL, TOKENS_FOLLOWING_NULL_IN_mutation_2222 )
7958
+ __NULL376__ = match( NULL, TOKENS_FOLLOWING_NULL_IN_mutation_2226 )
7953
7959
 
7954
7960
  tree_for_NULL376 = @adaptor.create_with_payload( __NULL376__ )
7955
7961
  @adaptor.add_child( root_0, tree_for_NULL376 )
@@ -7969,15 +7975,15 @@ module SfpLang
7969
7975
 
7970
7976
 
7971
7977
  # at line 784:4: reference binary_op NUMBER
7972
- @state.following.push( TOKENS_FOLLOWING_reference_IN_mutation_2231 )
7978
+ @state.following.push( TOKENS_FOLLOWING_reference_IN_mutation_2235 )
7973
7979
  reference377 = reference
7974
7980
  @state.following.pop
7975
7981
  @adaptor.add_child( root_0, reference377.tree )
7976
- @state.following.push( TOKENS_FOLLOWING_binary_op_IN_mutation_2233 )
7982
+ @state.following.push( TOKENS_FOLLOWING_binary_op_IN_mutation_2237 )
7977
7983
  binary_op378 = binary_op
7978
7984
  @state.following.pop
7979
7985
  @adaptor.add_child( root_0, binary_op378.tree )
7980
- __NUMBER379__ = match( NUMBER, TOKENS_FOLLOWING_NUMBER_IN_mutation_2235 )
7986
+ __NUMBER379__ = match( NUMBER, TOKENS_FOLLOWING_NUMBER_IN_mutation_2239 )
7981
7987
 
7982
7988
  tree_for_NUMBER379 = @adaptor.create_with_payload( __NUMBER379__ )
7983
7989
  @adaptor.add_child( root_0, tree_for_NUMBER379 )
@@ -7997,21 +8003,21 @@ module SfpLang
7997
8003
 
7998
8004
 
7999
8005
  # at line 792:4: reference 'is' 'new' path ( object_body )?
8000
- @state.following.push( TOKENS_FOLLOWING_reference_IN_mutation_2244 )
8006
+ @state.following.push( TOKENS_FOLLOWING_reference_IN_mutation_2248 )
8001
8007
  reference380 = reference
8002
8008
  @state.following.pop
8003
8009
  @adaptor.add_child( root_0, reference380.tree )
8004
- string_literal381 = match( T__58, TOKENS_FOLLOWING_T__58_IN_mutation_2246 )
8010
+ string_literal381 = match( T__59, TOKENS_FOLLOWING_T__59_IN_mutation_2250 )
8005
8011
 
8006
8012
  tree_for_string_literal381 = @adaptor.create_with_payload( string_literal381 )
8007
8013
  @adaptor.add_child( root_0, tree_for_string_literal381 )
8008
8014
 
8009
- string_literal382 = match( T__64, TOKENS_FOLLOWING_T__64_IN_mutation_2248 )
8015
+ string_literal382 = match( T__65, TOKENS_FOLLOWING_T__65_IN_mutation_2252 )
8010
8016
 
8011
8017
  tree_for_string_literal382 = @adaptor.create_with_payload( string_literal382 )
8012
8018
  @adaptor.add_child( root_0, tree_for_string_literal382 )
8013
8019
 
8014
- @state.following.push( TOKENS_FOLLOWING_path_IN_mutation_2250 )
8020
+ @state.following.push( TOKENS_FOLLOWING_path_IN_mutation_2254 )
8015
8021
  path383 = path
8016
8022
  @state.following.pop
8017
8023
  @adaptor.add_child( root_0, path383.tree )
@@ -8036,7 +8042,7 @@ module SfpLang
8036
8042
  case alt_137
8037
8043
  when 1
8038
8044
  # at line 802:3: object_body
8039
- @state.following.push( TOKENS_FOLLOWING_object_body_IN_mutation_2258 )
8045
+ @state.following.push( TOKENS_FOLLOWING_object_body_IN_mutation_2262 )
8040
8046
  object_body384 = object_body
8041
8047
  @state.following.pop
8042
8048
  @adaptor.add_child( root_0, object_body384.tree )
@@ -8056,12 +8062,12 @@ module SfpLang
8056
8062
 
8057
8063
 
8058
8064
  # at line 809:4: 'delete' path
8059
- string_literal385 = match( T__65, TOKENS_FOLLOWING_T__65_IN_mutation_2268 )
8065
+ string_literal385 = match( T__66, TOKENS_FOLLOWING_T__66_IN_mutation_2272 )
8060
8066
 
8061
8067
  tree_for_string_literal385 = @adaptor.create_with_payload( string_literal385 )
8062
8068
  @adaptor.add_child( root_0, tree_for_string_literal385 )
8063
8069
 
8064
- @state.following.push( TOKENS_FOLLOWING_path_IN_mutation_2270 )
8070
+ @state.following.push( TOKENS_FOLLOWING_path_IN_mutation_2274 )
8065
8071
  path386 = path
8066
8072
  @state.following.pop
8067
8073
  @adaptor.add_child( root_0, path386.tree )
@@ -8081,20 +8087,20 @@ module SfpLang
8081
8087
 
8082
8088
 
8083
8089
  # at line 818:4: reference 'add(' value ')'
8084
- @state.following.push( TOKENS_FOLLOWING_reference_IN_mutation_2279 )
8090
+ @state.following.push( TOKENS_FOLLOWING_reference_IN_mutation_2283 )
8085
8091
  reference387 = reference
8086
8092
  @state.following.pop
8087
8093
  @adaptor.add_child( root_0, reference387.tree )
8088
- string_literal388 = match( T__66, TOKENS_FOLLOWING_T__66_IN_mutation_2281 )
8094
+ string_literal388 = match( T__67, TOKENS_FOLLOWING_T__67_IN_mutation_2285 )
8089
8095
 
8090
8096
  tree_for_string_literal388 = @adaptor.create_with_payload( string_literal388 )
8091
8097
  @adaptor.add_child( root_0, tree_for_string_literal388 )
8092
8098
 
8093
- @state.following.push( TOKENS_FOLLOWING_value_IN_mutation_2283 )
8099
+ @state.following.push( TOKENS_FOLLOWING_value_IN_mutation_2287 )
8094
8100
  value389 = value
8095
8101
  @state.following.pop
8096
8102
  @adaptor.add_child( root_0, value389.tree )
8097
- char_literal390 = match( T__39, TOKENS_FOLLOWING_T__39_IN_mutation_2285 )
8103
+ char_literal390 = match( T__40, TOKENS_FOLLOWING_T__40_IN_mutation_2289 )
8098
8104
 
8099
8105
  tree_for_char_literal390 = @adaptor.create_with_payload( char_literal390 )
8100
8106
  @adaptor.add_child( root_0, tree_for_char_literal390 )
@@ -8114,20 +8120,20 @@ module SfpLang
8114
8120
 
8115
8121
 
8116
8122
  # at line 826:4: reference 'remove(' value ')'
8117
- @state.following.push( TOKENS_FOLLOWING_reference_IN_mutation_2294 )
8123
+ @state.following.push( TOKENS_FOLLOWING_reference_IN_mutation_2298 )
8118
8124
  reference391 = reference
8119
8125
  @state.following.pop
8120
8126
  @adaptor.add_child( root_0, reference391.tree )
8121
- string_literal392 = match( T__67, TOKENS_FOLLOWING_T__67_IN_mutation_2296 )
8127
+ string_literal392 = match( T__68, TOKENS_FOLLOWING_T__68_IN_mutation_2300 )
8122
8128
 
8123
8129
  tree_for_string_literal392 = @adaptor.create_with_payload( string_literal392 )
8124
8130
  @adaptor.add_child( root_0, tree_for_string_literal392 )
8125
8131
 
8126
- @state.following.push( TOKENS_FOLLOWING_value_IN_mutation_2298 )
8132
+ @state.following.push( TOKENS_FOLLOWING_value_IN_mutation_2302 )
8127
8133
  value393 = value
8128
8134
  @state.following.pop
8129
8135
  @adaptor.add_child( root_0, value393.tree )
8130
- char_literal394 = match( T__39, TOKENS_FOLLOWING_T__39_IN_mutation_2300 )
8136
+ char_literal394 = match( T__40, TOKENS_FOLLOWING_T__40_IN_mutation_2304 )
8131
8137
 
8132
8138
  tree_for_char_literal394 = @adaptor.create_with_payload( char_literal394 )
8133
8139
  @adaptor.add_child( root_0, tree_for_char_literal394 )
@@ -8197,7 +8203,7 @@ module SfpLang
8197
8203
 
8198
8204
 
8199
8205
  # at line 837:4: '(' ( set_item ( ',' ( NL )* set_item )* )? ')'
8200
- char_literal395 = match( T__37, TOKENS_FOLLOWING_T__37_IN_set_value_2319 )
8206
+ char_literal395 = match( T__38, TOKENS_FOLLOWING_T__38_IN_set_value_2323 )
8201
8207
 
8202
8208
  tree_for_char_literal395 = @adaptor.create_with_payload( char_literal395 )
8203
8209
  @adaptor.add_child( root_0, tree_for_char_literal395 )
@@ -8209,13 +8215,13 @@ module SfpLang
8209
8215
  alt_141 = 2
8210
8216
  look_141_0 = @input.peek( 1 )
8211
8217
 
8212
- if ( look_141_0.between?( STRING, MULTILINE_STRING ) || look_141_0 == T__37 )
8218
+ if ( look_141_0.between?( STRING, MULTILINE_STRING ) || look_141_0 == T__38 )
8213
8219
  alt_141 = 1
8214
8220
  end
8215
8221
  case alt_141
8216
8222
  when 1
8217
8223
  # at line 839:4: set_item ( ',' ( NL )* set_item )*
8218
- @state.following.push( TOKENS_FOLLOWING_set_item_IN_set_value_2328 )
8224
+ @state.following.push( TOKENS_FOLLOWING_set_item_IN_set_value_2332 )
8219
8225
  set_item396 = set_item
8220
8226
  @state.following.pop
8221
8227
  @adaptor.add_child( root_0, set_item396.tree )
@@ -8224,14 +8230,14 @@ module SfpLang
8224
8230
  alt_140 = 2
8225
8231
  look_140_0 = @input.peek( 1 )
8226
8232
 
8227
- if ( look_140_0 == T__38 )
8233
+ if ( look_140_0 == T__39 )
8228
8234
  alt_140 = 1
8229
8235
 
8230
8236
  end
8231
8237
  case alt_140
8232
8238
  when 1
8233
8239
  # at line 839:14: ',' ( NL )* set_item
8234
- char_literal397 = match( T__38, TOKENS_FOLLOWING_T__38_IN_set_value_2331 )
8240
+ char_literal397 = match( T__39, TOKENS_FOLLOWING_T__39_IN_set_value_2335 )
8235
8241
 
8236
8242
  tree_for_char_literal397 = @adaptor.create_with_payload( char_literal397 )
8237
8243
  @adaptor.add_child( root_0, tree_for_char_literal397 )
@@ -8248,7 +8254,7 @@ module SfpLang
8248
8254
  case alt_139
8249
8255
  when 1
8250
8256
  # at line 839:18: NL
8251
- __NL398__ = match( NL, TOKENS_FOLLOWING_NL_IN_set_value_2333 )
8257
+ __NL398__ = match( NL, TOKENS_FOLLOWING_NL_IN_set_value_2337 )
8252
8258
 
8253
8259
  tree_for_NL398 = @adaptor.create_with_payload( __NL398__ )
8254
8260
  @adaptor.add_child( root_0, tree_for_NL398 )
@@ -8258,7 +8264,7 @@ module SfpLang
8258
8264
  break # out of loop for decision 139
8259
8265
  end
8260
8266
  end # loop for decision 139
8261
- @state.following.push( TOKENS_FOLLOWING_set_item_IN_set_value_2336 )
8267
+ @state.following.push( TOKENS_FOLLOWING_set_item_IN_set_value_2340 )
8262
8268
  set_item399 = set_item
8263
8269
  @state.following.pop
8264
8270
  @adaptor.add_child( root_0, set_item399.tree )
@@ -8272,7 +8278,7 @@ module SfpLang
8272
8278
  # --> action
8273
8279
  return_value.val = @set
8274
8280
  # <-- action
8275
- char_literal400 = match( T__39, TOKENS_FOLLOWING_T__39_IN_set_value_2348 )
8281
+ char_literal400 = match( T__40, TOKENS_FOLLOWING_T__40_IN_set_value_2352 )
8276
8282
 
8277
8283
  tree_for_char_literal400 = @adaptor.create_with_payload( char_literal400 )
8278
8284
  @adaptor.add_child( root_0, tree_for_char_literal400 )
@@ -8323,7 +8329,7 @@ module SfpLang
8323
8329
 
8324
8330
 
8325
8331
  # at line 845:4: value
8326
- @state.following.push( TOKENS_FOLLOWING_value_IN_set_item_2359 )
8332
+ @state.following.push( TOKENS_FOLLOWING_value_IN_set_item_2363 )
8327
8333
  value401 = value
8328
8334
  @state.following.pop
8329
8335
  @adaptor.add_child( root_0, value401.tree )
@@ -8379,7 +8385,7 @@ module SfpLang
8379
8385
  case look_142 = @input.peek( 1 )
8380
8386
  when STRING, NUMBER, BOOLEAN, MULTILINE_STRING then alt_142 = 1
8381
8387
  when ID then alt_142 = 2
8382
- when T__37 then alt_142 = 3
8388
+ when T__38 then alt_142 = 3
8383
8389
  else
8384
8390
  raise NoViableAlternative( "", 142, 0 )
8385
8391
  end
@@ -8389,7 +8395,7 @@ module SfpLang
8389
8395
 
8390
8396
 
8391
8397
  # at line 850:4: primitive_value
8392
- @state.following.push( TOKENS_FOLLOWING_primitive_value_IN_value_2378 )
8398
+ @state.following.push( TOKENS_FOLLOWING_primitive_value_IN_value_2382 )
8393
8399
  primitive_value402 = primitive_value
8394
8400
  @state.following.pop
8395
8401
  @adaptor.add_child( root_0, primitive_value402.tree )
@@ -8405,7 +8411,7 @@ module SfpLang
8405
8411
 
8406
8412
 
8407
8413
  # at line 855:4: reference
8408
- @state.following.push( TOKENS_FOLLOWING_reference_IN_value_2387 )
8414
+ @state.following.push( TOKENS_FOLLOWING_reference_IN_value_2391 )
8409
8415
  reference403 = reference
8410
8416
  @state.following.pop
8411
8417
  @adaptor.add_child( root_0, reference403.tree )
@@ -8421,7 +8427,7 @@ module SfpLang
8421
8427
 
8422
8428
 
8423
8429
  # at line 860:4: set_value
8424
- @state.following.push( TOKENS_FOLLOWING_set_value_IN_value_2396 )
8430
+ @state.following.push( TOKENS_FOLLOWING_set_value_IN_value_2400 )
8425
8431
  set_value404 = set_value
8426
8432
  @state.following.pop
8427
8433
  @adaptor.add_child( root_0, set_value404.tree )
@@ -8497,7 +8503,7 @@ module SfpLang
8497
8503
 
8498
8504
 
8499
8505
  # at line 868:4: BOOLEAN
8500
- __BOOLEAN405__ = match( BOOLEAN, TOKENS_FOLLOWING_BOOLEAN_IN_primitive_value_2415 )
8506
+ __BOOLEAN405__ = match( BOOLEAN, TOKENS_FOLLOWING_BOOLEAN_IN_primitive_value_2419 )
8501
8507
 
8502
8508
  tree_for_BOOLEAN405 = @adaptor.create_with_payload( __BOOLEAN405__ )
8503
8509
  @adaptor.add_child( root_0, tree_for_BOOLEAN405 )
@@ -8518,7 +8524,7 @@ module SfpLang
8518
8524
 
8519
8525
 
8520
8526
  # at line 877:4: NUMBER
8521
- __NUMBER406__ = match( NUMBER, TOKENS_FOLLOWING_NUMBER_IN_primitive_value_2424 )
8527
+ __NUMBER406__ = match( NUMBER, TOKENS_FOLLOWING_NUMBER_IN_primitive_value_2428 )
8522
8528
 
8523
8529
  tree_for_NUMBER406 = @adaptor.create_with_payload( __NUMBER406__ )
8524
8530
  @adaptor.add_child( root_0, tree_for_NUMBER406 )
@@ -8535,7 +8541,7 @@ module SfpLang
8535
8541
 
8536
8542
 
8537
8543
  # at line 882:4: STRING
8538
- __STRING407__ = match( STRING, TOKENS_FOLLOWING_STRING_IN_primitive_value_2433 )
8544
+ __STRING407__ = match( STRING, TOKENS_FOLLOWING_STRING_IN_primitive_value_2437 )
8539
8545
 
8540
8546
  tree_for_STRING407 = @adaptor.create_with_payload( __STRING407__ )
8541
8547
  @adaptor.add_child( root_0, tree_for_STRING407 )
@@ -8552,7 +8558,7 @@ module SfpLang
8552
8558
 
8553
8559
 
8554
8560
  # at line 887:4: MULTILINE_STRING
8555
- __MULTILINE_STRING408__ = match( MULTILINE_STRING, TOKENS_FOLLOWING_MULTILINE_STRING_IN_primitive_value_2442 )
8561
+ __MULTILINE_STRING408__ = match( MULTILINE_STRING, TOKENS_FOLLOWING_MULTILINE_STRING_IN_primitive_value_2446 )
8556
8562
 
8557
8563
  tree_for_MULTILINE_STRING408 = @adaptor.create_with_payload( __MULTILINE_STRING408__ )
8558
8564
  @adaptor.add_child( root_0, tree_for_MULTILINE_STRING408 )
@@ -8615,7 +8621,7 @@ module SfpLang
8615
8621
 
8616
8622
 
8617
8623
  # at line 895:4: ID ( '.' ID )*
8618
- __ID409__ = match( ID, TOKENS_FOLLOWING_ID_IN_path_2457 )
8624
+ __ID409__ = match( ID, TOKENS_FOLLOWING_ID_IN_path_2461 )
8619
8625
 
8620
8626
  tree_for_ID409 = @adaptor.create_with_payload( __ID409__ )
8621
8627
  @adaptor.add_child( root_0, tree_for_ID409 )
@@ -8625,19 +8631,19 @@ module SfpLang
8625
8631
  alt_144 = 2
8626
8632
  look_144_0 = @input.peek( 1 )
8627
8633
 
8628
- if ( look_144_0 == T__68 )
8634
+ if ( look_144_0 == T__69 )
8629
8635
  alt_144 = 1
8630
8636
 
8631
8637
  end
8632
8638
  case alt_144
8633
8639
  when 1
8634
8640
  # at line 895:7: '.' ID
8635
- char_literal410 = match( T__68, TOKENS_FOLLOWING_T__68_IN_path_2459 )
8641
+ char_literal410 = match( T__69, TOKENS_FOLLOWING_T__69_IN_path_2463 )
8636
8642
 
8637
8643
  tree_for_char_literal410 = @adaptor.create_with_payload( char_literal410 )
8638
8644
  @adaptor.add_child( root_0, tree_for_char_literal410 )
8639
8645
 
8640
- __ID411__ = match( ID, TOKENS_FOLLOWING_ID_IN_path_2460 )
8646
+ __ID411__ = match( ID, TOKENS_FOLLOWING_ID_IN_path_2464 )
8641
8647
 
8642
8648
  tree_for_ID411 = @adaptor.create_with_payload( __ID411__ )
8643
8649
  @adaptor.add_child( root_0, tree_for_ID411 )
@@ -8696,7 +8702,7 @@ module SfpLang
8696
8702
 
8697
8703
 
8698
8704
  # at line 899:4: id_ref ( '.' id_ref )*
8699
- @state.following.push( TOKENS_FOLLOWING_id_ref_IN_path_with_index_2473 )
8705
+ @state.following.push( TOKENS_FOLLOWING_id_ref_IN_path_with_index_2477 )
8700
8706
  id_ref412 = id_ref
8701
8707
  @state.following.pop
8702
8708
  @adaptor.add_child( root_0, id_ref412.tree )
@@ -8705,19 +8711,19 @@ module SfpLang
8705
8711
  alt_145 = 2
8706
8712
  look_145_0 = @input.peek( 1 )
8707
8713
 
8708
- if ( look_145_0 == T__68 )
8714
+ if ( look_145_0 == T__69 )
8709
8715
  alt_145 = 1
8710
8716
 
8711
8717
  end
8712
8718
  case alt_145
8713
8719
  when 1
8714
8720
  # at line 899:11: '.' id_ref
8715
- char_literal413 = match( T__68, TOKENS_FOLLOWING_T__68_IN_path_with_index_2475 )
8721
+ char_literal413 = match( T__69, TOKENS_FOLLOWING_T__69_IN_path_with_index_2479 )
8716
8722
 
8717
8723
  tree_for_char_literal413 = @adaptor.create_with_payload( char_literal413 )
8718
8724
  @adaptor.add_child( root_0, tree_for_char_literal413 )
8719
8725
 
8720
- @state.following.push( TOKENS_FOLLOWING_id_ref_IN_path_with_index_2476 )
8726
+ @state.following.push( TOKENS_FOLLOWING_id_ref_IN_path_with_index_2480 )
8721
8727
  id_ref414 = id_ref
8722
8728
  @state.following.pop
8723
8729
  @adaptor.add_child( root_0, id_ref414.tree )
@@ -8779,7 +8785,7 @@ module SfpLang
8779
8785
 
8780
8786
 
8781
8787
  # at line 903:4: ID ( '[' NUMBER ']' )?
8782
- __ID415__ = match( ID, TOKENS_FOLLOWING_ID_IN_id_ref_2489 )
8788
+ __ID415__ = match( ID, TOKENS_FOLLOWING_ID_IN_id_ref_2493 )
8783
8789
 
8784
8790
  tree_for_ID415 = @adaptor.create_with_payload( __ID415__ )
8785
8791
  @adaptor.add_child( root_0, tree_for_ID415 )
@@ -8788,23 +8794,23 @@ module SfpLang
8788
8794
  alt_146 = 2
8789
8795
  look_146_0 = @input.peek( 1 )
8790
8796
 
8791
- if ( look_146_0 == T__26 )
8797
+ if ( look_146_0 == T__27 )
8792
8798
  alt_146 = 1
8793
8799
  end
8794
8800
  case alt_146
8795
8801
  when 1
8796
8802
  # at line 903:7: '[' NUMBER ']'
8797
- char_literal416 = match( T__26, TOKENS_FOLLOWING_T__26_IN_id_ref_2491 )
8803
+ char_literal416 = match( T__27, TOKENS_FOLLOWING_T__27_IN_id_ref_2495 )
8798
8804
 
8799
8805
  tree_for_char_literal416 = @adaptor.create_with_payload( char_literal416 )
8800
8806
  @adaptor.add_child( root_0, tree_for_char_literal416 )
8801
8807
 
8802
- __NUMBER417__ = match( NUMBER, TOKENS_FOLLOWING_NUMBER_IN_id_ref_2493 )
8808
+ __NUMBER417__ = match( NUMBER, TOKENS_FOLLOWING_NUMBER_IN_id_ref_2497 )
8803
8809
 
8804
8810
  tree_for_NUMBER417 = @adaptor.create_with_payload( __NUMBER417__ )
8805
8811
  @adaptor.add_child( root_0, tree_for_NUMBER417 )
8806
8812
 
8807
- char_literal418 = match( T__27, TOKENS_FOLLOWING_T__27_IN_id_ref_2495 )
8813
+ char_literal418 = match( T__28, TOKENS_FOLLOWING_T__28_IN_id_ref_2499 )
8808
8814
 
8809
8815
  tree_for_char_literal418 = @adaptor.create_with_payload( char_literal418 )
8810
8816
  @adaptor.add_child( root_0, tree_for_char_literal418 )
@@ -8857,7 +8863,7 @@ module SfpLang
8857
8863
 
8858
8864
 
8859
8865
  # at line 907:4: path_with_index
8860
- @state.following.push( TOKENS_FOLLOWING_path_with_index_IN_reference_2512 )
8866
+ @state.following.push( TOKENS_FOLLOWING_path_with_index_IN_reference_2516 )
8861
8867
  path_with_index419 = path_with_index
8862
8868
  @state.following.pop
8863
8869
  @adaptor.add_child( root_0, path_with_index419.tree )
@@ -8912,12 +8918,12 @@ module SfpLang
8912
8918
 
8913
8919
 
8914
8920
  # at line 912:4: 'isref' path
8915
- string_literal420 = match( T__69, TOKENS_FOLLOWING_T__69_IN_reference_type_2531 )
8921
+ string_literal420 = match( T__70, TOKENS_FOLLOWING_T__70_IN_reference_type_2535 )
8916
8922
 
8917
8923
  tree_for_string_literal420 = @adaptor.create_with_payload( string_literal420 )
8918
8924
  @adaptor.add_child( root_0, tree_for_string_literal420 )
8919
8925
 
8920
- @state.following.push( TOKENS_FOLLOWING_path_IN_reference_type_2533 )
8926
+ @state.following.push( TOKENS_FOLLOWING_path_IN_reference_type_2537 )
8921
8927
  path421 = path
8922
8928
  @state.following.pop
8923
8929
  @adaptor.add_child( root_0, path421.tree )
@@ -8976,12 +8982,12 @@ module SfpLang
8976
8982
 
8977
8983
 
8978
8984
  # at line 921:4: 'isset' path
8979
- string_literal422 = match( T__41, TOKENS_FOLLOWING_T__41_IN_set_type_2552 )
8985
+ string_literal422 = match( T__42, TOKENS_FOLLOWING_T__42_IN_set_type_2556 )
8980
8986
 
8981
8987
  tree_for_string_literal422 = @adaptor.create_with_payload( string_literal422 )
8982
8988
  @adaptor.add_child( root_0, tree_for_string_literal422 )
8983
8989
 
8984
- @state.following.push( TOKENS_FOLLOWING_path_IN_set_type_2554 )
8990
+ @state.following.push( TOKENS_FOLLOWING_path_IN_set_type_2558 )
8985
8991
  path423 = path
8986
8992
  @state.following.pop
8987
8993
  @adaptor.add_child( root_0, path423.tree )
@@ -9040,7 +9046,7 @@ module SfpLang
9040
9046
 
9041
9047
 
9042
9048
  # at line 931:4: 'either'
9043
- string_literal424 = match( T__70, TOKENS_FOLLOWING_T__70_IN_probability_op_2569 )
9049
+ string_literal424 = match( T__71, TOKENS_FOLLOWING_T__71_IN_probability_op_2573 )
9044
9050
 
9045
9051
  tree_for_string_literal424 = @adaptor.create_with_payload( string_literal424 )
9046
9052
  @adaptor.add_child( root_0, tree_for_string_literal424 )
@@ -9093,7 +9099,7 @@ module SfpLang
9093
9099
 
9094
9100
  # at line
9095
9101
  set425 = @input.look
9096
- if @input.peek(1) == T__55 || @input.peek(1) == T__58
9102
+ if @input.peek(1) == T__56 || @input.peek(1) == T__59
9097
9103
  @input.consume
9098
9104
  @adaptor.add_child( root_0, @adaptor.create_with_payload( set425 ) )
9099
9105
  @state.error_recovery = false
@@ -9151,7 +9157,7 @@ module SfpLang
9151
9157
 
9152
9158
  # at line
9153
9159
  set426 = @input.look
9154
- if @input.peek( 1 ).between?( T__60, T__61 ) || @input.peek(1) == T__71
9160
+ if @input.peek( 1 ).between?( T__61, T__62 ) || @input.peek(1) == T__72
9155
9161
  @input.consume
9156
9162
  @adaptor.add_child( root_0, @adaptor.create_with_payload( set426 ) )
9157
9163
  @state.error_recovery = false
@@ -9209,7 +9215,7 @@ module SfpLang
9209
9215
 
9210
9216
  # at line
9211
9217
  set427 = @input.look
9212
- if @input.peek( 1 ).between?( T__72, T__75 )
9218
+ if @input.peek( 1 ).between?( T__73, T__76 )
9213
9219
  @input.consume
9214
9220
  @adaptor.add_child( root_0, @adaptor.create_with_payload( set427 ) )
9215
9221
  @state.error_recovery = false
@@ -9267,7 +9273,7 @@ module SfpLang
9267
9273
 
9268
9274
  # at line
9269
9275
  set428 = @input.look
9270
- if @input.peek( 1 ).between?( T__76, T__79 )
9276
+ if @input.peek( 1 ).between?( T__77, T__80 )
9271
9277
  @input.consume
9272
9278
  @adaptor.add_child( root_0, @adaptor.create_with_payload( set428 ) )
9273
9279
  @state.error_recovery = false
@@ -9304,10 +9310,10 @@ module SfpLang
9304
9310
  class DFA7 < ANTLR3::DFA
9305
9311
  EOT = unpack( 13, -1 )
9306
9312
  EOF = unpack( 13, -1 )
9307
- MIN = unpack( 1, 7, 1, 26, 1, 8, 1, 7, 1, 5, 1, 27, 1, 26, 2, -1,
9308
- 1, 55, 1, 8, 1, 27, 1, 55 )
9309
- MAX = unpack( 1, 7, 1, 68, 1, 8, 1, 7, 1, 37, 1, 27, 1, 68, 2, -1,
9310
- 1, 68, 1, 8, 1, 27, 1, 68 )
9313
+ MIN = unpack( 1, 7, 1, 27, 1, 8, 1, 7, 1, 5, 1, 28, 1, 27, 2, -1,
9314
+ 1, 56, 1, 8, 1, 28, 1, 56 )
9315
+ MAX = unpack( 1, 7, 1, 69, 1, 8, 1, 7, 1, 38, 1, 28, 1, 69, 2, -1,
9316
+ 1, 69, 1, 8, 1, 28, 1, 69 )
9311
9317
  ACCEPT = unpack( 7, -1, 1, 1, 1, 2, 4, -1 )
9312
9318
  SPECIAL = unpack( 13, -1 )
9313
9319
  TRANSITION = [
@@ -9315,7 +9321,7 @@ module SfpLang
9315
9321
  unpack( 1, 2, 28, -1, 1, 4, 2, -1, 1, 4, 9, -1, 1, 3 ),
9316
9322
  unpack( 1, 5 ),
9317
9323
  unpack( 1, 6 ),
9318
- unpack( 1, 8, 5, 7, 26, -1, 1, 7 ),
9324
+ unpack( 1, 8, 5, 7, 27, -1, 1, 7 ),
9319
9325
  unpack( 1, 9 ),
9320
9326
  unpack( 1, 10, 28, -1, 1, 4, 2, -1, 1, 4, 9, -1, 1, 3 ),
9321
9327
  unpack( ),
@@ -9345,12 +9351,12 @@ module SfpLang
9345
9351
  EOT = unpack( 4, -1 )
9346
9352
  EOF = unpack( 4, -1 )
9347
9353
  MIN = unpack( 2, 4, 2, -1 )
9348
- MAX = unpack( 1, 30, 1, 31, 2, -1 )
9354
+ MAX = unpack( 1, 31, 1, 32, 2, -1 )
9349
9355
  ACCEPT = unpack( 2, -1, 1, 1, 1, 2 )
9350
9356
  SPECIAL = unpack( 4, -1 )
9351
9357
  TRANSITION = [
9352
- unpack( 1, 1, 25, -1, 1, 2 ),
9353
- unpack( 1, 1, 2, -1, 1, 3, 13, -1, 1, 3, 6, -1, 1, 3, 1, -1, 1,
9358
+ unpack( 1, 1, 26, -1, 1, 2 ),
9359
+ unpack( 1, 1, 2, -1, 1, 3, 13, -1, 1, 3, 7, -1, 1, 3, 1, -1, 1,
9354
9360
  2, 1, 3 ),
9355
9361
  unpack( ),
9356
9362
  unpack( )
@@ -9375,22 +9381,22 @@ module SfpLang
9375
9381
  EOT = unpack( 9, -1 )
9376
9382
  EOF = unpack( 9, -1 )
9377
9383
  MIN = unpack( 1, 7, 1, 4, 3, -1, 1, 7, 1, 4, 1, -1, 1, 4 )
9378
- MAX = unpack( 1, 63, 1, 79, 3, -1, 1, 7, 1, 63, 1, -1, 1, 79 )
9384
+ MAX = unpack( 1, 64, 1, 80, 3, -1, 1, 7, 1, 64, 1, -1, 1, 80 )
9379
9385
  ACCEPT = unpack( 2, -1, 1, 1, 1, 3, 1, 4, 2, -1, 1, 2, 1, -1 )
9380
9386
  SPECIAL = unpack( 9, -1 )
9381
9387
  TRANSITION = [
9382
- unpack( 1, 1, 20, -1, 1, 2, 21, -1, 1, 3, 1, -1, 3, 4, 2, -1, 1,
9388
+ unpack( 1, 1, 21, -1, 1, 2, 21, -1, 1, 3, 1, -1, 3, 4, 2, -1, 1,
9383
9389
  2, 5, -1, 1, 2 ),
9384
- unpack( 1, 6, 15, -1, 1, 7, 5, -1, 1, 2, 28, -1, 1, 2, 1, -1, 6,
9390
+ unpack( 1, 6, 15, -1, 1, 7, 6, -1, 1, 2, 28, -1, 1, 2, 1, -1, 6,
9385
9391
  2, 5, -1, 1, 5, 2, -1, 1, 2, 4, -1, 4, 2 ),
9386
9392
  unpack( ),
9387
9393
  unpack( ),
9388
9394
  unpack( ),
9389
9395
  unpack( 1, 8 ),
9390
- unpack( 1, 6, 2, -1, 1, 2, 12, -1, 1, 7, 1, 2, 6, -1, 1, 2, 16,
9396
+ unpack( 1, 6, 2, -1, 1, 2, 12, -1, 1, 7, 1, 2, 7, -1, 1, 2, 16,
9391
9397
  -1, 6, 2, 1, -1, 3, 2, 2, -1, 1, 2, 5, -1, 1, 2 ),
9392
9398
  unpack( ),
9393
- unpack( 1, 6, 15, -1, 1, 7, 5, -1, 1, 2, 28, -1, 1, 2, 1, -1, 6,
9399
+ unpack( 1, 6, 15, -1, 1, 7, 6, -1, 1, 2, 28, -1, 1, 2, 1, -1, 6,
9394
9400
  2, 5, -1, 1, 5, 2, -1, 1, 2, 4, -1, 4, 2 )
9395
9401
  ].freeze
9396
9402
 
@@ -9413,22 +9419,22 @@ module SfpLang
9413
9419
  EOT = unpack( 9, -1 )
9414
9420
  EOF = unpack( 9, -1 )
9415
9421
  MIN = unpack( 1, 7, 1, 4, 3, -1, 1, 7, 1, 4, 1, -1, 1, 4 )
9416
- MAX = unpack( 1, 63, 1, 79, 3, -1, 1, 7, 1, 63, 1, -1, 1, 79 )
9422
+ MAX = unpack( 1, 64, 1, 80, 3, -1, 1, 7, 1, 64, 1, -1, 1, 80 )
9417
9423
  ACCEPT = unpack( 2, -1, 1, 1, 1, 3, 1, 4, 2, -1, 1, 2, 1, -1 )
9418
9424
  SPECIAL = unpack( 9, -1 )
9419
9425
  TRANSITION = [
9420
- unpack( 1, 1, 20, -1, 1, 2, 21, -1, 1, 3, 1, -1, 3, 4, 2, -1, 1,
9426
+ unpack( 1, 1, 21, -1, 1, 2, 21, -1, 1, 3, 1, -1, 3, 4, 2, -1, 1,
9421
9427
  2, 5, -1, 1, 2 ),
9422
- unpack( 1, 6, 15, -1, 1, 7, 5, -1, 1, 2, 28, -1, 1, 2, 1, -1, 6,
9428
+ unpack( 1, 6, 15, -1, 1, 7, 6, -1, 1, 2, 28, -1, 1, 2, 1, -1, 6,
9423
9429
  2, 5, -1, 1, 5, 2, -1, 1, 2, 4, -1, 4, 2 ),
9424
9430
  unpack( ),
9425
9431
  unpack( ),
9426
9432
  unpack( ),
9427
9433
  unpack( 1, 8 ),
9428
- unpack( 1, 6, 2, -1, 1, 2, 12, -1, 1, 7, 1, 2, 6, -1, 1, 2, 21,
9434
+ unpack( 1, 6, 2, -1, 1, 2, 12, -1, 1, 7, 1, 2, 7, -1, 1, 2, 21,
9429
9435
  -1, 1, 2, 1, -1, 3, 2, 2, -1, 1, 2, 5, -1, 1, 2 ),
9430
9436
  unpack( ),
9431
- unpack( 1, 6, 15, -1, 1, 7, 5, -1, 1, 2, 28, -1, 1, 2, 1, -1, 6,
9437
+ unpack( 1, 6, 15, -1, 1, 7, 6, -1, 1, 2, 28, -1, 1, 2, 1, -1, 6,
9432
9438
  2, 5, -1, 1, 5, 2, -1, 1, 2, 4, -1, 4, 2 )
9433
9439
  ].freeze
9434
9440
 
@@ -9451,18 +9457,18 @@ module SfpLang
9451
9457
  EOT = unpack( 26, -1 )
9452
9458
  EOF = unpack( 26, -1 )
9453
9459
  MIN = unpack( 1, 7, 1, 4, 3, -1, 1, 8, 1, 7, 1, -1, 3, 5, 1, -1, 1,
9454
- 5, 3, -1, 1, 27, 1, 4, 4, -1, 1, 4, 1, 8, 1, 27, 1,
9460
+ 5, 3, -1, 1, 28, 1, 4, 4, -1, 1, 4, 1, 8, 1, 28, 1,
9455
9461
  4 )
9456
- MAX = unpack( 1, 63, 1, 79, 3, -1, 1, 8, 1, 7, 1, -1, 2, 59, 1, 37,
9457
- 1, -1, 1, 37, 3, -1, 1, 27, 1, 79, 4, -1, 1, 79, 1,
9458
- 8, 1, 27, 1, 79 )
9462
+ MAX = unpack( 1, 64, 1, 80, 3, -1, 1, 8, 1, 7, 1, -1, 2, 60, 1, 38,
9463
+ 1, -1, 1, 38, 3, -1, 1, 28, 1, 80, 4, -1, 1, 80, 1,
9464
+ 8, 1, 28, 1, 80 )
9459
9465
  ACCEPT = unpack( 2, -1, 1, 2, 1, 7, 1, 12, 2, -1, 1, 1, 3, -1, 1,
9460
9466
  8, 1, -1, 1, 9, 1, 10, 1, 11, 2, -1, 1, 3, 1, 4,
9461
9467
  1, 5, 1, 6, 4, -1 )
9462
9468
  SPECIAL = unpack( 26, -1 )
9463
9469
  TRANSITION = [
9464
- unpack( 1, 1, 20, -1, 1, 3, 28, -1, 1, 2, 5, -1, 1, 4 ),
9465
- unpack( 1, 7, 21, -1, 1, 5, 2, -1, 1, 7, 25, -1, 1, 10, 1, -1,
9470
+ unpack( 1, 1, 21, -1, 1, 3, 28, -1, 1, 2, 5, -1, 1, 4 ),
9471
+ unpack( 1, 7, 22, -1, 1, 5, 2, -1, 1, 7, 25, -1, 1, 10, 1, -1,
9466
9472
  1, 13, 1, 8, 1, 11, 2, 9, 1, 14, 5, -1, 1, 6, 2, -1, 1,
9467
9473
  12, 4, -1, 4, 15 ),
9468
9474
  unpack( ),
@@ -9471,28 +9477,28 @@ module SfpLang
9471
9477
  unpack( 1, 16 ),
9472
9478
  unpack( 1, 17 ),
9473
9479
  unpack( ),
9474
- unpack( 1, 19, 5, 18, 26, -1, 1, 18, 21, -1, 1, 11 ),
9475
- unpack( 1, 21, 5, 20, 26, -1, 1, 20, 21, -1, 1, 13 ),
9476
- unpack( 1, 19, 5, 18, 26, -1, 1, 18 ),
9480
+ unpack( 1, 19, 5, 18, 27, -1, 1, 18, 21, -1, 1, 11 ),
9481
+ unpack( 1, 21, 5, 20, 27, -1, 1, 20, 21, -1, 1, 13 ),
9482
+ unpack( 1, 19, 5, 18, 27, -1, 1, 18 ),
9477
9483
  unpack( ),
9478
- unpack( 1, 21, 5, 20, 26, -1, 1, 20 ),
9484
+ unpack( 1, 21, 5, 20, 27, -1, 1, 20 ),
9479
9485
  unpack( ),
9480
9486
  unpack( ),
9481
9487
  unpack( ),
9482
9488
  unpack( 1, 22 ),
9483
- unpack( 1, 7, 21, -1, 1, 23, 2, -1, 1, 7, 25, -1, 1, 10, 1, -1,
9489
+ unpack( 1, 7, 22, -1, 1, 23, 2, -1, 1, 7, 25, -1, 1, 10, 1, -1,
9484
9490
  1, 13, 1, 8, 1, 11, 2, 9, 1, 14, 5, -1, 1, 6, 2, -1, 1,
9485
9491
  12, 4, -1, 4, 15 ),
9486
9492
  unpack( ),
9487
9493
  unpack( ),
9488
9494
  unpack( ),
9489
9495
  unpack( ),
9490
- unpack( 1, 7, 24, -1, 1, 7, 25, -1, 1, 10, 1, -1, 1, 13, 1, 8,
9496
+ unpack( 1, 7, 25, -1, 1, 7, 25, -1, 1, 10, 1, -1, 1, 13, 1, 8,
9491
9497
  1, 11, 2, 9, 1, 14, 5, -1, 1, 6, 2, -1, 1, 12, 4, -1, 4,
9492
9498
  15 ),
9493
9499
  unpack( 1, 24 ),
9494
9500
  unpack( 1, 25 ),
9495
- unpack( 1, 7, 24, -1, 1, 7, 25, -1, 1, 10, 1, -1, 1, 13, 1, 8,
9501
+ unpack( 1, 7, 25, -1, 1, 7, 25, -1, 1, 10, 1, -1, 1, 13, 1, 8,
9496
9502
  1, 11, 2, 9, 1, 14, 5, -1, 1, 6, 2, -1, 1, 12, 4, -1, 4,
9497
9503
  15 )
9498
9504
  ].freeze
@@ -9515,23 +9521,23 @@ module SfpLang
9515
9521
  class DFA138 < ANTLR3::DFA
9516
9522
  EOT = unpack( 19, -1 )
9517
9523
  EOF = unpack( 19, -1 )
9518
- MIN = unpack( 1, 7, 1, 26, 1, -1, 1, 8, 1, 7, 1, 5, 1, -1, 1, 5, 2,
9519
- -1, 1, 27, 1, 26, 3, -1, 1, 55, 1, 8, 1, 27, 1, 55 )
9520
- MAX = unpack( 1, 65, 1, 75, 1, -1, 1, 8, 1, 7, 1, 64, 1, -1, 1, 37,
9521
- 2, -1, 1, 27, 1, 75, 3, -1, 1, 75, 1, 8, 1, 27, 1, 75 )
9524
+ MIN = unpack( 1, 7, 1, 27, 1, -1, 1, 8, 1, 7, 1, 5, 1, -1, 1, 5, 2,
9525
+ -1, 1, 28, 1, 27, 3, -1, 1, 56, 1, 8, 1, 28, 1, 56 )
9526
+ MAX = unpack( 1, 66, 1, 76, 1, -1, 1, 8, 1, 7, 1, 65, 1, -1, 1, 38,
9527
+ 2, -1, 1, 28, 1, 76, 3, -1, 1, 76, 1, 8, 1, 28, 1, 76 )
9522
9528
  ACCEPT = unpack( 2, -1, 1, 5, 3, -1, 1, 3, 1, -1, 1, 6, 1, 7, 2, -1,
9523
9529
  1, 4, 1, 1, 1, 2, 4, -1 )
9524
9530
  SPECIAL = unpack( 19, -1 )
9525
9531
  TRANSITION = [
9526
- unpack( 1, 1, 57, -1, 1, 2 ),
9532
+ unpack( 1, 1, 58, -1, 1, 2 ),
9527
9533
  unpack( 1, 3, 28, -1, 1, 7, 2, -1, 1, 5, 7, -1, 1, 8, 1, 9, 1,
9528
9534
  4, 3, -1, 4, 6 ),
9529
9535
  unpack( ),
9530
9536
  unpack( 1, 10 ),
9531
9537
  unpack( 1, 11 ),
9532
- unpack( 1, 14, 5, 13, 26, -1, 1, 13, 26, -1, 1, 12 ),
9538
+ unpack( 1, 14, 5, 13, 27, -1, 1, 13, 26, -1, 1, 12 ),
9533
9539
  unpack( ),
9534
- unpack( 1, 14, 5, 13, 26, -1, 1, 13 ),
9540
+ unpack( 1, 14, 5, 13, 27, -1, 1, 13 ),
9535
9541
  unpack( ),
9536
9542
  unpack( ),
9537
9543
  unpack( 1, 15 ),
@@ -9575,21 +9581,21 @@ module SfpLang
9575
9581
  @dfa138 = DFA138.new( self, 138 )
9576
9582
 
9577
9583
  end
9578
- TOKENS_FOLLOWING_NL_IN_sfp_49 = Set[ 1, 4, 7, 18, 22, 23, 36, 43 ]
9579
- TOKENS_FOLLOWING_include_IN_sfp_52 = Set[ 1, 7, 18, 22, 23, 36, 43 ]
9580
- TOKENS_FOLLOWING_header_IN_sfp_55 = Set[ 1, 7, 22, 23, 36, 43 ]
9581
- TOKENS_FOLLOWING_mmutation_IN_sfp_65 = Set[ 1, 7, 22, 43 ]
9582
- TOKENS_FOLLOWING_object_def_IN_sfp_69 = Set[ 1, 4, 7, 22, 43 ]
9583
- TOKENS_FOLLOWING_NL_IN_sfp_71 = Set[ 1, 4, 7, 22, 43 ]
9584
- TOKENS_FOLLOWING_state_IN_sfp_76 = Set[ 1, 7, 22, 43 ]
9585
- TOKENS_FOLLOWING_constraint_IN_sfp_80 = Set[ 1, 7, 22, 43 ]
9586
- TOKENS_FOLLOWING_goal_constraint_IN_sfp_84 = Set[ 1, 7, 22, 43 ]
9587
- TOKENS_FOLLOWING_composite_IN_sfp_88 = Set[ 1, 7, 22, 43 ]
9588
- TOKENS_FOLLOWING_reference_IN_mmutation_102 = Set[ 55, 58 ]
9589
- TOKENS_FOLLOWING_equals_op_IN_mmutation_104 = Set[ 6, 7, 8, 9, 10, 37 ]
9584
+ TOKENS_FOLLOWING_NL_IN_sfp_49 = Set[ 1, 4, 7, 18, 22, 23, 24, 37, 44 ]
9585
+ TOKENS_FOLLOWING_include_IN_sfp_52 = Set[ 1, 7, 18, 22, 23, 24, 37, 44 ]
9586
+ TOKENS_FOLLOWING_header_IN_sfp_55 = Set[ 1, 7, 22, 23, 24, 37, 44 ]
9587
+ TOKENS_FOLLOWING_mmutation_IN_sfp_65 = Set[ 1, 7, 22, 44 ]
9588
+ TOKENS_FOLLOWING_object_def_IN_sfp_69 = Set[ 1, 4, 7, 22, 44 ]
9589
+ TOKENS_FOLLOWING_NL_IN_sfp_71 = Set[ 1, 4, 7, 22, 44 ]
9590
+ TOKENS_FOLLOWING_state_IN_sfp_76 = Set[ 1, 7, 22, 44 ]
9591
+ TOKENS_FOLLOWING_constraint_IN_sfp_80 = Set[ 1, 7, 22, 44 ]
9592
+ TOKENS_FOLLOWING_goal_constraint_IN_sfp_84 = Set[ 1, 7, 22, 44 ]
9593
+ TOKENS_FOLLOWING_composite_IN_sfp_88 = Set[ 1, 7, 22, 44 ]
9594
+ TOKENS_FOLLOWING_reference_IN_mmutation_102 = Set[ 56, 59 ]
9595
+ TOKENS_FOLLOWING_equals_op_IN_mmutation_104 = Set[ 6, 7, 8, 9, 10, 38 ]
9590
9596
  TOKENS_FOLLOWING_value_IN_mmutation_106 = Set[ 4 ]
9591
9597
  TOKENS_FOLLOWING_NL_IN_mmutation_108 = Set[ 1, 4 ]
9592
- TOKENS_FOLLOWING_reference_IN_mmutation_118 = Set[ 55, 58 ]
9598
+ TOKENS_FOLLOWING_reference_IN_mmutation_118 = Set[ 56, 59 ]
9593
9599
  TOKENS_FOLLOWING_equals_op_IN_mmutation_120 = Set[ 5 ]
9594
9600
  TOKENS_FOLLOWING_NULL_IN_mmutation_122 = Set[ 1 ]
9595
9601
  TOKENS_FOLLOWING_T__18_IN_include_137 = Set[ 6 ]
@@ -9613,392 +9619,392 @@ module SfpLang
9613
9619
  TOKENS_FOLLOWING_constraint_IN_composite_246 = Set[ 7, 21 ]
9614
9620
  TOKENS_FOLLOWING_T__21_IN_composite_251 = Set[ 1, 4 ]
9615
9621
  TOKENS_FOLLOWING_NL_IN_composite_253 = Set[ 1, 4 ]
9616
- TOKENS_FOLLOWING_T__23_IN_class_definition_269 = Set[ 7 ]
9617
- TOKENS_FOLLOWING_ID_IN_class_definition_271 = Set[ 1, 4, 20, 24 ]
9618
- TOKENS_FOLLOWING_extends_class_IN_class_definition_280 = Set[ 1, 4, 20 ]
9619
- TOKENS_FOLLOWING_T__20_IN_class_definition_294 = Set[ 4, 7, 21, 23, 36 ]
9620
- TOKENS_FOLLOWING_NL_IN_class_definition_296 = Set[ 4, 7, 21, 23, 36 ]
9621
- TOKENS_FOLLOWING_attribute_IN_class_definition_301 = Set[ 7, 21, 23, 36 ]
9622
- TOKENS_FOLLOWING_procedure_IN_class_definition_305 = Set[ 7, 21, 23, 36 ]
9623
- TOKENS_FOLLOWING_T__21_IN_class_definition_310 = Set[ 1, 4 ]
9624
- TOKENS_FOLLOWING_NL_IN_class_definition_314 = Set[ 1, 4 ]
9625
- TOKENS_FOLLOWING_T__24_IN_extends_class_335 = Set[ 7 ]
9626
- TOKENS_FOLLOWING_path_IN_extends_class_337 = Set[ 1 ]
9627
- TOKENS_FOLLOWING_ID_IN_attribute_352 = Set[ 55, 58 ]
9628
- TOKENS_FOLLOWING_equals_op_IN_attribute_354 = Set[ 6, 7, 8, 9, 10, 37 ]
9629
- TOKENS_FOLLOWING_value_IN_attribute_356 = Set[ 4 ]
9630
- TOKENS_FOLLOWING_NL_IN_attribute_358 = Set[ 1, 4 ]
9631
- TOKENS_FOLLOWING_ID_IN_attribute_368 = Set[ 69 ]
9632
- TOKENS_FOLLOWING_reference_type_IN_attribute_370 = Set[ 4 ]
9633
- TOKENS_FOLLOWING_NL_IN_attribute_372 = Set[ 1, 4 ]
9634
- TOKENS_FOLLOWING_ID_IN_attribute_382 = Set[ 41 ]
9635
- TOKENS_FOLLOWING_set_type_IN_attribute_384 = Set[ 4 ]
9636
- TOKENS_FOLLOWING_NL_IN_attribute_386 = Set[ 1, 4 ]
9637
- TOKENS_FOLLOWING_ID_IN_attribute_396 = Set[ 70 ]
9638
- TOKENS_FOLLOWING_probability_op_IN_attribute_398 = Set[ 6, 7, 8, 9, 10, 37 ]
9639
- TOKENS_FOLLOWING_set_value_IN_attribute_400 = Set[ 4 ]
9640
- TOKENS_FOLLOWING_NL_IN_attribute_402 = Set[ 1, 4 ]
9641
- TOKENS_FOLLOWING_object_def_IN_attribute_412 = Set[ 4 ]
9642
- TOKENS_FOLLOWING_NL_IN_attribute_414 = Set[ 1, 4 ]
9643
- TOKENS_FOLLOWING_ID_IN_object_def_426 = Set[ 1, 20, 25 ]
9644
- TOKENS_FOLLOWING_T__25_IN_object_def_435 = Set[ 7 ]
9645
- TOKENS_FOLLOWING_path_IN_object_def_437 = Set[ 1, 20, 26 ]
9646
- TOKENS_FOLLOWING_T__26_IN_object_def_439 = Set[ 8 ]
9647
- TOKENS_FOLLOWING_NUMBER_IN_object_def_441 = Set[ 27 ]
9648
- TOKENS_FOLLOWING_T__27_IN_object_def_445 = Set[ 1, 20 ]
9649
- TOKENS_FOLLOWING_object_body_IN_object_def_460 = Set[ 1 ]
9650
- TOKENS_FOLLOWING_T__20_IN_object_body_476 = Set[ 4, 7, 21, 28, 31 ]
9651
- TOKENS_FOLLOWING_NL_IN_object_body_478 = Set[ 4, 7, 21, 28, 31 ]
9652
- TOKENS_FOLLOWING_object_attribute_IN_object_body_483 = Set[ 7, 21, 28, 31 ]
9653
- TOKENS_FOLLOWING_state_dependency_IN_object_body_487 = Set[ 7, 21, 28, 31 ]
9654
- TOKENS_FOLLOWING_operator_IN_object_body_491 = Set[ 7, 21, 28, 31 ]
9655
- TOKENS_FOLLOWING_T__21_IN_object_body_496 = Set[ 1 ]
9656
- TOKENS_FOLLOWING_attribute_IN_object_attribute_507 = Set[ 1 ]
9657
- TOKENS_FOLLOWING_ID_IN_object_attribute_512 = Set[ 55, 58 ]
9658
- TOKENS_FOLLOWING_equals_op_IN_object_attribute_514 = Set[ 5 ]
9659
- TOKENS_FOLLOWING_NULL_IN_object_attribute_516 = Set[ 4 ]
9660
- TOKENS_FOLLOWING_NL_IN_object_attribute_518 = Set[ 1, 4 ]
9661
- TOKENS_FOLLOWING_T__28_IN_state_dependency_534 = Set[ 7 ]
9662
- TOKENS_FOLLOWING_dep_effect_IN_state_dependency_538 = Set[ 4, 29 ]
9663
- TOKENS_FOLLOWING_NL_IN_state_dependency_540 = Set[ 4, 29 ]
9664
- TOKENS_FOLLOWING_T__29_IN_state_dependency_543 = Set[ 4, 20 ]
9665
- TOKENS_FOLLOWING_NL_IN_state_dependency_545 = Set[ 4, 20 ]
9666
- TOKENS_FOLLOWING_T__20_IN_state_dependency_548 = Set[ 4, 7, 21, 28, 50, 52, 53, 54, 57, 63 ]
9667
- TOKENS_FOLLOWING_NL_IN_state_dependency_552 = Set[ 4, 7, 21, 28, 50, 52, 53, 54, 57, 63 ]
9668
- TOKENS_FOLLOWING_constraint_body_IN_state_dependency_555 = Set[ 21 ]
9669
- TOKENS_FOLLOWING_T__21_IN_state_dependency_560 = Set[ 4, 30 ]
9670
- TOKENS_FOLLOWING_NL_IN_state_dependency_566 = Set[ 4, 30 ]
9671
- TOKENS_FOLLOWING_T__30_IN_state_dependency_569 = Set[ 4, 20 ]
9672
- TOKENS_FOLLOWING_NL_IN_state_dependency_571 = Set[ 4, 20 ]
9673
- TOKENS_FOLLOWING_T__20_IN_state_dependency_574 = Set[ 4, 7, 21, 28, 50, 52, 53, 54, 57, 63 ]
9674
- TOKENS_FOLLOWING_NL_IN_state_dependency_578 = Set[ 4, 7, 21, 28, 50, 52, 53, 54, 57, 63 ]
9675
- TOKENS_FOLLOWING_constraint_body_IN_state_dependency_581 = Set[ 21 ]
9676
- TOKENS_FOLLOWING_T__21_IN_state_dependency_585 = Set[ 4, 30 ]
9677
- TOKENS_FOLLOWING_NL_IN_state_dependency_591 = Set[ 1, 4 ]
9678
- TOKENS_FOLLOWING_reference_IN_dep_effect_603 = Set[ 55, 58 ]
9679
- TOKENS_FOLLOWING_equals_op_IN_dep_effect_605 = Set[ 5, 6, 7, 8, 9, 10, 37 ]
9680
- TOKENS_FOLLOWING_value_IN_dep_effect_612 = Set[ 1 ]
9681
- TOKENS_FOLLOWING_NULL_IN_dep_effect_618 = Set[ 1 ]
9682
- TOKENS_FOLLOWING_T__31_IN_operator_634 = Set[ 7 ]
9683
- TOKENS_FOLLOWING_ID_IN_operator_636 = Set[ 20 ]
9684
- TOKENS_FOLLOWING_T__20_IN_operator_638 = Set[ 4, 32, 33, 34, 35 ]
9685
- TOKENS_FOLLOWING_NL_IN_operator_640 = Set[ 4, 32, 33, 34, 35 ]
9686
- TOKENS_FOLLOWING_T__32_IN_operator_651 = Set[ 55, 58 ]
9687
- TOKENS_FOLLOWING_equals_op_IN_operator_653 = Set[ 8 ]
9688
- TOKENS_FOLLOWING_NUMBER_IN_operator_655 = Set[ 4 ]
9689
- TOKENS_FOLLOWING_NL_IN_operator_657 = Set[ 4, 32, 33, 34, 35 ]
9690
- TOKENS_FOLLOWING_op_conditions_IN_operator_676 = Set[ 4, 32, 33, 34, 35 ]
9691
- TOKENS_FOLLOWING_op_effects_IN_operator_679 = Set[ 21 ]
9692
- TOKENS_FOLLOWING_T__21_IN_operator_683 = Set[ 4 ]
9693
- TOKENS_FOLLOWING_NL_IN_operator_685 = Set[ 1, 4 ]
9694
- TOKENS_FOLLOWING_ID_IN_op_param_701 = Set[ 55, 58 ]
9695
- TOKENS_FOLLOWING_equals_op_IN_op_param_703 = Set[ 7 ]
9696
- TOKENS_FOLLOWING_reference_IN_op_param_705 = Set[ 4 ]
9697
- TOKENS_FOLLOWING_NL_IN_op_param_707 = Set[ 1, 4 ]
9698
- TOKENS_FOLLOWING_set_IN_op_conditions_723 = Set[ 20 ]
9699
- TOKENS_FOLLOWING_T__20_IN_op_conditions_731 = Set[ 4, 7, 21 ]
9700
- TOKENS_FOLLOWING_NL_IN_op_conditions_733 = Set[ 4, 7, 21 ]
9701
- TOKENS_FOLLOWING_op_statement_IN_op_conditions_742 = Set[ 7, 21 ]
9702
- TOKENS_FOLLOWING_T__21_IN_op_conditions_747 = Set[ 4 ]
9703
- TOKENS_FOLLOWING_NL_IN_op_conditions_749 = Set[ 1, 4 ]
9704
- TOKENS_FOLLOWING_T__35_IN_op_effects_765 = Set[ 20 ]
9705
- TOKENS_FOLLOWING_T__20_IN_op_effects_767 = Set[ 4, 7, 21 ]
9706
- TOKENS_FOLLOWING_NL_IN_op_effects_769 = Set[ 4, 7, 21 ]
9707
- TOKENS_FOLLOWING_op_statement_IN_op_effects_778 = Set[ 7, 21 ]
9708
- TOKENS_FOLLOWING_T__21_IN_op_effects_783 = Set[ 4 ]
9709
- TOKENS_FOLLOWING_NL_IN_op_effects_785 = Set[ 1, 4 ]
9710
- TOKENS_FOLLOWING_reference_IN_op_statement_801 = Set[ 55, 58 ]
9711
- TOKENS_FOLLOWING_equals_op_IN_op_statement_803 = Set[ 6, 7, 8, 9, 10, 37 ]
9712
- TOKENS_FOLLOWING_value_IN_op_statement_805 = Set[ 4 ]
9713
- TOKENS_FOLLOWING_NL_IN_op_statement_807 = Set[ 1, 4 ]
9714
- TOKENS_FOLLOWING_T__36_IN_procedure_823 = Set[ 7 ]
9715
- TOKENS_FOLLOWING_ID_IN_procedure_825 = Set[ 20, 37 ]
9716
- TOKENS_FOLLOWING_parameters_IN_procedure_833 = Set[ 20 ]
9717
- TOKENS_FOLLOWING_T__20_IN_procedure_836 = Set[ 4, 32, 33, 34, 35, 42 ]
9718
- TOKENS_FOLLOWING_NL_IN_procedure_838 = Set[ 4, 32, 33, 34, 35, 42 ]
9719
- TOKENS_FOLLOWING_T__32_IN_procedure_846 = Set[ 55, 58 ]
9720
- TOKENS_FOLLOWING_equals_op_IN_procedure_848 = Set[ 8 ]
9721
- TOKENS_FOLLOWING_NUMBER_IN_procedure_850 = Set[ 4 ]
9722
- TOKENS_FOLLOWING_NL_IN_procedure_860 = Set[ 4, 32, 33, 34, 35, 42 ]
9723
- TOKENS_FOLLOWING_conditions_IN_procedure_870 = Set[ 4, 32, 33, 34, 35, 42 ]
9724
- TOKENS_FOLLOWING_effects_IN_procedure_873 = Set[ 21 ]
9725
- TOKENS_FOLLOWING_T__21_IN_procedure_875 = Set[ 4 ]
9726
- TOKENS_FOLLOWING_NL_IN_procedure_877 = Set[ 1, 4 ]
9727
- TOKENS_FOLLOWING_T__37_IN_parameters_893 = Set[ 7 ]
9728
- TOKENS_FOLLOWING_parameter_IN_parameters_895 = Set[ 38, 39 ]
9729
- TOKENS_FOLLOWING_T__38_IN_parameters_898 = Set[ 4, 7 ]
9730
- TOKENS_FOLLOWING_NL_IN_parameters_900 = Set[ 4, 7 ]
9731
- TOKENS_FOLLOWING_parameter_IN_parameters_903 = Set[ 38, 39 ]
9732
- TOKENS_FOLLOWING_T__39_IN_parameters_907 = Set[ 1 ]
9733
- TOKENS_FOLLOWING_ID_IN_parameter_919 = Set[ 69 ]
9734
- TOKENS_FOLLOWING_reference_type_IN_parameter_921 = Set[ 1 ]
9735
- TOKENS_FOLLOWING_ID_IN_parameter_930 = Set[ 40 ]
9736
- TOKENS_FOLLOWING_T__40_IN_parameter_932 = Set[ 7 ]
9737
- TOKENS_FOLLOWING_path_IN_parameter_934 = Set[ 1 ]
9738
- TOKENS_FOLLOWING_ID_IN_parameter_943 = Set[ 41 ]
9739
- TOKENS_FOLLOWING_T__41_IN_parameter_945 = Set[ 7 ]
9740
- TOKENS_FOLLOWING_path_IN_parameter_947 = Set[ 1 ]
9741
- TOKENS_FOLLOWING_set_IN_conditions_962 = Set[ 20 ]
9742
- TOKENS_FOLLOWING_T__20_IN_conditions_976 = Set[ 4, 7, 21, 28, 50, 52, 53, 54, 57, 63 ]
9743
- TOKENS_FOLLOWING_NL_IN_conditions_978 = Set[ 4, 7, 21, 28, 50, 52, 53, 54, 57, 63 ]
9744
- TOKENS_FOLLOWING_constraint_body_IN_conditions_981 = Set[ 21 ]
9745
- TOKENS_FOLLOWING_T__21_IN_conditions_983 = Set[ 4 ]
9746
- TOKENS_FOLLOWING_NL_IN_conditions_985 = Set[ 1, 4 ]
9747
- TOKENS_FOLLOWING_set_IN_effects_1002 = Set[ 20 ]
9748
- TOKENS_FOLLOWING_T__20_IN_effects_1016 = Set[ 4, 7, 21, 50, 65 ]
9749
- TOKENS_FOLLOWING_NL_IN_effects_1018 = Set[ 4, 7, 21, 50, 65 ]
9750
- TOKENS_FOLLOWING_effect_body_IN_effects_1024 = Set[ 21 ]
9751
- TOKENS_FOLLOWING_T__21_IN_effects_1029 = Set[ 4 ]
9752
- TOKENS_FOLLOWING_NL_IN_effects_1031 = Set[ 1, 4 ]
9753
- TOKENS_FOLLOWING_T__43_IN_goal_constraint_1047 = Set[ 4, 20, 44 ]
9754
- TOKENS_FOLLOWING_T__44_IN_goal_constraint_1049 = Set[ 4, 20 ]
9755
- TOKENS_FOLLOWING_NL_IN_goal_constraint_1052 = Set[ 4, 20 ]
9756
- TOKENS_FOLLOWING_T__20_IN_goal_constraint_1061 = Set[ 4, 7, 21, 28, 45, 46, 47, 48, 49, 50, 52, 53, 54, 57, 63 ]
9757
- TOKENS_FOLLOWING_NL_IN_goal_constraint_1063 = Set[ 4, 7, 21, 28, 45, 46, 47, 48, 49, 50, 52, 53, 54, 57, 63 ]
9758
- TOKENS_FOLLOWING_goal_body_IN_goal_constraint_1066 = Set[ 7, 21, 28, 45, 46, 47, 48, 49, 50, 52, 53, 54, 57, 63 ]
9759
- TOKENS_FOLLOWING_T__21_IN_goal_constraint_1069 = Set[ 4 ]
9760
- TOKENS_FOLLOWING_NL_IN_goal_constraint_1071 = Set[ 1, 4 ]
9761
- TOKENS_FOLLOWING_constraint_statement_IN_goal_body_1094 = Set[ 4 ]
9762
- TOKENS_FOLLOWING_constraint_namespace_IN_goal_body_1107 = Set[ 4 ]
9763
- TOKENS_FOLLOWING_constraint_iterator_IN_goal_body_1114 = Set[ 4 ]
9764
- TOKENS_FOLLOWING_constraint_class_quantification_IN_goal_body_1121 = Set[ 4 ]
9765
- TOKENS_FOLLOWING_NL_IN_goal_body_1130 = Set[ 1, 4 ]
9766
- TOKENS_FOLLOWING_T__45_IN_goal_body_1137 = Set[ 4, 20 ]
9767
- TOKENS_FOLLOWING_NL_IN_goal_body_1139 = Set[ 4, 20 ]
9768
- TOKENS_FOLLOWING_T__20_IN_goal_body_1148 = Set[ 4, 7, 21, 28, 50, 52, 53, 54, 57, 63 ]
9769
- TOKENS_FOLLOWING_NL_IN_goal_body_1150 = Set[ 4, 7, 21, 28, 50, 52, 53, 54, 57, 63 ]
9770
- TOKENS_FOLLOWING_constraint_body_IN_goal_body_1153 = Set[ 21 ]
9771
- TOKENS_FOLLOWING_T__21_IN_goal_body_1155 = Set[ 4 ]
9772
- TOKENS_FOLLOWING_NL_IN_goal_body_1157 = Set[ 1, 4 ]
9773
- TOKENS_FOLLOWING_T__46_IN_goal_body_1167 = Set[ 4, 20 ]
9774
- TOKENS_FOLLOWING_NL_IN_goal_body_1169 = Set[ 4, 20 ]
9775
- TOKENS_FOLLOWING_T__20_IN_goal_body_1178 = Set[ 4, 7, 21, 28, 50, 52, 53, 54, 57, 63 ]
9776
- TOKENS_FOLLOWING_NL_IN_goal_body_1180 = Set[ 4, 7, 21, 28, 50, 52, 53, 54, 57, 63 ]
9777
- TOKENS_FOLLOWING_constraint_body_IN_goal_body_1183 = Set[ 21 ]
9778
- TOKENS_FOLLOWING_T__21_IN_goal_body_1185 = Set[ 4 ]
9779
- TOKENS_FOLLOWING_NL_IN_goal_body_1187 = Set[ 1, 4 ]
9780
- TOKENS_FOLLOWING_T__47_IN_goal_body_1201 = Set[ 8 ]
9781
- TOKENS_FOLLOWING_NUMBER_IN_goal_body_1203 = Set[ 4, 20 ]
9782
- TOKENS_FOLLOWING_NL_IN_goal_body_1205 = Set[ 4, 20 ]
9783
- TOKENS_FOLLOWING_T__20_IN_goal_body_1214 = Set[ 4, 7, 21, 28, 50, 52, 53, 54, 57, 63 ]
9784
- TOKENS_FOLLOWING_NL_IN_goal_body_1216 = Set[ 4, 7, 21, 28, 50, 52, 53, 54, 57, 63 ]
9785
- TOKENS_FOLLOWING_constraint_body_IN_goal_body_1219 = Set[ 21 ]
9786
- TOKENS_FOLLOWING_T__21_IN_goal_body_1221 = Set[ 4 ]
9787
- TOKENS_FOLLOWING_NL_IN_goal_body_1223 = Set[ 1, 4 ]
9788
- TOKENS_FOLLOWING_T__48_IN_goal_body_1233 = Set[ 4, 20 ]
9789
- TOKENS_FOLLOWING_NL_IN_goal_body_1235 = Set[ 4, 20 ]
9790
- TOKENS_FOLLOWING_T__20_IN_goal_body_1244 = Set[ 4, 7, 21, 28, 50, 52, 53, 54, 57, 63 ]
9791
- TOKENS_FOLLOWING_NL_IN_goal_body_1246 = Set[ 4, 7, 21, 28, 50, 52, 53, 54, 57, 63 ]
9792
- TOKENS_FOLLOWING_constraint_body_IN_goal_body_1249 = Set[ 21 ]
9793
- TOKENS_FOLLOWING_T__21_IN_goal_body_1251 = Set[ 4, 29, 47 ]
9794
- TOKENS_FOLLOWING_NL_IN_goal_body_1253 = Set[ 4, 29, 47 ]
9795
- TOKENS_FOLLOWING_T__29_IN_goal_body_1264 = Set[ 4, 20 ]
9796
- TOKENS_FOLLOWING_T__47_IN_goal_body_1271 = Set[ 8 ]
9797
- TOKENS_FOLLOWING_NUMBER_IN_goal_body_1273 = Set[ 4, 20 ]
9798
- TOKENS_FOLLOWING_NL_IN_goal_body_1285 = Set[ 4, 20 ]
9799
- TOKENS_FOLLOWING_T__20_IN_goal_body_1294 = Set[ 4, 7, 21, 28, 50, 52, 53, 54, 57, 63 ]
9800
- TOKENS_FOLLOWING_NL_IN_goal_body_1296 = Set[ 4, 7, 21, 28, 50, 52, 53, 54, 57, 63 ]
9801
- TOKENS_FOLLOWING_constraint_body_IN_goal_body_1299 = Set[ 21 ]
9802
- TOKENS_FOLLOWING_T__21_IN_goal_body_1301 = Set[ 4 ]
9803
- TOKENS_FOLLOWING_NL_IN_goal_body_1303 = Set[ 1, 4 ]
9804
- TOKENS_FOLLOWING_T__49_IN_goal_body_1321 = Set[ 4, 20 ]
9805
- TOKENS_FOLLOWING_NL_IN_goal_body_1323 = Set[ 4, 20 ]
9806
- TOKENS_FOLLOWING_T__20_IN_goal_body_1332 = Set[ 4, 7, 21, 28, 50, 52, 53, 54, 57, 63 ]
9807
- TOKENS_FOLLOWING_NL_IN_goal_body_1334 = Set[ 4, 7, 21, 28, 50, 52, 53, 54, 57, 63 ]
9808
- TOKENS_FOLLOWING_constraint_body_IN_goal_body_1337 = Set[ 21 ]
9809
- TOKENS_FOLLOWING_T__21_IN_goal_body_1339 = Set[ 4, 29 ]
9810
- TOKENS_FOLLOWING_NL_IN_goal_body_1341 = Set[ 4, 29 ]
9811
- TOKENS_FOLLOWING_T__29_IN_goal_body_1350 = Set[ 4, 20 ]
9812
- TOKENS_FOLLOWING_NL_IN_goal_body_1352 = Set[ 4, 20 ]
9813
- TOKENS_FOLLOWING_T__20_IN_goal_body_1361 = Set[ 4, 7, 21, 28, 50, 52, 53, 54, 57, 63 ]
9814
- TOKENS_FOLLOWING_NL_IN_goal_body_1363 = Set[ 4, 7, 21, 28, 50, 52, 53, 54, 57, 63 ]
9815
- TOKENS_FOLLOWING_constraint_body_IN_goal_body_1366 = Set[ 21 ]
9816
- TOKENS_FOLLOWING_T__21_IN_goal_body_1368 = Set[ 4 ]
9817
- TOKENS_FOLLOWING_NL_IN_goal_body_1370 = Set[ 1, 4 ]
9818
- TOKENS_FOLLOWING_T__20_IN_nested_constraint_1390 = Set[ 4, 7, 21, 28, 50, 52, 53, 54, 57, 63 ]
9819
- TOKENS_FOLLOWING_NL_IN_nested_constraint_1392 = Set[ 4, 7, 21, 28, 50, 52, 53, 54, 57, 63 ]
9820
- TOKENS_FOLLOWING_constraint_body_IN_nested_constraint_1395 = Set[ 21 ]
9821
- TOKENS_FOLLOWING_T__21_IN_nested_constraint_1397 = Set[ 1 ]
9822
- TOKENS_FOLLOWING_ID_IN_constraint_1408 = Set[ 44 ]
9823
- TOKENS_FOLLOWING_T__44_IN_constraint_1410 = Set[ 20 ]
9824
- TOKENS_FOLLOWING_T__20_IN_constraint_1418 = Set[ 4, 7, 21, 28, 50, 52, 53, 54, 57, 63 ]
9825
- TOKENS_FOLLOWING_NL_IN_constraint_1420 = Set[ 4, 7, 21, 28, 50, 52, 53, 54, 57, 63 ]
9826
- TOKENS_FOLLOWING_constraint_body_IN_constraint_1423 = Set[ 21 ]
9827
- TOKENS_FOLLOWING_T__21_IN_constraint_1425 = Set[ 4 ]
9828
- TOKENS_FOLLOWING_NL_IN_constraint_1427 = Set[ 1, 4 ]
9829
- TOKENS_FOLLOWING_constraint_statement_IN_constraint_body_1450 = Set[ 4 ]
9830
- TOKENS_FOLLOWING_constraint_namespace_IN_constraint_body_1463 = Set[ 4 ]
9831
- TOKENS_FOLLOWING_constraint_iterator_IN_constraint_body_1470 = Set[ 4 ]
9832
- TOKENS_FOLLOWING_constraint_class_quantification_IN_constraint_body_1477 = Set[ 4 ]
9833
- TOKENS_FOLLOWING_NL_IN_constraint_body_1486 = Set[ 1, 4, 7, 28, 50, 52, 53, 54, 57, 63 ]
9834
- TOKENS_FOLLOWING_path_IN_constraint_namespace_1500 = Set[ 4, 20 ]
9835
- TOKENS_FOLLOWING_NL_IN_constraint_namespace_1502 = Set[ 4, 20 ]
9836
- TOKENS_FOLLOWING_T__20_IN_constraint_namespace_1505 = Set[ 4, 7, 21, 28, 57, 63 ]
9837
- TOKENS_FOLLOWING_NL_IN_constraint_namespace_1507 = Set[ 4, 7, 21, 28, 57, 63 ]
9838
- TOKENS_FOLLOWING_constraint_statement_IN_constraint_namespace_1511 = Set[ 4 ]
9839
- TOKENS_FOLLOWING_NL_IN_constraint_namespace_1519 = Set[ 4, 7, 21, 28, 57, 63 ]
9840
- TOKENS_FOLLOWING_T__21_IN_constraint_namespace_1524 = Set[ 1 ]
9841
- TOKENS_FOLLOWING_T__50_IN_constraint_iterator_1535 = Set[ 37 ]
9842
- TOKENS_FOLLOWING_T__37_IN_constraint_iterator_1537 = Set[ 7 ]
9843
- TOKENS_FOLLOWING_path_IN_constraint_iterator_1539 = Set[ 51 ]
9844
- TOKENS_FOLLOWING_T__51_IN_constraint_iterator_1541 = Set[ 7 ]
9845
- TOKENS_FOLLOWING_ID_IN_constraint_iterator_1543 = Set[ 39 ]
9846
- TOKENS_FOLLOWING_T__39_IN_constraint_iterator_1545 = Set[ 4, 20 ]
9847
- TOKENS_FOLLOWING_NL_IN_constraint_iterator_1547 = Set[ 4, 20 ]
9848
- TOKENS_FOLLOWING_T__20_IN_constraint_iterator_1550 = Set[ 4 ]
9849
- TOKENS_FOLLOWING_NL_IN_constraint_iterator_1552 = Set[ 4, 7, 21, 28, 57, 63 ]
9850
- TOKENS_FOLLOWING_constraint_statement_IN_constraint_iterator_1562 = Set[ 4 ]
9851
- TOKENS_FOLLOWING_NL_IN_constraint_iterator_1570 = Set[ 4, 7, 21, 28, 57, 63 ]
9852
- TOKENS_FOLLOWING_T__21_IN_constraint_iterator_1577 = Set[ 1 ]
9622
+ TOKENS_FOLLOWING_set_IN_class_definition_269 = Set[ 7 ]
9623
+ TOKENS_FOLLOWING_ID_IN_class_definition_275 = Set[ 1, 4, 20, 25 ]
9624
+ TOKENS_FOLLOWING_extends_class_IN_class_definition_284 = Set[ 1, 4, 20 ]
9625
+ TOKENS_FOLLOWING_T__20_IN_class_definition_298 = Set[ 4, 7, 21, 23, 24, 37 ]
9626
+ TOKENS_FOLLOWING_NL_IN_class_definition_300 = Set[ 4, 7, 21, 23, 24, 37 ]
9627
+ TOKENS_FOLLOWING_attribute_IN_class_definition_305 = Set[ 7, 21, 23, 24, 37 ]
9628
+ TOKENS_FOLLOWING_procedure_IN_class_definition_309 = Set[ 7, 21, 23, 24, 37 ]
9629
+ TOKENS_FOLLOWING_T__21_IN_class_definition_314 = Set[ 1, 4 ]
9630
+ TOKENS_FOLLOWING_NL_IN_class_definition_318 = Set[ 1, 4 ]
9631
+ TOKENS_FOLLOWING_T__25_IN_extends_class_339 = Set[ 7 ]
9632
+ TOKENS_FOLLOWING_path_IN_extends_class_341 = Set[ 1 ]
9633
+ TOKENS_FOLLOWING_ID_IN_attribute_356 = Set[ 56, 59 ]
9634
+ TOKENS_FOLLOWING_equals_op_IN_attribute_358 = Set[ 6, 7, 8, 9, 10, 38 ]
9635
+ TOKENS_FOLLOWING_value_IN_attribute_360 = Set[ 4 ]
9636
+ TOKENS_FOLLOWING_NL_IN_attribute_362 = Set[ 1, 4 ]
9637
+ TOKENS_FOLLOWING_ID_IN_attribute_372 = Set[ 70 ]
9638
+ TOKENS_FOLLOWING_reference_type_IN_attribute_374 = Set[ 4 ]
9639
+ TOKENS_FOLLOWING_NL_IN_attribute_376 = Set[ 1, 4 ]
9640
+ TOKENS_FOLLOWING_ID_IN_attribute_386 = Set[ 42 ]
9641
+ TOKENS_FOLLOWING_set_type_IN_attribute_388 = Set[ 4 ]
9642
+ TOKENS_FOLLOWING_NL_IN_attribute_390 = Set[ 1, 4 ]
9643
+ TOKENS_FOLLOWING_ID_IN_attribute_400 = Set[ 71 ]
9644
+ TOKENS_FOLLOWING_probability_op_IN_attribute_402 = Set[ 6, 7, 8, 9, 10, 38 ]
9645
+ TOKENS_FOLLOWING_set_value_IN_attribute_404 = Set[ 4 ]
9646
+ TOKENS_FOLLOWING_NL_IN_attribute_406 = Set[ 1, 4 ]
9647
+ TOKENS_FOLLOWING_object_def_IN_attribute_416 = Set[ 4 ]
9648
+ TOKENS_FOLLOWING_NL_IN_attribute_418 = Set[ 1, 4 ]
9649
+ TOKENS_FOLLOWING_ID_IN_object_def_430 = Set[ 1, 20, 26 ]
9650
+ TOKENS_FOLLOWING_T__26_IN_object_def_439 = Set[ 7 ]
9651
+ TOKENS_FOLLOWING_path_IN_object_def_441 = Set[ 1, 20, 27 ]
9652
+ TOKENS_FOLLOWING_T__27_IN_object_def_443 = Set[ 8 ]
9653
+ TOKENS_FOLLOWING_NUMBER_IN_object_def_445 = Set[ 28 ]
9654
+ TOKENS_FOLLOWING_T__28_IN_object_def_449 = Set[ 1, 20 ]
9655
+ TOKENS_FOLLOWING_object_body_IN_object_def_464 = Set[ 1 ]
9656
+ TOKENS_FOLLOWING_T__20_IN_object_body_480 = Set[ 4, 7, 21, 29, 32 ]
9657
+ TOKENS_FOLLOWING_NL_IN_object_body_482 = Set[ 4, 7, 21, 29, 32 ]
9658
+ TOKENS_FOLLOWING_object_attribute_IN_object_body_487 = Set[ 7, 21, 29, 32 ]
9659
+ TOKENS_FOLLOWING_state_dependency_IN_object_body_491 = Set[ 7, 21, 29, 32 ]
9660
+ TOKENS_FOLLOWING_operator_IN_object_body_495 = Set[ 7, 21, 29, 32 ]
9661
+ TOKENS_FOLLOWING_T__21_IN_object_body_500 = Set[ 1 ]
9662
+ TOKENS_FOLLOWING_attribute_IN_object_attribute_511 = Set[ 1 ]
9663
+ TOKENS_FOLLOWING_ID_IN_object_attribute_516 = Set[ 56, 59 ]
9664
+ TOKENS_FOLLOWING_equals_op_IN_object_attribute_518 = Set[ 5 ]
9665
+ TOKENS_FOLLOWING_NULL_IN_object_attribute_520 = Set[ 4 ]
9666
+ TOKENS_FOLLOWING_NL_IN_object_attribute_522 = Set[ 1, 4 ]
9667
+ TOKENS_FOLLOWING_T__29_IN_state_dependency_538 = Set[ 7 ]
9668
+ TOKENS_FOLLOWING_dep_effect_IN_state_dependency_542 = Set[ 4, 30 ]
9669
+ TOKENS_FOLLOWING_NL_IN_state_dependency_544 = Set[ 4, 30 ]
9670
+ TOKENS_FOLLOWING_T__30_IN_state_dependency_547 = Set[ 4, 20 ]
9671
+ TOKENS_FOLLOWING_NL_IN_state_dependency_549 = Set[ 4, 20 ]
9672
+ TOKENS_FOLLOWING_T__20_IN_state_dependency_552 = Set[ 4, 7, 21, 29, 51, 53, 54, 55, 58, 64 ]
9673
+ TOKENS_FOLLOWING_NL_IN_state_dependency_556 = Set[ 4, 7, 21, 29, 51, 53, 54, 55, 58, 64 ]
9674
+ TOKENS_FOLLOWING_constraint_body_IN_state_dependency_559 = Set[ 21 ]
9675
+ TOKENS_FOLLOWING_T__21_IN_state_dependency_564 = Set[ 4, 31 ]
9676
+ TOKENS_FOLLOWING_NL_IN_state_dependency_570 = Set[ 4, 31 ]
9677
+ TOKENS_FOLLOWING_T__31_IN_state_dependency_573 = Set[ 4, 20 ]
9678
+ TOKENS_FOLLOWING_NL_IN_state_dependency_575 = Set[ 4, 20 ]
9679
+ TOKENS_FOLLOWING_T__20_IN_state_dependency_578 = Set[ 4, 7, 21, 29, 51, 53, 54, 55, 58, 64 ]
9680
+ TOKENS_FOLLOWING_NL_IN_state_dependency_582 = Set[ 4, 7, 21, 29, 51, 53, 54, 55, 58, 64 ]
9681
+ TOKENS_FOLLOWING_constraint_body_IN_state_dependency_585 = Set[ 21 ]
9682
+ TOKENS_FOLLOWING_T__21_IN_state_dependency_589 = Set[ 4, 31 ]
9683
+ TOKENS_FOLLOWING_NL_IN_state_dependency_595 = Set[ 1, 4 ]
9684
+ TOKENS_FOLLOWING_reference_IN_dep_effect_607 = Set[ 56, 59 ]
9685
+ TOKENS_FOLLOWING_equals_op_IN_dep_effect_609 = Set[ 5, 6, 7, 8, 9, 10, 38 ]
9686
+ TOKENS_FOLLOWING_value_IN_dep_effect_616 = Set[ 1 ]
9687
+ TOKENS_FOLLOWING_NULL_IN_dep_effect_622 = Set[ 1 ]
9688
+ TOKENS_FOLLOWING_T__32_IN_operator_638 = Set[ 7 ]
9689
+ TOKENS_FOLLOWING_ID_IN_operator_640 = Set[ 20 ]
9690
+ TOKENS_FOLLOWING_T__20_IN_operator_642 = Set[ 4, 33, 34, 35, 36 ]
9691
+ TOKENS_FOLLOWING_NL_IN_operator_644 = Set[ 4, 33, 34, 35, 36 ]
9692
+ TOKENS_FOLLOWING_T__33_IN_operator_655 = Set[ 56, 59 ]
9693
+ TOKENS_FOLLOWING_equals_op_IN_operator_657 = Set[ 8 ]
9694
+ TOKENS_FOLLOWING_NUMBER_IN_operator_659 = Set[ 4 ]
9695
+ TOKENS_FOLLOWING_NL_IN_operator_661 = Set[ 4, 33, 34, 35, 36 ]
9696
+ TOKENS_FOLLOWING_op_conditions_IN_operator_680 = Set[ 4, 33, 34, 35, 36 ]
9697
+ TOKENS_FOLLOWING_op_effects_IN_operator_683 = Set[ 21 ]
9698
+ TOKENS_FOLLOWING_T__21_IN_operator_687 = Set[ 4 ]
9699
+ TOKENS_FOLLOWING_NL_IN_operator_689 = Set[ 1, 4 ]
9700
+ TOKENS_FOLLOWING_ID_IN_op_param_705 = Set[ 56, 59 ]
9701
+ TOKENS_FOLLOWING_equals_op_IN_op_param_707 = Set[ 7 ]
9702
+ TOKENS_FOLLOWING_reference_IN_op_param_709 = Set[ 4 ]
9703
+ TOKENS_FOLLOWING_NL_IN_op_param_711 = Set[ 1, 4 ]
9704
+ TOKENS_FOLLOWING_set_IN_op_conditions_727 = Set[ 20 ]
9705
+ TOKENS_FOLLOWING_T__20_IN_op_conditions_735 = Set[ 4, 7, 21 ]
9706
+ TOKENS_FOLLOWING_NL_IN_op_conditions_737 = Set[ 4, 7, 21 ]
9707
+ TOKENS_FOLLOWING_op_statement_IN_op_conditions_746 = Set[ 7, 21 ]
9708
+ TOKENS_FOLLOWING_T__21_IN_op_conditions_751 = Set[ 4 ]
9709
+ TOKENS_FOLLOWING_NL_IN_op_conditions_753 = Set[ 1, 4 ]
9710
+ TOKENS_FOLLOWING_T__36_IN_op_effects_769 = Set[ 20 ]
9711
+ TOKENS_FOLLOWING_T__20_IN_op_effects_771 = Set[ 4, 7, 21 ]
9712
+ TOKENS_FOLLOWING_NL_IN_op_effects_773 = Set[ 4, 7, 21 ]
9713
+ TOKENS_FOLLOWING_op_statement_IN_op_effects_782 = Set[ 7, 21 ]
9714
+ TOKENS_FOLLOWING_T__21_IN_op_effects_787 = Set[ 4 ]
9715
+ TOKENS_FOLLOWING_NL_IN_op_effects_789 = Set[ 1, 4 ]
9716
+ TOKENS_FOLLOWING_reference_IN_op_statement_805 = Set[ 56, 59 ]
9717
+ TOKENS_FOLLOWING_equals_op_IN_op_statement_807 = Set[ 6, 7, 8, 9, 10, 38 ]
9718
+ TOKENS_FOLLOWING_value_IN_op_statement_809 = Set[ 4 ]
9719
+ TOKENS_FOLLOWING_NL_IN_op_statement_811 = Set[ 1, 4 ]
9720
+ TOKENS_FOLLOWING_T__37_IN_procedure_827 = Set[ 7 ]
9721
+ TOKENS_FOLLOWING_ID_IN_procedure_829 = Set[ 20, 38 ]
9722
+ TOKENS_FOLLOWING_parameters_IN_procedure_837 = Set[ 20 ]
9723
+ TOKENS_FOLLOWING_T__20_IN_procedure_840 = Set[ 4, 33, 34, 35, 36, 43 ]
9724
+ TOKENS_FOLLOWING_NL_IN_procedure_842 = Set[ 4, 33, 34, 35, 36, 43 ]
9725
+ TOKENS_FOLLOWING_T__33_IN_procedure_850 = Set[ 56, 59 ]
9726
+ TOKENS_FOLLOWING_equals_op_IN_procedure_852 = Set[ 8 ]
9727
+ TOKENS_FOLLOWING_NUMBER_IN_procedure_854 = Set[ 4 ]
9728
+ TOKENS_FOLLOWING_NL_IN_procedure_864 = Set[ 4, 33, 34, 35, 36, 43 ]
9729
+ TOKENS_FOLLOWING_conditions_IN_procedure_874 = Set[ 4, 33, 34, 35, 36, 43 ]
9730
+ TOKENS_FOLLOWING_effects_IN_procedure_877 = Set[ 21 ]
9731
+ TOKENS_FOLLOWING_T__21_IN_procedure_879 = Set[ 4 ]
9732
+ TOKENS_FOLLOWING_NL_IN_procedure_881 = Set[ 1, 4 ]
9733
+ TOKENS_FOLLOWING_T__38_IN_parameters_897 = Set[ 7 ]
9734
+ TOKENS_FOLLOWING_parameter_IN_parameters_899 = Set[ 39, 40 ]
9735
+ TOKENS_FOLLOWING_T__39_IN_parameters_902 = Set[ 4, 7 ]
9736
+ TOKENS_FOLLOWING_NL_IN_parameters_904 = Set[ 4, 7 ]
9737
+ TOKENS_FOLLOWING_parameter_IN_parameters_907 = Set[ 39, 40 ]
9738
+ TOKENS_FOLLOWING_T__40_IN_parameters_911 = Set[ 1 ]
9739
+ TOKENS_FOLLOWING_ID_IN_parameter_923 = Set[ 70 ]
9740
+ TOKENS_FOLLOWING_reference_type_IN_parameter_925 = Set[ 1 ]
9741
+ TOKENS_FOLLOWING_ID_IN_parameter_934 = Set[ 41 ]
9742
+ TOKENS_FOLLOWING_T__41_IN_parameter_936 = Set[ 7 ]
9743
+ TOKENS_FOLLOWING_path_IN_parameter_938 = Set[ 1 ]
9744
+ TOKENS_FOLLOWING_ID_IN_parameter_947 = Set[ 42 ]
9745
+ TOKENS_FOLLOWING_T__42_IN_parameter_949 = Set[ 7 ]
9746
+ TOKENS_FOLLOWING_path_IN_parameter_951 = Set[ 1 ]
9747
+ TOKENS_FOLLOWING_set_IN_conditions_966 = Set[ 20 ]
9748
+ TOKENS_FOLLOWING_T__20_IN_conditions_980 = Set[ 4, 7, 21, 29, 51, 53, 54, 55, 58, 64 ]
9749
+ TOKENS_FOLLOWING_NL_IN_conditions_982 = Set[ 4, 7, 21, 29, 51, 53, 54, 55, 58, 64 ]
9750
+ TOKENS_FOLLOWING_constraint_body_IN_conditions_985 = Set[ 21 ]
9751
+ TOKENS_FOLLOWING_T__21_IN_conditions_987 = Set[ 4 ]
9752
+ TOKENS_FOLLOWING_NL_IN_conditions_989 = Set[ 1, 4 ]
9753
+ TOKENS_FOLLOWING_set_IN_effects_1006 = Set[ 20 ]
9754
+ TOKENS_FOLLOWING_T__20_IN_effects_1020 = Set[ 4, 7, 21, 51, 66 ]
9755
+ TOKENS_FOLLOWING_NL_IN_effects_1022 = Set[ 4, 7, 21, 51, 66 ]
9756
+ TOKENS_FOLLOWING_effect_body_IN_effects_1028 = Set[ 21 ]
9757
+ TOKENS_FOLLOWING_T__21_IN_effects_1033 = Set[ 4 ]
9758
+ TOKENS_FOLLOWING_NL_IN_effects_1035 = Set[ 1, 4 ]
9759
+ TOKENS_FOLLOWING_T__44_IN_goal_constraint_1051 = Set[ 4, 20, 45 ]
9760
+ TOKENS_FOLLOWING_T__45_IN_goal_constraint_1053 = Set[ 4, 20 ]
9761
+ TOKENS_FOLLOWING_NL_IN_goal_constraint_1056 = Set[ 4, 20 ]
9762
+ TOKENS_FOLLOWING_T__20_IN_goal_constraint_1065 = Set[ 4, 7, 21, 29, 46, 47, 48, 49, 50, 51, 53, 54, 55, 58, 64 ]
9763
+ TOKENS_FOLLOWING_NL_IN_goal_constraint_1067 = Set[ 4, 7, 21, 29, 46, 47, 48, 49, 50, 51, 53, 54, 55, 58, 64 ]
9764
+ TOKENS_FOLLOWING_goal_body_IN_goal_constraint_1070 = Set[ 7, 21, 29, 46, 47, 48, 49, 50, 51, 53, 54, 55, 58, 64 ]
9765
+ TOKENS_FOLLOWING_T__21_IN_goal_constraint_1073 = Set[ 4 ]
9766
+ TOKENS_FOLLOWING_NL_IN_goal_constraint_1075 = Set[ 1, 4 ]
9767
+ TOKENS_FOLLOWING_constraint_statement_IN_goal_body_1098 = Set[ 4 ]
9768
+ TOKENS_FOLLOWING_constraint_namespace_IN_goal_body_1111 = Set[ 4 ]
9769
+ TOKENS_FOLLOWING_constraint_iterator_IN_goal_body_1118 = Set[ 4 ]
9770
+ TOKENS_FOLLOWING_constraint_class_quantification_IN_goal_body_1125 = Set[ 4 ]
9771
+ TOKENS_FOLLOWING_NL_IN_goal_body_1134 = Set[ 1, 4 ]
9772
+ TOKENS_FOLLOWING_T__46_IN_goal_body_1141 = Set[ 4, 20 ]
9773
+ TOKENS_FOLLOWING_NL_IN_goal_body_1143 = Set[ 4, 20 ]
9774
+ TOKENS_FOLLOWING_T__20_IN_goal_body_1152 = Set[ 4, 7, 21, 29, 51, 53, 54, 55, 58, 64 ]
9775
+ TOKENS_FOLLOWING_NL_IN_goal_body_1154 = Set[ 4, 7, 21, 29, 51, 53, 54, 55, 58, 64 ]
9776
+ TOKENS_FOLLOWING_constraint_body_IN_goal_body_1157 = Set[ 21 ]
9777
+ TOKENS_FOLLOWING_T__21_IN_goal_body_1159 = Set[ 4 ]
9778
+ TOKENS_FOLLOWING_NL_IN_goal_body_1161 = Set[ 1, 4 ]
9779
+ TOKENS_FOLLOWING_T__47_IN_goal_body_1171 = Set[ 4, 20 ]
9780
+ TOKENS_FOLLOWING_NL_IN_goal_body_1173 = Set[ 4, 20 ]
9781
+ TOKENS_FOLLOWING_T__20_IN_goal_body_1182 = Set[ 4, 7, 21, 29, 51, 53, 54, 55, 58, 64 ]
9782
+ TOKENS_FOLLOWING_NL_IN_goal_body_1184 = Set[ 4, 7, 21, 29, 51, 53, 54, 55, 58, 64 ]
9783
+ TOKENS_FOLLOWING_constraint_body_IN_goal_body_1187 = Set[ 21 ]
9784
+ TOKENS_FOLLOWING_T__21_IN_goal_body_1189 = Set[ 4 ]
9785
+ TOKENS_FOLLOWING_NL_IN_goal_body_1191 = Set[ 1, 4 ]
9786
+ TOKENS_FOLLOWING_T__48_IN_goal_body_1205 = Set[ 8 ]
9787
+ TOKENS_FOLLOWING_NUMBER_IN_goal_body_1207 = Set[ 4, 20 ]
9788
+ TOKENS_FOLLOWING_NL_IN_goal_body_1209 = Set[ 4, 20 ]
9789
+ TOKENS_FOLLOWING_T__20_IN_goal_body_1218 = Set[ 4, 7, 21, 29, 51, 53, 54, 55, 58, 64 ]
9790
+ TOKENS_FOLLOWING_NL_IN_goal_body_1220 = Set[ 4, 7, 21, 29, 51, 53, 54, 55, 58, 64 ]
9791
+ TOKENS_FOLLOWING_constraint_body_IN_goal_body_1223 = Set[ 21 ]
9792
+ TOKENS_FOLLOWING_T__21_IN_goal_body_1225 = Set[ 4 ]
9793
+ TOKENS_FOLLOWING_NL_IN_goal_body_1227 = Set[ 1, 4 ]
9794
+ TOKENS_FOLLOWING_T__49_IN_goal_body_1237 = Set[ 4, 20 ]
9795
+ TOKENS_FOLLOWING_NL_IN_goal_body_1239 = Set[ 4, 20 ]
9796
+ TOKENS_FOLLOWING_T__20_IN_goal_body_1248 = Set[ 4, 7, 21, 29, 51, 53, 54, 55, 58, 64 ]
9797
+ TOKENS_FOLLOWING_NL_IN_goal_body_1250 = Set[ 4, 7, 21, 29, 51, 53, 54, 55, 58, 64 ]
9798
+ TOKENS_FOLLOWING_constraint_body_IN_goal_body_1253 = Set[ 21 ]
9799
+ TOKENS_FOLLOWING_T__21_IN_goal_body_1255 = Set[ 4, 30, 48 ]
9800
+ TOKENS_FOLLOWING_NL_IN_goal_body_1257 = Set[ 4, 30, 48 ]
9801
+ TOKENS_FOLLOWING_T__30_IN_goal_body_1268 = Set[ 4, 20 ]
9802
+ TOKENS_FOLLOWING_T__48_IN_goal_body_1275 = Set[ 8 ]
9803
+ TOKENS_FOLLOWING_NUMBER_IN_goal_body_1277 = Set[ 4, 20 ]
9804
+ TOKENS_FOLLOWING_NL_IN_goal_body_1289 = Set[ 4, 20 ]
9805
+ TOKENS_FOLLOWING_T__20_IN_goal_body_1298 = Set[ 4, 7, 21, 29, 51, 53, 54, 55, 58, 64 ]
9806
+ TOKENS_FOLLOWING_NL_IN_goal_body_1300 = Set[ 4, 7, 21, 29, 51, 53, 54, 55, 58, 64 ]
9807
+ TOKENS_FOLLOWING_constraint_body_IN_goal_body_1303 = Set[ 21 ]
9808
+ TOKENS_FOLLOWING_T__21_IN_goal_body_1305 = Set[ 4 ]
9809
+ TOKENS_FOLLOWING_NL_IN_goal_body_1307 = Set[ 1, 4 ]
9810
+ TOKENS_FOLLOWING_T__50_IN_goal_body_1325 = Set[ 4, 20 ]
9811
+ TOKENS_FOLLOWING_NL_IN_goal_body_1327 = Set[ 4, 20 ]
9812
+ TOKENS_FOLLOWING_T__20_IN_goal_body_1336 = Set[ 4, 7, 21, 29, 51, 53, 54, 55, 58, 64 ]
9813
+ TOKENS_FOLLOWING_NL_IN_goal_body_1338 = Set[ 4, 7, 21, 29, 51, 53, 54, 55, 58, 64 ]
9814
+ TOKENS_FOLLOWING_constraint_body_IN_goal_body_1341 = Set[ 21 ]
9815
+ TOKENS_FOLLOWING_T__21_IN_goal_body_1343 = Set[ 4, 30 ]
9816
+ TOKENS_FOLLOWING_NL_IN_goal_body_1345 = Set[ 4, 30 ]
9817
+ TOKENS_FOLLOWING_T__30_IN_goal_body_1354 = Set[ 4, 20 ]
9818
+ TOKENS_FOLLOWING_NL_IN_goal_body_1356 = Set[ 4, 20 ]
9819
+ TOKENS_FOLLOWING_T__20_IN_goal_body_1365 = Set[ 4, 7, 21, 29, 51, 53, 54, 55, 58, 64 ]
9820
+ TOKENS_FOLLOWING_NL_IN_goal_body_1367 = Set[ 4, 7, 21, 29, 51, 53, 54, 55, 58, 64 ]
9821
+ TOKENS_FOLLOWING_constraint_body_IN_goal_body_1370 = Set[ 21 ]
9822
+ TOKENS_FOLLOWING_T__21_IN_goal_body_1372 = Set[ 4 ]
9823
+ TOKENS_FOLLOWING_NL_IN_goal_body_1374 = Set[ 1, 4 ]
9824
+ TOKENS_FOLLOWING_T__20_IN_nested_constraint_1394 = Set[ 4, 7, 21, 29, 51, 53, 54, 55, 58, 64 ]
9825
+ TOKENS_FOLLOWING_NL_IN_nested_constraint_1396 = Set[ 4, 7, 21, 29, 51, 53, 54, 55, 58, 64 ]
9826
+ TOKENS_FOLLOWING_constraint_body_IN_nested_constraint_1399 = Set[ 21 ]
9827
+ TOKENS_FOLLOWING_T__21_IN_nested_constraint_1401 = Set[ 1 ]
9828
+ TOKENS_FOLLOWING_ID_IN_constraint_1412 = Set[ 45 ]
9829
+ TOKENS_FOLLOWING_T__45_IN_constraint_1414 = Set[ 20 ]
9830
+ TOKENS_FOLLOWING_T__20_IN_constraint_1422 = Set[ 4, 7, 21, 29, 51, 53, 54, 55, 58, 64 ]
9831
+ TOKENS_FOLLOWING_NL_IN_constraint_1424 = Set[ 4, 7, 21, 29, 51, 53, 54, 55, 58, 64 ]
9832
+ TOKENS_FOLLOWING_constraint_body_IN_constraint_1427 = Set[ 21 ]
9833
+ TOKENS_FOLLOWING_T__21_IN_constraint_1429 = Set[ 4 ]
9834
+ TOKENS_FOLLOWING_NL_IN_constraint_1431 = Set[ 1, 4 ]
9835
+ TOKENS_FOLLOWING_constraint_statement_IN_constraint_body_1454 = Set[ 4 ]
9836
+ TOKENS_FOLLOWING_constraint_namespace_IN_constraint_body_1467 = Set[ 4 ]
9837
+ TOKENS_FOLLOWING_constraint_iterator_IN_constraint_body_1474 = Set[ 4 ]
9838
+ TOKENS_FOLLOWING_constraint_class_quantification_IN_constraint_body_1481 = Set[ 4 ]
9839
+ TOKENS_FOLLOWING_NL_IN_constraint_body_1490 = Set[ 1, 4, 7, 29, 51, 53, 54, 55, 58, 64 ]
9840
+ TOKENS_FOLLOWING_path_IN_constraint_namespace_1504 = Set[ 4, 20 ]
9841
+ TOKENS_FOLLOWING_NL_IN_constraint_namespace_1506 = Set[ 4, 20 ]
9842
+ TOKENS_FOLLOWING_T__20_IN_constraint_namespace_1509 = Set[ 4, 7, 21, 29, 58, 64 ]
9843
+ TOKENS_FOLLOWING_NL_IN_constraint_namespace_1511 = Set[ 4, 7, 21, 29, 58, 64 ]
9844
+ TOKENS_FOLLOWING_constraint_statement_IN_constraint_namespace_1515 = Set[ 4 ]
9845
+ TOKENS_FOLLOWING_NL_IN_constraint_namespace_1523 = Set[ 4, 7, 21, 29, 58, 64 ]
9846
+ TOKENS_FOLLOWING_T__21_IN_constraint_namespace_1528 = Set[ 1 ]
9847
+ TOKENS_FOLLOWING_T__51_IN_constraint_iterator_1539 = Set[ 38 ]
9848
+ TOKENS_FOLLOWING_T__38_IN_constraint_iterator_1541 = Set[ 7 ]
9849
+ TOKENS_FOLLOWING_path_IN_constraint_iterator_1543 = Set[ 52 ]
9850
+ TOKENS_FOLLOWING_T__52_IN_constraint_iterator_1545 = Set[ 7 ]
9851
+ TOKENS_FOLLOWING_ID_IN_constraint_iterator_1547 = Set[ 40 ]
9852
+ TOKENS_FOLLOWING_T__40_IN_constraint_iterator_1549 = Set[ 4, 20 ]
9853
+ TOKENS_FOLLOWING_NL_IN_constraint_iterator_1551 = Set[ 4, 20 ]
9854
+ TOKENS_FOLLOWING_T__20_IN_constraint_iterator_1554 = Set[ 4 ]
9855
+ TOKENS_FOLLOWING_NL_IN_constraint_iterator_1556 = Set[ 4, 7, 21, 29, 58, 64 ]
9856
+ TOKENS_FOLLOWING_constraint_statement_IN_constraint_iterator_1566 = Set[ 4 ]
9857
+ TOKENS_FOLLOWING_NL_IN_constraint_iterator_1574 = Set[ 4, 7, 21, 29, 58, 64 ]
9858
+ TOKENS_FOLLOWING_T__21_IN_constraint_iterator_1581 = Set[ 1 ]
9853
9859
  TOKENS_FOLLOWING_set_IN_quantification_keyword_0 = Set[ 1 ]
9854
- TOKENS_FOLLOWING_quantification_keyword_IN_constraint_class_quantification_1613 = Set[ 37 ]
9855
- TOKENS_FOLLOWING_T__37_IN_constraint_class_quantification_1615 = Set[ 7 ]
9856
- TOKENS_FOLLOWING_path_IN_constraint_class_quantification_1617 = Set[ 51 ]
9857
- TOKENS_FOLLOWING_T__51_IN_constraint_class_quantification_1619 = Set[ 7 ]
9858
- TOKENS_FOLLOWING_ID_IN_constraint_class_quantification_1621 = Set[ 39 ]
9859
- TOKENS_FOLLOWING_T__39_IN_constraint_class_quantification_1623 = Set[ 4, 20, 55, 76, 77, 78, 79 ]
9860
- TOKENS_FOLLOWING_binary_comp_IN_constraint_class_quantification_1635 = Set[ 8 ]
9861
- TOKENS_FOLLOWING_T__55_IN_constraint_class_quantification_1648 = Set[ 8 ]
9862
- TOKENS_FOLLOWING_NUMBER_IN_constraint_class_quantification_1664 = Set[ 4, 20 ]
9863
- TOKENS_FOLLOWING_NL_IN_constraint_class_quantification_1678 = Set[ 4, 20 ]
9864
- TOKENS_FOLLOWING_T__20_IN_constraint_class_quantification_1681 = Set[ 4 ]
9865
- TOKENS_FOLLOWING_NL_IN_constraint_class_quantification_1683 = Set[ 4, 7, 21, 28, 50, 56, 57, 63 ]
9866
- TOKENS_FOLLOWING_constraint_statement_IN_constraint_class_quantification_1690 = Set[ 4 ]
9867
- TOKENS_FOLLOWING_NL_IN_constraint_class_quantification_1700 = Set[ 4, 7, 21, 28, 50, 56, 57, 63 ]
9868
- TOKENS_FOLLOWING_constraint_different_IN_constraint_class_quantification_1707 = Set[ 4 ]
9869
- TOKENS_FOLLOWING_NL_IN_constraint_class_quantification_1709 = Set[ 4, 7, 21, 28, 50, 56, 57, 63 ]
9870
- TOKENS_FOLLOWING_constraint_iterator_IN_constraint_class_quantification_1716 = Set[ 4 ]
9871
- TOKENS_FOLLOWING_NL_IN_constraint_class_quantification_1718 = Set[ 4, 7, 21, 28, 50, 56, 57, 63 ]
9872
- TOKENS_FOLLOWING_T__21_IN_constraint_class_quantification_1726 = Set[ 1 ]
9873
- TOKENS_FOLLOWING_T__56_IN_constraint_different_1745 = Set[ 37 ]
9874
- TOKENS_FOLLOWING_T__37_IN_constraint_different_1747 = Set[ 7 ]
9875
- TOKENS_FOLLOWING_path_IN_constraint_different_1749 = Set[ 39 ]
9876
- TOKENS_FOLLOWING_T__39_IN_constraint_different_1751 = Set[ 1 ]
9877
- TOKENS_FOLLOWING_reference_IN_constraint_statement_1770 = Set[ 1 ]
9878
- TOKENS_FOLLOWING_T__57_IN_constraint_statement_1779 = Set[ 7 ]
9879
- TOKENS_FOLLOWING_reference_IN_constraint_statement_1781 = Set[ 1 ]
9880
- TOKENS_FOLLOWING_reference_IN_constraint_statement_1790 = Set[ 55, 58 ]
9881
- TOKENS_FOLLOWING_equals_op_IN_constraint_statement_1792 = Set[ 6, 7, 8, 9, 10, 37 ]
9882
- TOKENS_FOLLOWING_value_IN_constraint_statement_1794 = Set[ 1 ]
9883
- TOKENS_FOLLOWING_reference_IN_constraint_statement_1803 = Set[ 55, 58 ]
9884
- TOKENS_FOLLOWING_equals_op_IN_constraint_statement_1805 = Set[ 5 ]
9885
- TOKENS_FOLLOWING_NULL_IN_constraint_statement_1807 = Set[ 1 ]
9886
- TOKENS_FOLLOWING_reference_IN_constraint_statement_1816 = Set[ 60, 61, 71 ]
9887
- TOKENS_FOLLOWING_not_equals_op_IN_constraint_statement_1818 = Set[ 6, 7, 8, 9, 10, 37 ]
9888
- TOKENS_FOLLOWING_value_IN_constraint_statement_1820 = Set[ 1 ]
9889
- TOKENS_FOLLOWING_reference_IN_constraint_statement_1829 = Set[ 60, 61, 71 ]
9890
- TOKENS_FOLLOWING_not_equals_op_IN_constraint_statement_1831 = Set[ 5 ]
9891
- TOKENS_FOLLOWING_NULL_IN_constraint_statement_1833 = Set[ 1 ]
9892
- TOKENS_FOLLOWING_conditional_constraint_IN_constraint_statement_1842 = Set[ 1 ]
9893
- TOKENS_FOLLOWING_reference_IN_constraint_statement_1851 = Set[ 58, 59 ]
9894
- TOKENS_FOLLOWING_T__58_IN_constraint_statement_1853 = Set[ 59 ]
9895
- TOKENS_FOLLOWING_T__59_IN_constraint_statement_1856 = Set[ 6, 7, 8, 9, 10, 37 ]
9896
- TOKENS_FOLLOWING_set_value_IN_constraint_statement_1858 = Set[ 1 ]
9897
- TOKENS_FOLLOWING_reference_IN_constraint_statement_1867 = Set[ 57, 60, 61 ]
9898
- TOKENS_FOLLOWING_set_IN_constraint_statement_1869 = Set[ 59 ]
9899
- TOKENS_FOLLOWING_T__59_IN_constraint_statement_1877 = Set[ 6, 7, 8, 9, 10, 37 ]
9900
- TOKENS_FOLLOWING_set_value_IN_constraint_statement_1879 = Set[ 1 ]
9901
- TOKENS_FOLLOWING_reference_IN_constraint_statement_1888 = Set[ 62 ]
9902
- TOKENS_FOLLOWING_T__62_IN_constraint_statement_1890 = Set[ 6, 7, 8, 9, 10, 37 ]
9903
- TOKENS_FOLLOWING_value_IN_constraint_statement_1892 = Set[ 1 ]
9904
- TOKENS_FOLLOWING_reference_IN_constraint_statement_1901 = Set[ 76, 77, 78, 79 ]
9905
- TOKENS_FOLLOWING_binary_comp_IN_constraint_statement_1903 = Set[ 7, 8 ]
9906
- TOKENS_FOLLOWING_comp_value_IN_constraint_statement_1905 = Set[ 1 ]
9907
- TOKENS_FOLLOWING_total_constraint_IN_constraint_statement_1914 = Set[ 1 ]
9908
- TOKENS_FOLLOWING_T__63_IN_total_constraint_1925 = Set[ 7 ]
9909
- TOKENS_FOLLOWING_total_statement_IN_total_constraint_1927 = Set[ 39 ]
9910
- TOKENS_FOLLOWING_T__39_IN_total_constraint_1929 = Set[ 76, 77, 78, 79 ]
9911
- TOKENS_FOLLOWING_binary_comp_IN_total_constraint_1931 = Set[ 8 ]
9912
- TOKENS_FOLLOWING_NUMBER_IN_total_constraint_1933 = Set[ 1 ]
9913
- TOKENS_FOLLOWING_reference_IN_total_statement_1944 = Set[ 55, 58 ]
9914
- TOKENS_FOLLOWING_equals_op_IN_total_statement_1946 = Set[ 6, 7, 8, 9, 10, 37 ]
9915
- TOKENS_FOLLOWING_value_IN_total_statement_1948 = Set[ 1 ]
9916
- TOKENS_FOLLOWING_NUMBER_IN_comp_value_1963 = Set[ 1 ]
9917
- TOKENS_FOLLOWING_reference_IN_comp_value_1972 = Set[ 1 ]
9918
- TOKENS_FOLLOWING_T__28_IN_conditional_constraint_1991 = Set[ 7, 20, 28, 57, 63 ]
9919
- TOKENS_FOLLOWING_conditional_constraint_if_part_IN_conditional_constraint_1999 = Set[ 29 ]
9920
- TOKENS_FOLLOWING_conditional_constraint_then_part_IN_conditional_constraint_2003 = Set[ 1 ]
9921
- TOKENS_FOLLOWING_constraint_statement_IN_conditional_constraint_if_part_2018 = Set[ 1, 4 ]
9922
- TOKENS_FOLLOWING_NL_IN_conditional_constraint_if_part_2020 = Set[ 1, 4 ]
9923
- TOKENS_FOLLOWING_T__20_IN_conditional_constraint_if_part_2030 = Set[ 4 ]
9924
- TOKENS_FOLLOWING_NL_IN_conditional_constraint_if_part_2038 = Set[ 4, 7, 21, 28, 50, 52, 53, 54, 57, 63 ]
9925
- TOKENS_FOLLOWING_constraint_body_IN_conditional_constraint_if_part_2041 = Set[ 21 ]
9926
- TOKENS_FOLLOWING_T__21_IN_conditional_constraint_if_part_2045 = Set[ 1, 4 ]
9927
- TOKENS_FOLLOWING_NL_IN_conditional_constraint_if_part_2047 = Set[ 1, 4 ]
9928
- TOKENS_FOLLOWING_T__29_IN_conditional_constraint_then_part_2063 = Set[ 7, 28, 57, 63 ]
9929
- TOKENS_FOLLOWING_constraint_statement_IN_conditional_constraint_then_part_2065 = Set[ 1 ]
9930
- TOKENS_FOLLOWING_T__29_IN_conditional_constraint_then_part_2074 = Set[ 20 ]
9931
- TOKENS_FOLLOWING_T__20_IN_conditional_constraint_then_part_2082 = Set[ 4 ]
9932
- TOKENS_FOLLOWING_NL_IN_conditional_constraint_then_part_2084 = Set[ 4, 7, 21, 28, 50, 52, 53, 54, 57, 63 ]
9933
- TOKENS_FOLLOWING_constraint_body_IN_conditional_constraint_then_part_2087 = Set[ 21 ]
9934
- TOKENS_FOLLOWING_T__21_IN_conditional_constraint_then_part_2089 = Set[ 1 ]
9935
- TOKENS_FOLLOWING_mutation_IN_effect_body_2111 = Set[ 4 ]
9936
- TOKENS_FOLLOWING_mutation_iterator_IN_effect_body_2124 = Set[ 4 ]
9937
- TOKENS_FOLLOWING_NL_IN_effect_body_2133 = Set[ 1, 4, 7, 50, 65 ]
9938
- TOKENS_FOLLOWING_T__50_IN_mutation_iterator_2148 = Set[ 7 ]
9939
- TOKENS_FOLLOWING_path_IN_mutation_iterator_2150 = Set[ 51 ]
9860
+ TOKENS_FOLLOWING_quantification_keyword_IN_constraint_class_quantification_1617 = Set[ 38 ]
9861
+ TOKENS_FOLLOWING_T__38_IN_constraint_class_quantification_1619 = Set[ 7 ]
9862
+ TOKENS_FOLLOWING_path_IN_constraint_class_quantification_1621 = Set[ 52 ]
9863
+ TOKENS_FOLLOWING_T__52_IN_constraint_class_quantification_1623 = Set[ 7 ]
9864
+ TOKENS_FOLLOWING_ID_IN_constraint_class_quantification_1625 = Set[ 40 ]
9865
+ TOKENS_FOLLOWING_T__40_IN_constraint_class_quantification_1627 = Set[ 4, 20, 56, 77, 78, 79, 80 ]
9866
+ TOKENS_FOLLOWING_binary_comp_IN_constraint_class_quantification_1639 = Set[ 8 ]
9867
+ TOKENS_FOLLOWING_T__56_IN_constraint_class_quantification_1652 = Set[ 8 ]
9868
+ TOKENS_FOLLOWING_NUMBER_IN_constraint_class_quantification_1668 = Set[ 4, 20 ]
9869
+ TOKENS_FOLLOWING_NL_IN_constraint_class_quantification_1682 = Set[ 4, 20 ]
9870
+ TOKENS_FOLLOWING_T__20_IN_constraint_class_quantification_1685 = Set[ 4 ]
9871
+ TOKENS_FOLLOWING_NL_IN_constraint_class_quantification_1687 = Set[ 4, 7, 21, 29, 51, 57, 58, 64 ]
9872
+ TOKENS_FOLLOWING_constraint_statement_IN_constraint_class_quantification_1694 = Set[ 4 ]
9873
+ TOKENS_FOLLOWING_NL_IN_constraint_class_quantification_1704 = Set[ 4, 7, 21, 29, 51, 57, 58, 64 ]
9874
+ TOKENS_FOLLOWING_constraint_different_IN_constraint_class_quantification_1711 = Set[ 4 ]
9875
+ TOKENS_FOLLOWING_NL_IN_constraint_class_quantification_1713 = Set[ 4, 7, 21, 29, 51, 57, 58, 64 ]
9876
+ TOKENS_FOLLOWING_constraint_iterator_IN_constraint_class_quantification_1720 = Set[ 4 ]
9877
+ TOKENS_FOLLOWING_NL_IN_constraint_class_quantification_1722 = Set[ 4, 7, 21, 29, 51, 57, 58, 64 ]
9878
+ TOKENS_FOLLOWING_T__21_IN_constraint_class_quantification_1730 = Set[ 1 ]
9879
+ TOKENS_FOLLOWING_T__57_IN_constraint_different_1749 = Set[ 38 ]
9880
+ TOKENS_FOLLOWING_T__38_IN_constraint_different_1751 = Set[ 7 ]
9881
+ TOKENS_FOLLOWING_path_IN_constraint_different_1753 = Set[ 40 ]
9882
+ TOKENS_FOLLOWING_T__40_IN_constraint_different_1755 = Set[ 1 ]
9883
+ TOKENS_FOLLOWING_reference_IN_constraint_statement_1774 = Set[ 1 ]
9884
+ TOKENS_FOLLOWING_T__58_IN_constraint_statement_1783 = Set[ 7 ]
9885
+ TOKENS_FOLLOWING_reference_IN_constraint_statement_1785 = Set[ 1 ]
9886
+ TOKENS_FOLLOWING_reference_IN_constraint_statement_1794 = Set[ 56, 59 ]
9887
+ TOKENS_FOLLOWING_equals_op_IN_constraint_statement_1796 = Set[ 6, 7, 8, 9, 10, 38 ]
9888
+ TOKENS_FOLLOWING_value_IN_constraint_statement_1798 = Set[ 1 ]
9889
+ TOKENS_FOLLOWING_reference_IN_constraint_statement_1807 = Set[ 56, 59 ]
9890
+ TOKENS_FOLLOWING_equals_op_IN_constraint_statement_1809 = Set[ 5 ]
9891
+ TOKENS_FOLLOWING_NULL_IN_constraint_statement_1811 = Set[ 1 ]
9892
+ TOKENS_FOLLOWING_reference_IN_constraint_statement_1820 = Set[ 61, 62, 72 ]
9893
+ TOKENS_FOLLOWING_not_equals_op_IN_constraint_statement_1822 = Set[ 6, 7, 8, 9, 10, 38 ]
9894
+ TOKENS_FOLLOWING_value_IN_constraint_statement_1824 = Set[ 1 ]
9895
+ TOKENS_FOLLOWING_reference_IN_constraint_statement_1833 = Set[ 61, 62, 72 ]
9896
+ TOKENS_FOLLOWING_not_equals_op_IN_constraint_statement_1835 = Set[ 5 ]
9897
+ TOKENS_FOLLOWING_NULL_IN_constraint_statement_1837 = Set[ 1 ]
9898
+ TOKENS_FOLLOWING_conditional_constraint_IN_constraint_statement_1846 = Set[ 1 ]
9899
+ TOKENS_FOLLOWING_reference_IN_constraint_statement_1855 = Set[ 59, 60 ]
9900
+ TOKENS_FOLLOWING_T__59_IN_constraint_statement_1857 = Set[ 60 ]
9901
+ TOKENS_FOLLOWING_T__60_IN_constraint_statement_1860 = Set[ 6, 7, 8, 9, 10, 38 ]
9902
+ TOKENS_FOLLOWING_set_value_IN_constraint_statement_1862 = Set[ 1 ]
9903
+ TOKENS_FOLLOWING_reference_IN_constraint_statement_1871 = Set[ 58, 61, 62 ]
9904
+ TOKENS_FOLLOWING_set_IN_constraint_statement_1873 = Set[ 60 ]
9905
+ TOKENS_FOLLOWING_T__60_IN_constraint_statement_1881 = Set[ 6, 7, 8, 9, 10, 38 ]
9906
+ TOKENS_FOLLOWING_set_value_IN_constraint_statement_1883 = Set[ 1 ]
9907
+ TOKENS_FOLLOWING_reference_IN_constraint_statement_1892 = Set[ 63 ]
9908
+ TOKENS_FOLLOWING_T__63_IN_constraint_statement_1894 = Set[ 6, 7, 8, 9, 10, 38 ]
9909
+ TOKENS_FOLLOWING_value_IN_constraint_statement_1896 = Set[ 1 ]
9910
+ TOKENS_FOLLOWING_reference_IN_constraint_statement_1905 = Set[ 77, 78, 79, 80 ]
9911
+ TOKENS_FOLLOWING_binary_comp_IN_constraint_statement_1907 = Set[ 7, 8 ]
9912
+ TOKENS_FOLLOWING_comp_value_IN_constraint_statement_1909 = Set[ 1 ]
9913
+ TOKENS_FOLLOWING_total_constraint_IN_constraint_statement_1918 = Set[ 1 ]
9914
+ TOKENS_FOLLOWING_T__64_IN_total_constraint_1929 = Set[ 7 ]
9915
+ TOKENS_FOLLOWING_total_statement_IN_total_constraint_1931 = Set[ 40 ]
9916
+ TOKENS_FOLLOWING_T__40_IN_total_constraint_1933 = Set[ 77, 78, 79, 80 ]
9917
+ TOKENS_FOLLOWING_binary_comp_IN_total_constraint_1935 = Set[ 8 ]
9918
+ TOKENS_FOLLOWING_NUMBER_IN_total_constraint_1937 = Set[ 1 ]
9919
+ TOKENS_FOLLOWING_reference_IN_total_statement_1948 = Set[ 56, 59 ]
9920
+ TOKENS_FOLLOWING_equals_op_IN_total_statement_1950 = Set[ 6, 7, 8, 9, 10, 38 ]
9921
+ TOKENS_FOLLOWING_value_IN_total_statement_1952 = Set[ 1 ]
9922
+ TOKENS_FOLLOWING_NUMBER_IN_comp_value_1967 = Set[ 1 ]
9923
+ TOKENS_FOLLOWING_reference_IN_comp_value_1976 = Set[ 1 ]
9924
+ TOKENS_FOLLOWING_T__29_IN_conditional_constraint_1995 = Set[ 7, 20, 29, 58, 64 ]
9925
+ TOKENS_FOLLOWING_conditional_constraint_if_part_IN_conditional_constraint_2003 = Set[ 30 ]
9926
+ TOKENS_FOLLOWING_conditional_constraint_then_part_IN_conditional_constraint_2007 = Set[ 1 ]
9927
+ TOKENS_FOLLOWING_constraint_statement_IN_conditional_constraint_if_part_2022 = Set[ 1, 4 ]
9928
+ TOKENS_FOLLOWING_NL_IN_conditional_constraint_if_part_2024 = Set[ 1, 4 ]
9929
+ TOKENS_FOLLOWING_T__20_IN_conditional_constraint_if_part_2034 = Set[ 4 ]
9930
+ TOKENS_FOLLOWING_NL_IN_conditional_constraint_if_part_2042 = Set[ 4, 7, 21, 29, 51, 53, 54, 55, 58, 64 ]
9931
+ TOKENS_FOLLOWING_constraint_body_IN_conditional_constraint_if_part_2045 = Set[ 21 ]
9932
+ TOKENS_FOLLOWING_T__21_IN_conditional_constraint_if_part_2049 = Set[ 1, 4 ]
9933
+ TOKENS_FOLLOWING_NL_IN_conditional_constraint_if_part_2051 = Set[ 1, 4 ]
9934
+ TOKENS_FOLLOWING_T__30_IN_conditional_constraint_then_part_2067 = Set[ 7, 29, 58, 64 ]
9935
+ TOKENS_FOLLOWING_constraint_statement_IN_conditional_constraint_then_part_2069 = Set[ 1 ]
9936
+ TOKENS_FOLLOWING_T__30_IN_conditional_constraint_then_part_2078 = Set[ 20 ]
9937
+ TOKENS_FOLLOWING_T__20_IN_conditional_constraint_then_part_2086 = Set[ 4 ]
9938
+ TOKENS_FOLLOWING_NL_IN_conditional_constraint_then_part_2088 = Set[ 4, 7, 21, 29, 51, 53, 54, 55, 58, 64 ]
9939
+ TOKENS_FOLLOWING_constraint_body_IN_conditional_constraint_then_part_2091 = Set[ 21 ]
9940
+ TOKENS_FOLLOWING_T__21_IN_conditional_constraint_then_part_2093 = Set[ 1 ]
9941
+ TOKENS_FOLLOWING_mutation_IN_effect_body_2115 = Set[ 4 ]
9942
+ TOKENS_FOLLOWING_mutation_iterator_IN_effect_body_2128 = Set[ 4 ]
9943
+ TOKENS_FOLLOWING_NL_IN_effect_body_2137 = Set[ 1, 4, 7, 51, 66 ]
9940
9944
  TOKENS_FOLLOWING_T__51_IN_mutation_iterator_2152 = Set[ 7 ]
9941
- TOKENS_FOLLOWING_ID_IN_mutation_iterator_2154 = Set[ 4, 20 ]
9942
- TOKENS_FOLLOWING_NL_IN_mutation_iterator_2156 = Set[ 4, 20 ]
9943
- TOKENS_FOLLOWING_T__20_IN_mutation_iterator_2159 = Set[ 4 ]
9944
- TOKENS_FOLLOWING_NL_IN_mutation_iterator_2161 = Set[ 4, 7, 21, 65 ]
9945
- TOKENS_FOLLOWING_mutation_IN_mutation_iterator_2171 = Set[ 4 ]
9946
- TOKENS_FOLLOWING_NL_IN_mutation_iterator_2179 = Set[ 4, 7, 21, 65 ]
9947
- TOKENS_FOLLOWING_T__21_IN_mutation_iterator_2186 = Set[ 1 ]
9948
- TOKENS_FOLLOWING_reference_IN_mutation_2205 = Set[ 55, 58 ]
9949
- TOKENS_FOLLOWING_equals_op_IN_mutation_2207 = Set[ 6, 7, 8, 9, 10, 37 ]
9950
- TOKENS_FOLLOWING_value_IN_mutation_2209 = Set[ 1 ]
9951
- TOKENS_FOLLOWING_reference_IN_mutation_2218 = Set[ 55, 58 ]
9952
- TOKENS_FOLLOWING_equals_op_IN_mutation_2220 = Set[ 5 ]
9953
- TOKENS_FOLLOWING_NULL_IN_mutation_2222 = Set[ 1 ]
9954
- TOKENS_FOLLOWING_reference_IN_mutation_2231 = Set[ 72, 73, 74, 75 ]
9955
- TOKENS_FOLLOWING_binary_op_IN_mutation_2233 = Set[ 8 ]
9956
- TOKENS_FOLLOWING_NUMBER_IN_mutation_2235 = Set[ 1 ]
9957
- TOKENS_FOLLOWING_reference_IN_mutation_2244 = Set[ 58 ]
9958
- TOKENS_FOLLOWING_T__58_IN_mutation_2246 = Set[ 64 ]
9959
- TOKENS_FOLLOWING_T__64_IN_mutation_2248 = Set[ 7 ]
9960
- TOKENS_FOLLOWING_path_IN_mutation_2250 = Set[ 1, 20 ]
9961
- TOKENS_FOLLOWING_object_body_IN_mutation_2258 = Set[ 1 ]
9962
- TOKENS_FOLLOWING_T__65_IN_mutation_2268 = Set[ 7 ]
9963
- TOKENS_FOLLOWING_path_IN_mutation_2270 = Set[ 1 ]
9964
- TOKENS_FOLLOWING_reference_IN_mutation_2279 = Set[ 66 ]
9965
- TOKENS_FOLLOWING_T__66_IN_mutation_2281 = Set[ 6, 7, 8, 9, 10, 37 ]
9966
- TOKENS_FOLLOWING_value_IN_mutation_2283 = Set[ 39 ]
9967
- TOKENS_FOLLOWING_T__39_IN_mutation_2285 = Set[ 1 ]
9968
- TOKENS_FOLLOWING_reference_IN_mutation_2294 = Set[ 67 ]
9969
- TOKENS_FOLLOWING_T__67_IN_mutation_2296 = Set[ 6, 7, 8, 9, 10, 37 ]
9970
- TOKENS_FOLLOWING_value_IN_mutation_2298 = Set[ 39 ]
9971
- TOKENS_FOLLOWING_T__39_IN_mutation_2300 = Set[ 1 ]
9972
- TOKENS_FOLLOWING_T__37_IN_set_value_2319 = Set[ 6, 7, 8, 9, 10, 37, 39 ]
9973
- TOKENS_FOLLOWING_set_item_IN_set_value_2328 = Set[ 38, 39 ]
9974
- TOKENS_FOLLOWING_T__38_IN_set_value_2331 = Set[ 4, 6, 7, 8, 9, 10, 37 ]
9975
- TOKENS_FOLLOWING_NL_IN_set_value_2333 = Set[ 4, 6, 7, 8, 9, 10, 37 ]
9976
- TOKENS_FOLLOWING_set_item_IN_set_value_2336 = Set[ 38, 39 ]
9977
- TOKENS_FOLLOWING_T__39_IN_set_value_2348 = Set[ 1 ]
9978
- TOKENS_FOLLOWING_value_IN_set_item_2359 = Set[ 1 ]
9979
- TOKENS_FOLLOWING_primitive_value_IN_value_2378 = Set[ 1 ]
9980
- TOKENS_FOLLOWING_reference_IN_value_2387 = Set[ 1 ]
9981
- TOKENS_FOLLOWING_set_value_IN_value_2396 = Set[ 1 ]
9982
- TOKENS_FOLLOWING_BOOLEAN_IN_primitive_value_2415 = Set[ 1 ]
9983
- TOKENS_FOLLOWING_NUMBER_IN_primitive_value_2424 = Set[ 1 ]
9984
- TOKENS_FOLLOWING_STRING_IN_primitive_value_2433 = Set[ 1 ]
9985
- TOKENS_FOLLOWING_MULTILINE_STRING_IN_primitive_value_2442 = Set[ 1 ]
9986
- TOKENS_FOLLOWING_ID_IN_path_2457 = Set[ 1, 68 ]
9987
- TOKENS_FOLLOWING_T__68_IN_path_2459 = Set[ 7 ]
9988
- TOKENS_FOLLOWING_ID_IN_path_2460 = Set[ 1, 68 ]
9989
- TOKENS_FOLLOWING_id_ref_IN_path_with_index_2473 = Set[ 1, 68 ]
9990
- TOKENS_FOLLOWING_T__68_IN_path_with_index_2475 = Set[ 7 ]
9991
- TOKENS_FOLLOWING_id_ref_IN_path_with_index_2476 = Set[ 1, 68 ]
9992
- TOKENS_FOLLOWING_ID_IN_id_ref_2489 = Set[ 1, 26 ]
9993
- TOKENS_FOLLOWING_T__26_IN_id_ref_2491 = Set[ 8 ]
9994
- TOKENS_FOLLOWING_NUMBER_IN_id_ref_2493 = Set[ 27 ]
9995
- TOKENS_FOLLOWING_T__27_IN_id_ref_2495 = Set[ 1 ]
9996
- TOKENS_FOLLOWING_path_with_index_IN_reference_2512 = Set[ 1 ]
9997
- TOKENS_FOLLOWING_T__69_IN_reference_type_2531 = Set[ 7 ]
9998
- TOKENS_FOLLOWING_path_IN_reference_type_2533 = Set[ 1 ]
9999
- TOKENS_FOLLOWING_T__41_IN_set_type_2552 = Set[ 7 ]
10000
- TOKENS_FOLLOWING_path_IN_set_type_2554 = Set[ 1 ]
10001
- TOKENS_FOLLOWING_T__70_IN_probability_op_2569 = Set[ 1 ]
9945
+ TOKENS_FOLLOWING_path_IN_mutation_iterator_2154 = Set[ 52 ]
9946
+ TOKENS_FOLLOWING_T__52_IN_mutation_iterator_2156 = Set[ 7 ]
9947
+ TOKENS_FOLLOWING_ID_IN_mutation_iterator_2158 = Set[ 4, 20 ]
9948
+ TOKENS_FOLLOWING_NL_IN_mutation_iterator_2160 = Set[ 4, 20 ]
9949
+ TOKENS_FOLLOWING_T__20_IN_mutation_iterator_2163 = Set[ 4 ]
9950
+ TOKENS_FOLLOWING_NL_IN_mutation_iterator_2165 = Set[ 4, 7, 21, 66 ]
9951
+ TOKENS_FOLLOWING_mutation_IN_mutation_iterator_2175 = Set[ 4 ]
9952
+ TOKENS_FOLLOWING_NL_IN_mutation_iterator_2183 = Set[ 4, 7, 21, 66 ]
9953
+ TOKENS_FOLLOWING_T__21_IN_mutation_iterator_2190 = Set[ 1 ]
9954
+ TOKENS_FOLLOWING_reference_IN_mutation_2209 = Set[ 56, 59 ]
9955
+ TOKENS_FOLLOWING_equals_op_IN_mutation_2211 = Set[ 6, 7, 8, 9, 10, 38 ]
9956
+ TOKENS_FOLLOWING_value_IN_mutation_2213 = Set[ 1 ]
9957
+ TOKENS_FOLLOWING_reference_IN_mutation_2222 = Set[ 56, 59 ]
9958
+ TOKENS_FOLLOWING_equals_op_IN_mutation_2224 = Set[ 5 ]
9959
+ TOKENS_FOLLOWING_NULL_IN_mutation_2226 = Set[ 1 ]
9960
+ TOKENS_FOLLOWING_reference_IN_mutation_2235 = Set[ 73, 74, 75, 76 ]
9961
+ TOKENS_FOLLOWING_binary_op_IN_mutation_2237 = Set[ 8 ]
9962
+ TOKENS_FOLLOWING_NUMBER_IN_mutation_2239 = Set[ 1 ]
9963
+ TOKENS_FOLLOWING_reference_IN_mutation_2248 = Set[ 59 ]
9964
+ TOKENS_FOLLOWING_T__59_IN_mutation_2250 = Set[ 65 ]
9965
+ TOKENS_FOLLOWING_T__65_IN_mutation_2252 = Set[ 7 ]
9966
+ TOKENS_FOLLOWING_path_IN_mutation_2254 = Set[ 1, 20 ]
9967
+ TOKENS_FOLLOWING_object_body_IN_mutation_2262 = Set[ 1 ]
9968
+ TOKENS_FOLLOWING_T__66_IN_mutation_2272 = Set[ 7 ]
9969
+ TOKENS_FOLLOWING_path_IN_mutation_2274 = Set[ 1 ]
9970
+ TOKENS_FOLLOWING_reference_IN_mutation_2283 = Set[ 67 ]
9971
+ TOKENS_FOLLOWING_T__67_IN_mutation_2285 = Set[ 6, 7, 8, 9, 10, 38 ]
9972
+ TOKENS_FOLLOWING_value_IN_mutation_2287 = Set[ 40 ]
9973
+ TOKENS_FOLLOWING_T__40_IN_mutation_2289 = Set[ 1 ]
9974
+ TOKENS_FOLLOWING_reference_IN_mutation_2298 = Set[ 68 ]
9975
+ TOKENS_FOLLOWING_T__68_IN_mutation_2300 = Set[ 6, 7, 8, 9, 10, 38 ]
9976
+ TOKENS_FOLLOWING_value_IN_mutation_2302 = Set[ 40 ]
9977
+ TOKENS_FOLLOWING_T__40_IN_mutation_2304 = Set[ 1 ]
9978
+ TOKENS_FOLLOWING_T__38_IN_set_value_2323 = Set[ 6, 7, 8, 9, 10, 38, 40 ]
9979
+ TOKENS_FOLLOWING_set_item_IN_set_value_2332 = Set[ 39, 40 ]
9980
+ TOKENS_FOLLOWING_T__39_IN_set_value_2335 = Set[ 4, 6, 7, 8, 9, 10, 38 ]
9981
+ TOKENS_FOLLOWING_NL_IN_set_value_2337 = Set[ 4, 6, 7, 8, 9, 10, 38 ]
9982
+ TOKENS_FOLLOWING_set_item_IN_set_value_2340 = Set[ 39, 40 ]
9983
+ TOKENS_FOLLOWING_T__40_IN_set_value_2352 = Set[ 1 ]
9984
+ TOKENS_FOLLOWING_value_IN_set_item_2363 = Set[ 1 ]
9985
+ TOKENS_FOLLOWING_primitive_value_IN_value_2382 = Set[ 1 ]
9986
+ TOKENS_FOLLOWING_reference_IN_value_2391 = Set[ 1 ]
9987
+ TOKENS_FOLLOWING_set_value_IN_value_2400 = Set[ 1 ]
9988
+ TOKENS_FOLLOWING_BOOLEAN_IN_primitive_value_2419 = Set[ 1 ]
9989
+ TOKENS_FOLLOWING_NUMBER_IN_primitive_value_2428 = Set[ 1 ]
9990
+ TOKENS_FOLLOWING_STRING_IN_primitive_value_2437 = Set[ 1 ]
9991
+ TOKENS_FOLLOWING_MULTILINE_STRING_IN_primitive_value_2446 = Set[ 1 ]
9992
+ TOKENS_FOLLOWING_ID_IN_path_2461 = Set[ 1, 69 ]
9993
+ TOKENS_FOLLOWING_T__69_IN_path_2463 = Set[ 7 ]
9994
+ TOKENS_FOLLOWING_ID_IN_path_2464 = Set[ 1, 69 ]
9995
+ TOKENS_FOLLOWING_id_ref_IN_path_with_index_2477 = Set[ 1, 69 ]
9996
+ TOKENS_FOLLOWING_T__69_IN_path_with_index_2479 = Set[ 7 ]
9997
+ TOKENS_FOLLOWING_id_ref_IN_path_with_index_2480 = Set[ 1, 69 ]
9998
+ TOKENS_FOLLOWING_ID_IN_id_ref_2493 = Set[ 1, 27 ]
9999
+ TOKENS_FOLLOWING_T__27_IN_id_ref_2495 = Set[ 8 ]
10000
+ TOKENS_FOLLOWING_NUMBER_IN_id_ref_2497 = Set[ 28 ]
10001
+ TOKENS_FOLLOWING_T__28_IN_id_ref_2499 = Set[ 1 ]
10002
+ TOKENS_FOLLOWING_path_with_index_IN_reference_2516 = Set[ 1 ]
10003
+ TOKENS_FOLLOWING_T__70_IN_reference_type_2535 = Set[ 7 ]
10004
+ TOKENS_FOLLOWING_path_IN_reference_type_2537 = Set[ 1 ]
10005
+ TOKENS_FOLLOWING_T__42_IN_set_type_2556 = Set[ 7 ]
10006
+ TOKENS_FOLLOWING_path_IN_set_type_2558 = Set[ 1 ]
10007
+ TOKENS_FOLLOWING_T__71_IN_probability_op_2573 = Set[ 1 ]
10002
10008
  TOKENS_FOLLOWING_set_IN_equals_op_0 = Set[ 1 ]
10003
10009
  TOKENS_FOLLOWING_set_IN_not_equals_op_0 = Set[ 1 ]
10004
10010
  TOKENS_FOLLOWING_set_IN_binary_op_0 = Set[ 1 ]