sfp 0.1.1 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -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 ]