sfp 0.3.4 → 0.3.5
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +9 -29
- data/bin/sfp +1 -1
- data/lib/sfp/SfpLangLexer.rb +65 -65
- data/lib/sfp/SfpLangParser.rb +196 -220
- data/lib/sfp/Sfplib.rb +22 -1
- data/lib/sfp/sas_translator.rb +215 -18
- data/sfp.gemspec +2 -2
- data/src/SfpLang.g +15 -39
- data/src/SfpLang.g.bak +1088 -0
- metadata +8 -17
data/lib/sfp/SfpLangParser.rb
CHANGED
@@ -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-07-
|
8
|
+
# Generated at: 2013-07-18 06:07:23
|
9
9
|
#
|
10
10
|
|
11
11
|
# ~~~> start load path setup
|
@@ -5543,11 +5543,7 @@ module SfpLang
|
|
5543
5543
|
|
5544
5544
|
# --> action
|
5545
5545
|
|
5546
|
-
@now[__ID249__.text] =
|
5547
|
-
'_context' => 'constraint',
|
5548
|
-
'_type' => 'and',
|
5549
|
-
'_parent' => @now
|
5550
|
-
}
|
5546
|
+
@now[__ID249__.text] = self.create_constraint(__ID249__.text, 'and')
|
5551
5547
|
@now = @now[__ID249__.text]
|
5552
5548
|
|
5553
5549
|
# <-- action
|
@@ -5556,7 +5552,7 @@ module SfpLang
|
|
5556
5552
|
tree_for_char_literal251 = @adaptor.create_with_payload( char_literal251 )
|
5557
5553
|
@adaptor.add_child( root_0, tree_for_char_literal251 )
|
5558
5554
|
|
5559
|
-
# at line
|
5555
|
+
# at line 528:7: ( NL )*
|
5560
5556
|
while true # decision 102
|
5561
5557
|
alt_102 = 2
|
5562
5558
|
look_102_0 = @input.peek( 1 )
|
@@ -5567,7 +5563,7 @@ module SfpLang
|
|
5567
5563
|
end
|
5568
5564
|
case alt_102
|
5569
5565
|
when 1
|
5570
|
-
# at line
|
5566
|
+
# at line 528:7: NL
|
5571
5567
|
__NL252__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_1489 )
|
5572
5568
|
|
5573
5569
|
tree_for_NL252 = @adaptor.create_with_payload( __NL252__ )
|
@@ -5587,7 +5583,7 @@ module SfpLang
|
|
5587
5583
|
tree_for_char_literal254 = @adaptor.create_with_payload( char_literal254 )
|
5588
5584
|
@adaptor.add_child( root_0, tree_for_char_literal254 )
|
5589
5585
|
|
5590
|
-
# at file
|
5586
|
+
# at file 528:31: ( NL )+
|
5591
5587
|
match_count_103 = 0
|
5592
5588
|
while true
|
5593
5589
|
alt_103 = 2
|
@@ -5599,7 +5595,7 @@ module SfpLang
|
|
5599
5595
|
end
|
5600
5596
|
case alt_103
|
5601
5597
|
when 1
|
5602
|
-
# at line
|
5598
|
+
# at line 528:31: NL
|
5603
5599
|
__NL255__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_1496 )
|
5604
5600
|
|
5605
5601
|
tree_for_NL255 = @adaptor.create_with_payload( __NL255__ )
|
@@ -5646,7 +5642,7 @@ module SfpLang
|
|
5646
5642
|
# parser rule constraint_body
|
5647
5643
|
#
|
5648
5644
|
# (in SfpLang.g)
|
5649
|
-
#
|
5645
|
+
# 532:1: constraint_body : ( ( constraint_statement | constraint_namespace | constraint_iterator | constraint_class_quantification ) ( NL )+ )* ;
|
5650
5646
|
#
|
5651
5647
|
def constraint_body
|
5652
5648
|
# -> uncomment the next line to manually enable rule tracing
|
@@ -5669,8 +5665,8 @@ module SfpLang
|
|
5669
5665
|
root_0 = @adaptor.create_flat_list
|
5670
5666
|
|
5671
5667
|
|
5672
|
-
# at line
|
5673
|
-
# at line
|
5668
|
+
# at line 533:4: ( ( constraint_statement | constraint_namespace | constraint_iterator | constraint_class_quantification ) ( NL )+ )*
|
5669
|
+
# at line 533:4: ( ( constraint_statement | constraint_namespace | constraint_iterator | constraint_class_quantification ) ( NL )+ )*
|
5674
5670
|
while true # decision 106
|
5675
5671
|
alt_106 = 2
|
5676
5672
|
look_106_0 = @input.peek( 1 )
|
@@ -5681,13 +5677,13 @@ module SfpLang
|
|
5681
5677
|
end
|
5682
5678
|
case alt_106
|
5683
5679
|
when 1
|
5684
|
-
# at line
|
5685
|
-
# at line
|
5680
|
+
# at line 534:4: ( constraint_statement | constraint_namespace | constraint_iterator | constraint_class_quantification ) ( NL )+
|
5681
|
+
# at line 534:4: ( constraint_statement | constraint_namespace | constraint_iterator | constraint_class_quantification )
|
5686
5682
|
alt_104 = 4
|
5687
5683
|
alt_104 = @dfa104.predict( @input )
|
5688
5684
|
case alt_104
|
5689
5685
|
when 1
|
5690
|
-
# at line
|
5686
|
+
# at line 534:6: constraint_statement
|
5691
5687
|
@state.following.push( TOKENS_FOLLOWING_constraint_statement_IN_constraint_body_1519 )
|
5692
5688
|
constraint_statement256 = constraint_statement
|
5693
5689
|
@state.following.pop
|
@@ -5699,28 +5695,28 @@ module SfpLang
|
|
5699
5695
|
# <-- action
|
5700
5696
|
|
5701
5697
|
when 2
|
5702
|
-
# at line
|
5698
|
+
# at line 538:6: constraint_namespace
|
5703
5699
|
@state.following.push( TOKENS_FOLLOWING_constraint_namespace_IN_constraint_body_1532 )
|
5704
5700
|
constraint_namespace257 = constraint_namespace
|
5705
5701
|
@state.following.pop
|
5706
5702
|
@adaptor.add_child( root_0, constraint_namespace257.tree )
|
5707
5703
|
|
5708
5704
|
when 3
|
5709
|
-
# at line
|
5705
|
+
# at line 539:6: constraint_iterator
|
5710
5706
|
@state.following.push( TOKENS_FOLLOWING_constraint_iterator_IN_constraint_body_1539 )
|
5711
5707
|
constraint_iterator258 = constraint_iterator
|
5712
5708
|
@state.following.pop
|
5713
5709
|
@adaptor.add_child( root_0, constraint_iterator258.tree )
|
5714
5710
|
|
5715
5711
|
when 4
|
5716
|
-
# at line
|
5712
|
+
# at line 540:6: constraint_class_quantification
|
5717
5713
|
@state.following.push( TOKENS_FOLLOWING_constraint_class_quantification_IN_constraint_body_1546 )
|
5718
5714
|
constraint_class_quantification259 = constraint_class_quantification
|
5719
5715
|
@state.following.pop
|
5720
5716
|
@adaptor.add_child( root_0, constraint_class_quantification259.tree )
|
5721
5717
|
|
5722
5718
|
end
|
5723
|
-
# at file
|
5719
|
+
# at file 542:3: ( NL )+
|
5724
5720
|
match_count_105 = 0
|
5725
5721
|
while true
|
5726
5722
|
alt_105 = 2
|
@@ -5732,7 +5728,7 @@ module SfpLang
|
|
5732
5728
|
end
|
5733
5729
|
case alt_105
|
5734
5730
|
when 1
|
5735
|
-
# at line
|
5731
|
+
# at line 542:3: NL
|
5736
5732
|
__NL260__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_body_1555 )
|
5737
5733
|
|
5738
5734
|
tree_for_NL260 = @adaptor.create_with_payload( __NL260__ )
|
@@ -5781,7 +5777,7 @@ module SfpLang
|
|
5781
5777
|
# parser rule constraint_namespace
|
5782
5778
|
#
|
5783
5779
|
# (in SfpLang.g)
|
5784
|
-
#
|
5780
|
+
# 545:1: constraint_namespace : path ( NL )* '{' ( NL )* ( constraint_statement ( NL )+ )* '}' ;
|
5785
5781
|
#
|
5786
5782
|
def constraint_namespace
|
5787
5783
|
# -> uncomment the next line to manually enable rule tracing
|
@@ -5810,12 +5806,12 @@ module SfpLang
|
|
5810
5806
|
root_0 = @adaptor.create_flat_list
|
5811
5807
|
|
5812
5808
|
|
5813
|
-
# at line
|
5809
|
+
# at line 546:4: path ( NL )* '{' ( NL )* ( constraint_statement ( NL )+ )* '}'
|
5814
5810
|
@state.following.push( TOKENS_FOLLOWING_path_IN_constraint_namespace_1569 )
|
5815
5811
|
path261 = path
|
5816
5812
|
@state.following.pop
|
5817
5813
|
@adaptor.add_child( root_0, path261.tree )
|
5818
|
-
# at line
|
5814
|
+
# at line 546:9: ( NL )*
|
5819
5815
|
while true # decision 107
|
5820
5816
|
alt_107 = 2
|
5821
5817
|
look_107_0 = @input.peek( 1 )
|
@@ -5826,7 +5822,7 @@ module SfpLang
|
|
5826
5822
|
end
|
5827
5823
|
case alt_107
|
5828
5824
|
when 1
|
5829
|
-
# at line
|
5825
|
+
# at line 546:9: NL
|
5830
5826
|
__NL262__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_namespace_1571 )
|
5831
5827
|
|
5832
5828
|
tree_for_NL262 = @adaptor.create_with_payload( __NL262__ )
|
@@ -5842,7 +5838,7 @@ module SfpLang
|
|
5842
5838
|
tree_for_char_literal263 = @adaptor.create_with_payload( char_literal263 )
|
5843
5839
|
@adaptor.add_child( root_0, tree_for_char_literal263 )
|
5844
5840
|
|
5845
|
-
# at line
|
5841
|
+
# at line 546:17: ( NL )*
|
5846
5842
|
while true # decision 108
|
5847
5843
|
alt_108 = 2
|
5848
5844
|
look_108_0 = @input.peek( 1 )
|
@@ -5853,7 +5849,7 @@ module SfpLang
|
|
5853
5849
|
end
|
5854
5850
|
case alt_108
|
5855
5851
|
when 1
|
5856
|
-
# at line
|
5852
|
+
# at line 546:17: NL
|
5857
5853
|
__NL264__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_namespace_1576 )
|
5858
5854
|
|
5859
5855
|
tree_for_NL264 = @adaptor.create_with_payload( __NL264__ )
|
@@ -5864,7 +5860,7 @@ module SfpLang
|
|
5864
5860
|
break # out of loop for decision 108
|
5865
5861
|
end
|
5866
5862
|
end # loop for decision 108
|
5867
|
-
# at line
|
5863
|
+
# at line 546:21: ( constraint_statement ( NL )+ )*
|
5868
5864
|
while true # decision 110
|
5869
5865
|
alt_110 = 2
|
5870
5866
|
look_110_0 = @input.peek( 1 )
|
@@ -5875,7 +5871,7 @@ module SfpLang
|
|
5875
5871
|
end
|
5876
5872
|
case alt_110
|
5877
5873
|
when 1
|
5878
|
-
# at line
|
5874
|
+
# at line 546:22: constraint_statement ( NL )+
|
5879
5875
|
@state.following.push( TOKENS_FOLLOWING_constraint_statement_IN_constraint_namespace_1580 )
|
5880
5876
|
constraint_statement265 = constraint_statement
|
5881
5877
|
@state.following.pop
|
@@ -5886,7 +5882,7 @@ module SfpLang
|
|
5886
5882
|
@now[key] = ( constraint_statement265.nil? ? nil : constraint_statement265.val )
|
5887
5883
|
|
5888
5884
|
# <-- action
|
5889
|
-
# at file
|
5885
|
+
# at file 551:3: ( NL )+
|
5890
5886
|
match_count_109 = 0
|
5891
5887
|
while true
|
5892
5888
|
alt_109 = 2
|
@@ -5898,7 +5894,7 @@ module SfpLang
|
|
5898
5894
|
end
|
5899
5895
|
case alt_109
|
5900
5896
|
when 1
|
5901
|
-
# at line
|
5897
|
+
# at line 551:3: NL
|
5902
5898
|
__NL266__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_namespace_1588 )
|
5903
5899
|
|
5904
5900
|
tree_for_NL266 = @adaptor.create_with_payload( __NL266__ )
|
@@ -5952,7 +5948,7 @@ module SfpLang
|
|
5952
5948
|
# parser rule constraint_iterator
|
5953
5949
|
#
|
5954
5950
|
# (in SfpLang.g)
|
5955
|
-
#
|
5951
|
+
# 554:1: constraint_iterator : 'foreach' '(' path 'as' ID ')' ( NL )* '{' ( NL )+ ( constraint_statement ( NL )+ )* '}' ;
|
5956
5952
|
#
|
5957
5953
|
def constraint_iterator
|
5958
5954
|
# -> uncomment the next line to manually enable rule tracing
|
@@ -5991,7 +5987,7 @@ module SfpLang
|
|
5991
5987
|
root_0 = @adaptor.create_flat_list
|
5992
5988
|
|
5993
5989
|
|
5994
|
-
# at line
|
5990
|
+
# at line 555:4: 'foreach' '(' path 'as' ID ')' ( NL )* '{' ( NL )+ ( constraint_statement ( NL )+ )* '}'
|
5995
5991
|
string_literal268 = match( T__54, TOKENS_FOLLOWING_T__54_IN_constraint_iterator_1604 )
|
5996
5992
|
|
5997
5993
|
tree_for_string_literal268 = @adaptor.create_with_payload( string_literal268 )
|
@@ -6021,7 +6017,7 @@ module SfpLang
|
|
6021
6017
|
tree_for_char_literal273 = @adaptor.create_with_payload( char_literal273 )
|
6022
6018
|
@adaptor.add_child( root_0, tree_for_char_literal273 )
|
6023
6019
|
|
6024
|
-
# at line
|
6020
|
+
# at line 555:35: ( NL )*
|
6025
6021
|
while true # decision 111
|
6026
6022
|
alt_111 = 2
|
6027
6023
|
look_111_0 = @input.peek( 1 )
|
@@ -6032,7 +6028,7 @@ module SfpLang
|
|
6032
6028
|
end
|
6033
6029
|
case alt_111
|
6034
6030
|
when 1
|
6035
|
-
# at line
|
6031
|
+
# at line 555:35: NL
|
6036
6032
|
__NL274__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_iterator_1616 )
|
6037
6033
|
|
6038
6034
|
tree_for_NL274 = @adaptor.create_with_payload( __NL274__ )
|
@@ -6048,7 +6044,7 @@ module SfpLang
|
|
6048
6044
|
tree_for_char_literal275 = @adaptor.create_with_payload( char_literal275 )
|
6049
6045
|
@adaptor.add_child( root_0, tree_for_char_literal275 )
|
6050
6046
|
|
6051
|
-
# at file
|
6047
|
+
# at file 555:43: ( NL )+
|
6052
6048
|
match_count_112 = 0
|
6053
6049
|
while true
|
6054
6050
|
alt_112 = 2
|
@@ -6060,7 +6056,7 @@ module SfpLang
|
|
6060
6056
|
end
|
6061
6057
|
case alt_112
|
6062
6058
|
when 1
|
6063
|
-
# at line
|
6059
|
+
# at line 555:43: NL
|
6064
6060
|
__NL276__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_iterator_1621 )
|
6065
6061
|
|
6066
6062
|
tree_for_NL276 = @adaptor.create_with_payload( __NL276__ )
|
@@ -6080,25 +6076,17 @@ module SfpLang
|
|
6080
6076
|
# --> action
|
6081
6077
|
|
6082
6078
|
id = self.next_id.to_s
|
6083
|
-
@now[id] =
|
6084
|
-
|
6085
|
-
|
6086
|
-
'_self' => id,
|
6087
|
-
'_value' => '$.' + ( path270 && @input.to_s( path270.start, path270.stop ) ),
|
6088
|
-
'_variable' => __ID272__.text
|
6089
|
-
}
|
6079
|
+
@now[id] = self.create_constraint(id, 'iterator')
|
6080
|
+
@now[id]['_value'] = '$.' + ( path270 && @input.to_s( path270.start, path270.stop ) )
|
6081
|
+
@now[id]['_variable'] = __ID272__.text
|
6090
6082
|
@now = @now[id]
|
6091
6083
|
|
6092
6084
|
id = '_template'
|
6093
|
-
@now[id] =
|
6094
|
-
'_context' => 'constraint',
|
6095
|
-
'_type' => 'and',
|
6096
|
-
'_self' => id,
|
6097
|
-
}
|
6085
|
+
@now[id] = self.create_constraint(id, 'and')
|
6098
6086
|
@now = @now[id]
|
6099
6087
|
|
6100
6088
|
# <-- action
|
6101
|
-
# at line
|
6089
|
+
# at line 567:3: ( constraint_statement ( NL )+ )*
|
6102
6090
|
while true # decision 114
|
6103
6091
|
alt_114 = 2
|
6104
6092
|
look_114_0 = @input.peek( 1 )
|
@@ -6109,7 +6097,7 @@ module SfpLang
|
|
6109
6097
|
end
|
6110
6098
|
case alt_114
|
6111
6099
|
when 1
|
6112
|
-
# at line
|
6100
|
+
# at line 567:4: constraint_statement ( NL )+
|
6113
6101
|
@state.following.push( TOKENS_FOLLOWING_constraint_statement_IN_constraint_iterator_1631 )
|
6114
6102
|
constraint_statement277 = constraint_statement
|
6115
6103
|
@state.following.pop
|
@@ -6119,7 +6107,7 @@ module SfpLang
|
|
6119
6107
|
@now[( constraint_statement277.nil? ? nil : constraint_statement277.key )] = ( constraint_statement277.nil? ? nil : constraint_statement277.val )
|
6120
6108
|
|
6121
6109
|
# <-- action
|
6122
|
-
# at file
|
6110
|
+
# at file 571:3: ( NL )+
|
6123
6111
|
match_count_113 = 0
|
6124
6112
|
while true
|
6125
6113
|
alt_113 = 2
|
@@ -6131,7 +6119,7 @@ module SfpLang
|
|
6131
6119
|
end
|
6132
6120
|
case alt_113
|
6133
6121
|
when 1
|
6134
|
-
# at line
|
6122
|
+
# at line 571:3: NL
|
6135
6123
|
__NL278__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_iterator_1639 )
|
6136
6124
|
|
6137
6125
|
tree_for_NL278 = @adaptor.create_with_payload( __NL278__ )
|
@@ -6191,7 +6179,7 @@ module SfpLang
|
|
6191
6179
|
# parser rule quantification_keyword
|
6192
6180
|
#
|
6193
6181
|
# (in SfpLang.g)
|
6194
|
-
#
|
6182
|
+
# 579:1: quantification_keyword : ( 'forall' | 'exist' | 'forsome' );
|
6195
6183
|
#
|
6196
6184
|
def quantification_keyword
|
6197
6185
|
# -> uncomment the next line to manually enable rule tracing
|
@@ -6249,7 +6237,7 @@ module SfpLang
|
|
6249
6237
|
# parser rule constraint_class_quantification
|
6250
6238
|
#
|
6251
6239
|
# (in SfpLang.g)
|
6252
|
-
#
|
6240
|
+
# 585:1: constraint_class_quantification : quantification_keyword '(' path 'as' ID ')' ( ( binary_comp | '=' ) NUMBER )? ( NL )* '{' ( NL )+ ( constraint_statement ( NL )+ | constraint_different ( NL )+ | constraint_iterator ( NL )+ )* '}' ;
|
6253
6241
|
#
|
6254
6242
|
def constraint_class_quantification
|
6255
6243
|
# -> uncomment the next line to manually enable rule tracing
|
@@ -6298,7 +6286,7 @@ module SfpLang
|
|
6298
6286
|
root_0 = @adaptor.create_flat_list
|
6299
6287
|
|
6300
6288
|
|
6301
|
-
# at line
|
6289
|
+
# at line 586:4: quantification_keyword '(' path 'as' ID ')' ( ( binary_comp | '=' ) NUMBER )? ( NL )* '{' ( NL )+ ( constraint_statement ( NL )+ | constraint_different ( NL )+ | constraint_iterator ( NL )+ )* '}'
|
6302
6290
|
@state.following.push( TOKENS_FOLLOWING_quantification_keyword_IN_constraint_class_quantification_1682 )
|
6303
6291
|
quantification_keyword281 = quantification_keyword
|
6304
6292
|
@state.following.pop
|
@@ -6340,15 +6328,11 @@ module SfpLang
|
|
6340
6328
|
@now = @now[id]
|
6341
6329
|
|
6342
6330
|
id = '_template'
|
6343
|
-
@now[id] =
|
6344
|
-
'_context' => 'constraint',
|
6345
|
-
'_type' => 'and',
|
6346
|
-
'_self' => id
|
6347
|
-
}
|
6331
|
+
@now[id] = self.create_constraint(id, 'and')
|
6348
6332
|
@now = @now[id]
|
6349
6333
|
|
6350
6334
|
# <-- action
|
6351
|
-
# at line
|
6335
|
+
# at line 602:3: ( ( binary_comp | '=' ) NUMBER )?
|
6352
6336
|
alt_116 = 2
|
6353
6337
|
look_116_0 = @input.peek( 1 )
|
6354
6338
|
|
@@ -6357,8 +6341,8 @@ module SfpLang
|
|
6357
6341
|
end
|
6358
6342
|
case alt_116
|
6359
6343
|
when 1
|
6360
|
-
# at line
|
6361
|
-
# at line
|
6344
|
+
# at line 602:5: ( binary_comp | '=' ) NUMBER
|
6345
|
+
# at line 602:5: ( binary_comp | '=' )
|
6362
6346
|
alt_115 = 2
|
6363
6347
|
look_115_0 = @input.peek( 1 )
|
6364
6348
|
|
@@ -6371,7 +6355,7 @@ module SfpLang
|
|
6371
6355
|
end
|
6372
6356
|
case alt_115
|
6373
6357
|
when 1
|
6374
|
-
# at line
|
6358
|
+
# at line 602:7: binary_comp
|
6375
6359
|
@state.following.push( TOKENS_FOLLOWING_binary_comp_IN_constraint_class_quantification_1704 )
|
6376
6360
|
binary_comp287 = binary_comp
|
6377
6361
|
@state.following.pop
|
@@ -6381,7 +6365,7 @@ module SfpLang
|
|
6381
6365
|
# <-- action
|
6382
6366
|
|
6383
6367
|
when 2
|
6384
|
-
# at line
|
6368
|
+
# at line 604:6: '='
|
6385
6369
|
char_literal288 = match( T__59, TOKENS_FOLLOWING_T__59_IN_constraint_class_quantification_1717 )
|
6386
6370
|
|
6387
6371
|
tree_for_char_literal288 = @adaptor.create_with_payload( char_literal288 )
|
@@ -6402,7 +6386,7 @@ module SfpLang
|
|
6402
6386
|
# <-- action
|
6403
6387
|
|
6404
6388
|
end
|
6405
|
-
# at line
|
6389
|
+
# at line 610:3: ( NL )*
|
6406
6390
|
while true # decision 117
|
6407
6391
|
alt_117 = 2
|
6408
6392
|
look_117_0 = @input.peek( 1 )
|
@@ -6413,7 +6397,7 @@ module SfpLang
|
|
6413
6397
|
end
|
6414
6398
|
case alt_117
|
6415
6399
|
when 1
|
6416
|
-
# at line
|
6400
|
+
# at line 610:3: NL
|
6417
6401
|
__NL290__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_class_quantification_1747 )
|
6418
6402
|
|
6419
6403
|
tree_for_NL290 = @adaptor.create_with_payload( __NL290__ )
|
@@ -6429,7 +6413,7 @@ module SfpLang
|
|
6429
6413
|
tree_for_char_literal291 = @adaptor.create_with_payload( char_literal291 )
|
6430
6414
|
@adaptor.add_child( root_0, tree_for_char_literal291 )
|
6431
6415
|
|
6432
|
-
# at file
|
6416
|
+
# at file 610:11: ( NL )+
|
6433
6417
|
match_count_118 = 0
|
6434
6418
|
while true
|
6435
6419
|
alt_118 = 2
|
@@ -6441,7 +6425,7 @@ module SfpLang
|
|
6441
6425
|
end
|
6442
6426
|
case alt_118
|
6443
6427
|
when 1
|
6444
|
-
# at line
|
6428
|
+
# at line 610:11: NL
|
6445
6429
|
__NL292__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_class_quantification_1752 )
|
6446
6430
|
|
6447
6431
|
tree_for_NL292 = @adaptor.create_with_payload( __NL292__ )
|
@@ -6458,7 +6442,7 @@ module SfpLang
|
|
6458
6442
|
match_count_118 += 1
|
6459
6443
|
end
|
6460
6444
|
|
6461
|
-
# at line
|
6445
|
+
# at line 611:3: ( constraint_statement ( NL )+ | constraint_different ( NL )+ | constraint_iterator ( NL )+ )*
|
6462
6446
|
while true # decision 122
|
6463
6447
|
alt_122 = 4
|
6464
6448
|
case look_122 = @input.peek( 1 )
|
@@ -6468,7 +6452,7 @@ module SfpLang
|
|
6468
6452
|
end
|
6469
6453
|
case alt_122
|
6470
6454
|
when 1
|
6471
|
-
# at line
|
6455
|
+
# at line 611:5: constraint_statement ( NL )+
|
6472
6456
|
@state.following.push( TOKENS_FOLLOWING_constraint_statement_IN_constraint_class_quantification_1759 )
|
6473
6457
|
constraint_statement293 = constraint_statement
|
6474
6458
|
@state.following.pop
|
@@ -6476,7 +6460,7 @@ module SfpLang
|
|
6476
6460
|
# --> action
|
6477
6461
|
@now[( constraint_statement293.nil? ? nil : constraint_statement293.key )] = ( constraint_statement293.nil? ? nil : constraint_statement293.val )
|
6478
6462
|
# <-- action
|
6479
|
-
# at file
|
6463
|
+
# at file 613:4: ( NL )+
|
6480
6464
|
match_count_119 = 0
|
6481
6465
|
while true
|
6482
6466
|
alt_119 = 2
|
@@ -6488,7 +6472,7 @@ module SfpLang
|
|
6488
6472
|
end
|
6489
6473
|
case alt_119
|
6490
6474
|
when 1
|
6491
|
-
# at line
|
6475
|
+
# at line 613:4: NL
|
6492
6476
|
__NL294__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_class_quantification_1769 )
|
6493
6477
|
|
6494
6478
|
tree_for_NL294 = @adaptor.create_with_payload( __NL294__ )
|
@@ -6507,12 +6491,12 @@ module SfpLang
|
|
6507
6491
|
|
6508
6492
|
|
6509
6493
|
when 2
|
6510
|
-
# at line
|
6494
|
+
# at line 614:5: constraint_different ( NL )+
|
6511
6495
|
@state.following.push( TOKENS_FOLLOWING_constraint_different_IN_constraint_class_quantification_1776 )
|
6512
6496
|
constraint_different295 = constraint_different
|
6513
6497
|
@state.following.pop
|
6514
6498
|
@adaptor.add_child( root_0, constraint_different295.tree )
|
6515
|
-
# at file
|
6499
|
+
# at file 614:26: ( NL )+
|
6516
6500
|
match_count_120 = 0
|
6517
6501
|
while true
|
6518
6502
|
alt_120 = 2
|
@@ -6524,7 +6508,7 @@ module SfpLang
|
|
6524
6508
|
end
|
6525
6509
|
case alt_120
|
6526
6510
|
when 1
|
6527
|
-
# at line
|
6511
|
+
# at line 614:26: NL
|
6528
6512
|
__NL296__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_class_quantification_1778 )
|
6529
6513
|
|
6530
6514
|
tree_for_NL296 = @adaptor.create_with_payload( __NL296__ )
|
@@ -6543,12 +6527,12 @@ module SfpLang
|
|
6543
6527
|
|
6544
6528
|
|
6545
6529
|
when 3
|
6546
|
-
# at line
|
6530
|
+
# at line 615:5: constraint_iterator ( NL )+
|
6547
6531
|
@state.following.push( TOKENS_FOLLOWING_constraint_iterator_IN_constraint_class_quantification_1785 )
|
6548
6532
|
constraint_iterator297 = constraint_iterator
|
6549
6533
|
@state.following.pop
|
6550
6534
|
@adaptor.add_child( root_0, constraint_iterator297.tree )
|
6551
|
-
# at file
|
6535
|
+
# at file 615:25: ( NL )+
|
6552
6536
|
match_count_121 = 0
|
6553
6537
|
while true
|
6554
6538
|
alt_121 = 2
|
@@ -6560,7 +6544,7 @@ module SfpLang
|
|
6560
6544
|
end
|
6561
6545
|
case alt_121
|
6562
6546
|
when 1
|
6563
|
-
# at line
|
6547
|
+
# at line 615:25: NL
|
6564
6548
|
__NL298__ = match( NL, TOKENS_FOLLOWING_NL_IN_constraint_class_quantification_1787 )
|
6565
6549
|
|
6566
6550
|
tree_for_NL298 = @adaptor.create_with_payload( __NL298__ )
|
@@ -6620,7 +6604,7 @@ module SfpLang
|
|
6620
6604
|
# parser rule constraint_different
|
6621
6605
|
#
|
6622
6606
|
# (in SfpLang.g)
|
6623
|
-
#
|
6607
|
+
# 621:1: constraint_different : ':different' '(' path ')' ;
|
6624
6608
|
#
|
6625
6609
|
def constraint_different
|
6626
6610
|
# -> uncomment the next line to manually enable rule tracing
|
@@ -6644,7 +6628,7 @@ module SfpLang
|
|
6644
6628
|
root_0 = @adaptor.create_flat_list
|
6645
6629
|
|
6646
6630
|
|
6647
|
-
# at line
|
6631
|
+
# at line 622:4: ':different' '(' path ')'
|
6648
6632
|
string_literal300 = match( T__60, TOKENS_FOLLOWING_T__60_IN_constraint_different_1814 )
|
6649
6633
|
|
6650
6634
|
tree_for_string_literal300 = @adaptor.create_with_payload( string_literal300 )
|
@@ -6702,7 +6686,7 @@ module SfpLang
|
|
6702
6686
|
# parser rule constraint_statement
|
6703
6687
|
#
|
6704
6688
|
# (in SfpLang.g)
|
6705
|
-
#
|
6689
|
+
# 634:1: constraint_statement returns [key, val] : ( reference | 'not' reference | reference equals_op value | reference equals_op NULL | reference not_equals_op value | reference not_equals_op NULL | conditional_constraint | reference ( 'is' )? 'in' set_value | reference ( 'isnot' | 'isnt' | 'not' ) 'in' set_value | reference 'has' value | reference binary_comp comp_value | total_constraint );
|
6706
6690
|
#
|
6707
6691
|
def constraint_statement
|
6708
6692
|
# -> uncomment the next line to manually enable rule tracing
|
@@ -6755,7 +6739,7 @@ module SfpLang
|
|
6755
6739
|
tree_for_string_literal329 = nil
|
6756
6740
|
|
6757
6741
|
begin
|
6758
|
-
# at line
|
6742
|
+
# at line 635:2: ( reference | 'not' reference | reference equals_op value | reference equals_op NULL | reference not_equals_op value | reference not_equals_op NULL | conditional_constraint | reference ( 'is' )? 'in' set_value | reference ( 'isnot' | 'isnt' | 'not' ) 'in' set_value | reference 'has' value | reference binary_comp comp_value | total_constraint )
|
6759
6743
|
alt_124 = 12
|
6760
6744
|
alt_124 = @dfa124.predict( @input )
|
6761
6745
|
case alt_124
|
@@ -6763,7 +6747,7 @@ module SfpLang
|
|
6763
6747
|
root_0 = @adaptor.create_flat_list
|
6764
6748
|
|
6765
6749
|
|
6766
|
-
# at line
|
6750
|
+
# at line 635:4: reference
|
6767
6751
|
@state.following.push( TOKENS_FOLLOWING_reference_IN_constraint_statement_1839 )
|
6768
6752
|
reference304 = reference
|
6769
6753
|
@state.following.pop
|
@@ -6779,7 +6763,7 @@ module SfpLang
|
|
6779
6763
|
root_0 = @adaptor.create_flat_list
|
6780
6764
|
|
6781
6765
|
|
6782
|
-
# at line
|
6766
|
+
# at line 640:4: 'not' reference
|
6783
6767
|
string_literal305 = match( T__61, TOKENS_FOLLOWING_T__61_IN_constraint_statement_1848 )
|
6784
6768
|
|
6785
6769
|
tree_for_string_literal305 = @adaptor.create_with_payload( string_literal305 )
|
@@ -6800,7 +6784,7 @@ module SfpLang
|
|
6800
6784
|
root_0 = @adaptor.create_flat_list
|
6801
6785
|
|
6802
6786
|
|
6803
|
-
# at line
|
6787
|
+
# at line 645:4: reference equals_op value
|
6804
6788
|
@state.following.push( TOKENS_FOLLOWING_reference_IN_constraint_statement_1859 )
|
6805
6789
|
reference307 = reference
|
6806
6790
|
@state.following.pop
|
@@ -6824,7 +6808,7 @@ module SfpLang
|
|
6824
6808
|
root_0 = @adaptor.create_flat_list
|
6825
6809
|
|
6826
6810
|
|
6827
|
-
# at line
|
6811
|
+
# at line 650:4: reference equals_op NULL
|
6828
6812
|
@state.following.push( TOKENS_FOLLOWING_reference_IN_constraint_statement_1872 )
|
6829
6813
|
reference310 = reference
|
6830
6814
|
@state.following.pop
|
@@ -6849,7 +6833,7 @@ module SfpLang
|
|
6849
6833
|
root_0 = @adaptor.create_flat_list
|
6850
6834
|
|
6851
6835
|
|
6852
|
-
# at line
|
6836
|
+
# at line 655:4: reference not_equals_op value
|
6853
6837
|
@state.following.push( TOKENS_FOLLOWING_reference_IN_constraint_statement_1885 )
|
6854
6838
|
reference313 = reference
|
6855
6839
|
@state.following.pop
|
@@ -6873,7 +6857,7 @@ module SfpLang
|
|
6873
6857
|
root_0 = @adaptor.create_flat_list
|
6874
6858
|
|
6875
6859
|
|
6876
|
-
# at line
|
6860
|
+
# at line 660:4: reference not_equals_op NULL
|
6877
6861
|
@state.following.push( TOKENS_FOLLOWING_reference_IN_constraint_statement_1898 )
|
6878
6862
|
reference316 = reference
|
6879
6863
|
@state.following.pop
|
@@ -6898,7 +6882,7 @@ module SfpLang
|
|
6898
6882
|
root_0 = @adaptor.create_flat_list
|
6899
6883
|
|
6900
6884
|
|
6901
|
-
# at line
|
6885
|
+
# at line 665:4: conditional_constraint
|
6902
6886
|
@state.following.push( TOKENS_FOLLOWING_conditional_constraint_IN_constraint_statement_1911 )
|
6903
6887
|
conditional_constraint319 = conditional_constraint
|
6904
6888
|
@state.following.pop
|
@@ -6914,12 +6898,12 @@ module SfpLang
|
|
6914
6898
|
root_0 = @adaptor.create_flat_list
|
6915
6899
|
|
6916
6900
|
|
6917
|
-
# at line
|
6901
|
+
# at line 670:4: reference ( 'is' )? 'in' set_value
|
6918
6902
|
@state.following.push( TOKENS_FOLLOWING_reference_IN_constraint_statement_1920 )
|
6919
6903
|
reference320 = reference
|
6920
6904
|
@state.following.pop
|
6921
6905
|
@adaptor.add_child( root_0, reference320.tree )
|
6922
|
-
# at line
|
6906
|
+
# at line 670:14: ( 'is' )?
|
6923
6907
|
alt_123 = 2
|
6924
6908
|
look_123_0 = @input.peek( 1 )
|
6925
6909
|
|
@@ -6928,7 +6912,7 @@ module SfpLang
|
|
6928
6912
|
end
|
6929
6913
|
case alt_123
|
6930
6914
|
when 1
|
6931
|
-
# at line
|
6915
|
+
# at line 670:14: 'is'
|
6932
6916
|
string_literal321 = match( T__62, TOKENS_FOLLOWING_T__62_IN_constraint_statement_1922 )
|
6933
6917
|
|
6934
6918
|
tree_for_string_literal321 = @adaptor.create_with_payload( string_literal321 )
|
@@ -6963,7 +6947,7 @@ module SfpLang
|
|
6963
6947
|
root_0 = @adaptor.create_flat_list
|
6964
6948
|
|
6965
6949
|
|
6966
|
-
# at line
|
6950
|
+
# at line 682:4: reference ( 'isnot' | 'isnt' | 'not' ) 'in' set_value
|
6967
6951
|
@state.following.push( TOKENS_FOLLOWING_reference_IN_constraint_statement_1936 )
|
6968
6952
|
reference324 = reference
|
6969
6953
|
@state.following.pop
|
@@ -7009,7 +6993,7 @@ module SfpLang
|
|
7009
6993
|
root_0 = @adaptor.create_flat_list
|
7010
6994
|
|
7011
6995
|
|
7012
|
-
# at line
|
6996
|
+
# at line 697:4: reference 'has' value
|
7013
6997
|
@state.following.push( TOKENS_FOLLOWING_reference_IN_constraint_statement_1957 )
|
7014
6998
|
reference328 = reference
|
7015
6999
|
@state.following.pop
|
@@ -7038,7 +7022,7 @@ module SfpLang
|
|
7038
7022
|
root_0 = @adaptor.create_flat_list
|
7039
7023
|
|
7040
7024
|
|
7041
|
-
# at line
|
7025
|
+
# at line 706:4: reference binary_comp comp_value
|
7042
7026
|
@state.following.push( TOKENS_FOLLOWING_reference_IN_constraint_statement_1970 )
|
7043
7027
|
reference331 = reference
|
7044
7028
|
@state.following.pop
|
@@ -7062,7 +7046,7 @@ module SfpLang
|
|
7062
7046
|
root_0 = @adaptor.create_flat_list
|
7063
7047
|
|
7064
7048
|
|
7065
|
-
# at line
|
7049
|
+
# at line 711:4: total_constraint
|
7066
7050
|
@state.following.push( TOKENS_FOLLOWING_total_constraint_IN_constraint_statement_1983 )
|
7067
7051
|
total_constraint334 = total_constraint
|
7068
7052
|
@state.following.pop
|
@@ -7095,7 +7079,7 @@ module SfpLang
|
|
7095
7079
|
# parser rule total_constraint
|
7096
7080
|
#
|
7097
7081
|
# (in SfpLang.g)
|
7098
|
-
#
|
7082
|
+
# 714:1: total_constraint : 'total(' total_statement ')' binary_comp NUMBER ;
|
7099
7083
|
#
|
7100
7084
|
def total_constraint
|
7101
7085
|
# -> uncomment the next line to manually enable rule tracing
|
@@ -7120,7 +7104,7 @@ module SfpLang
|
|
7120
7104
|
root_0 = @adaptor.create_flat_list
|
7121
7105
|
|
7122
7106
|
|
7123
|
-
# at line
|
7107
|
+
# at line 715:4: 'total(' total_statement ')' binary_comp NUMBER
|
7124
7108
|
string_literal335 = match( T__67, TOKENS_FOLLOWING_T__67_IN_total_constraint_1994 )
|
7125
7109
|
|
7126
7110
|
tree_for_string_literal335 = @adaptor.create_with_payload( string_literal335 )
|
@@ -7171,7 +7155,7 @@ module SfpLang
|
|
7171
7155
|
# parser rule total_statement
|
7172
7156
|
#
|
7173
7157
|
# (in SfpLang.g)
|
7174
|
-
#
|
7158
|
+
# 718:1: total_statement : reference equals_op value ;
|
7175
7159
|
#
|
7176
7160
|
def total_statement
|
7177
7161
|
# -> uncomment the next line to manually enable rule tracing
|
@@ -7191,7 +7175,7 @@ module SfpLang
|
|
7191
7175
|
root_0 = @adaptor.create_flat_list
|
7192
7176
|
|
7193
7177
|
|
7194
|
-
# at line
|
7178
|
+
# at line 719:4: reference equals_op value
|
7195
7179
|
@state.following.push( TOKENS_FOLLOWING_reference_IN_total_statement_2013 )
|
7196
7180
|
reference340 = reference
|
7197
7181
|
@state.following.pop
|
@@ -7231,7 +7215,7 @@ module SfpLang
|
|
7231
7215
|
# parser rule comp_value
|
7232
7216
|
#
|
7233
7217
|
# (in SfpLang.g)
|
7234
|
-
#
|
7218
|
+
# 722:1: comp_value returns [val] : ( NUMBER | reference );
|
7235
7219
|
#
|
7236
7220
|
def comp_value
|
7237
7221
|
# -> uncomment the next line to manually enable rule tracing
|
@@ -7248,7 +7232,7 @@ module SfpLang
|
|
7248
7232
|
tree_for_NUMBER343 = nil
|
7249
7233
|
|
7250
7234
|
begin
|
7251
|
-
# at line
|
7235
|
+
# at line 723:2: ( NUMBER | reference )
|
7252
7236
|
alt_125 = 2
|
7253
7237
|
look_125_0 = @input.peek( 1 )
|
7254
7238
|
|
@@ -7264,7 +7248,7 @@ module SfpLang
|
|
7264
7248
|
root_0 = @adaptor.create_flat_list
|
7265
7249
|
|
7266
7250
|
|
7267
|
-
# at line
|
7251
|
+
# at line 723:4: NUMBER
|
7268
7252
|
__NUMBER343__ = match( NUMBER, TOKENS_FOLLOWING_NUMBER_IN_comp_value_2032 )
|
7269
7253
|
|
7270
7254
|
tree_for_NUMBER343 = @adaptor.create_with_payload( __NUMBER343__ )
|
@@ -7278,7 +7262,7 @@ module SfpLang
|
|
7278
7262
|
root_0 = @adaptor.create_flat_list
|
7279
7263
|
|
7280
7264
|
|
7281
|
-
# at line
|
7265
|
+
# at line 725:4: reference
|
7282
7266
|
@state.following.push( TOKENS_FOLLOWING_reference_IN_comp_value_2041 )
|
7283
7267
|
reference344 = reference
|
7284
7268
|
@state.following.pop
|
@@ -7314,7 +7298,7 @@ module SfpLang
|
|
7314
7298
|
# parser rule conditional_constraint
|
7315
7299
|
#
|
7316
7300
|
# (in SfpLang.g)
|
7317
|
-
#
|
7301
|
+
# 729:1: conditional_constraint returns [key, val] : 'if' conditional_constraint_if_part conditional_constraint_then_part ;
|
7318
7302
|
#
|
7319
7303
|
def conditional_constraint
|
7320
7304
|
# -> uncomment the next line to manually enable rule tracing
|
@@ -7335,7 +7319,7 @@ module SfpLang
|
|
7335
7319
|
root_0 = @adaptor.create_flat_list
|
7336
7320
|
|
7337
7321
|
|
7338
|
-
# at line
|
7322
|
+
# at line 730:4: 'if' conditional_constraint_if_part conditional_constraint_then_part
|
7339
7323
|
string_literal345 = match( T__32, TOKENS_FOLLOWING_T__32_IN_conditional_constraint_2060 )
|
7340
7324
|
|
7341
7325
|
tree_for_string_literal345 = @adaptor.create_with_payload( string_literal345 )
|
@@ -7344,10 +7328,7 @@ module SfpLang
|
|
7344
7328
|
# --> action
|
7345
7329
|
|
7346
7330
|
return_value.key = id = self.next_id.to_s
|
7347
|
-
@now[id] =
|
7348
|
-
'_context' => 'constraint',
|
7349
|
-
'_type' => 'or'
|
7350
|
-
}
|
7331
|
+
@now[id] = self.create_constraint(id, 'imply')
|
7351
7332
|
@now = @now[id]
|
7352
7333
|
|
7353
7334
|
# <-- action
|
@@ -7389,7 +7370,7 @@ module SfpLang
|
|
7389
7370
|
# parser rule conditional_constraint_if_part
|
7390
7371
|
#
|
7391
7372
|
# (in SfpLang.g)
|
7392
|
-
#
|
7373
|
+
# 741:1: conditional_constraint_if_part : ( constraint_statement ( NL )* | '{' ( NL )+ constraint_body '}' ( NL )* );
|
7393
7374
|
#
|
7394
7375
|
def conditional_constraint_if_part
|
7395
7376
|
# -> uncomment the next line to manually enable rule tracing
|
@@ -7415,7 +7396,7 @@ module SfpLang
|
|
7415
7396
|
tree_for_NL354 = nil
|
7416
7397
|
|
7417
7398
|
begin
|
7418
|
-
# at line
|
7399
|
+
# at line 742:2: ( constraint_statement ( NL )* | '{' ( NL )+ constraint_body '}' ( NL )* )
|
7419
7400
|
alt_129 = 2
|
7420
7401
|
look_129_0 = @input.peek( 1 )
|
7421
7402
|
|
@@ -7431,12 +7412,12 @@ module SfpLang
|
|
7431
7412
|
root_0 = @adaptor.create_flat_list
|
7432
7413
|
|
7433
7414
|
|
7434
|
-
# at line
|
7415
|
+
# at line 742:4: constraint_statement ( NL )*
|
7435
7416
|
@state.following.push( TOKENS_FOLLOWING_constraint_statement_IN_conditional_constraint_if_part_2087 )
|
7436
7417
|
constraint_statement348 = constraint_statement
|
7437
7418
|
@state.following.pop
|
7438
7419
|
@adaptor.add_child( root_0, constraint_statement348.tree )
|
7439
|
-
# at line
|
7420
|
+
# at line 742:25: ( NL )*
|
7440
7421
|
while true # decision 126
|
7441
7422
|
alt_126 = 2
|
7442
7423
|
look_126_0 = @input.peek( 1 )
|
@@ -7447,7 +7428,7 @@ module SfpLang
|
|
7447
7428
|
end
|
7448
7429
|
case alt_126
|
7449
7430
|
when 1
|
7450
|
-
# at line
|
7431
|
+
# at line 742:25: NL
|
7451
7432
|
__NL349__ = match( NL, TOKENS_FOLLOWING_NL_IN_conditional_constraint_if_part_2089 )
|
7452
7433
|
|
7453
7434
|
tree_for_NL349 = @adaptor.create_with_payload( __NL349__ )
|
@@ -7461,10 +7442,8 @@ module SfpLang
|
|
7461
7442
|
# --> action
|
7462
7443
|
|
7463
7444
|
id = self.next_id
|
7464
|
-
@now[id] =
|
7465
|
-
|
7466
|
-
'_type' => 'not'
|
7467
|
-
}
|
7445
|
+
@now[id] = self.create_constraint(id, 'and')
|
7446
|
+
@now[id]['_subtype'] = 'premise'
|
7468
7447
|
@now[id][( constraint_statement348.nil? ? nil : constraint_statement348.key )] = ( constraint_statement348.nil? ? nil : constraint_statement348.val )
|
7469
7448
|
|
7470
7449
|
# <-- action
|
@@ -7473,7 +7452,7 @@ module SfpLang
|
|
7473
7452
|
root_0 = @adaptor.create_flat_list
|
7474
7453
|
|
7475
7454
|
|
7476
|
-
# at line
|
7455
|
+
# at line 749:4: '{' ( NL )+ constraint_body '}' ( NL )*
|
7477
7456
|
char_literal350 = match( T__20, TOKENS_FOLLOWING_T__20_IN_conditional_constraint_if_part_2099 )
|
7478
7457
|
|
7479
7458
|
tree_for_char_literal350 = @adaptor.create_with_payload( char_literal350 )
|
@@ -7482,11 +7461,12 @@ module SfpLang
|
|
7482
7461
|
# --> action
|
7483
7462
|
|
7484
7463
|
id = self.next_id
|
7485
|
-
@now[id] = self.create_constraint(id, '
|
7464
|
+
@now[id] = self.create_constraint(id, 'and')
|
7465
|
+
@now[id]['_subtype'] = 'premise'
|
7486
7466
|
@now = @now[id]
|
7487
7467
|
|
7488
7468
|
# <-- action
|
7489
|
-
# at file
|
7469
|
+
# at file 756:3: ( NL )+
|
7490
7470
|
match_count_127 = 0
|
7491
7471
|
while true
|
7492
7472
|
alt_127 = 2
|
@@ -7498,7 +7478,7 @@ module SfpLang
|
|
7498
7478
|
end
|
7499
7479
|
case alt_127
|
7500
7480
|
when 1
|
7501
|
-
# at line
|
7481
|
+
# at line 756:3: NL
|
7502
7482
|
__NL351__ = match( NL, TOKENS_FOLLOWING_NL_IN_conditional_constraint_if_part_2107 )
|
7503
7483
|
|
7504
7484
|
tree_for_NL351 = @adaptor.create_with_payload( __NL351__ )
|
@@ -7524,7 +7504,7 @@ module SfpLang
|
|
7524
7504
|
tree_for_char_literal353 = @adaptor.create_with_payload( char_literal353 )
|
7525
7505
|
@adaptor.add_child( root_0, tree_for_char_literal353 )
|
7526
7506
|
|
7527
|
-
# at line
|
7507
|
+
# at line 757:7: ( NL )*
|
7528
7508
|
while true # decision 128
|
7529
7509
|
alt_128 = 2
|
7530
7510
|
look_128_0 = @input.peek( 1 )
|
@@ -7535,7 +7515,7 @@ module SfpLang
|
|
7535
7515
|
end
|
7536
7516
|
case alt_128
|
7537
7517
|
when 1
|
7538
|
-
# at line
|
7518
|
+
# at line 757:7: NL
|
7539
7519
|
__NL354__ = match( NL, TOKENS_FOLLOWING_NL_IN_conditional_constraint_if_part_2116 )
|
7540
7520
|
|
7541
7521
|
tree_for_NL354 = @adaptor.create_with_payload( __NL354__ )
|
@@ -7577,7 +7557,7 @@ module SfpLang
|
|
7577
7557
|
# parser rule conditional_constraint_then_part
|
7578
7558
|
#
|
7579
7559
|
# (in SfpLang.g)
|
7580
|
-
#
|
7560
|
+
# 761:1: conditional_constraint_then_part : ( 'then' constraint_statement | 'then' '{' ( NL )+ constraint_body '}' );
|
7581
7561
|
#
|
7582
7562
|
def conditional_constraint_then_part
|
7583
7563
|
# -> uncomment the next line to manually enable rule tracing
|
@@ -7603,7 +7583,7 @@ module SfpLang
|
|
7603
7583
|
tree_for_char_literal361 = nil
|
7604
7584
|
|
7605
7585
|
begin
|
7606
|
-
# at line
|
7586
|
+
# at line 762:2: ( 'then' constraint_statement | 'then' '{' ( NL )+ constraint_body '}' )
|
7607
7587
|
alt_131 = 2
|
7608
7588
|
look_131_0 = @input.peek( 1 )
|
7609
7589
|
|
@@ -7625,7 +7605,7 @@ module SfpLang
|
|
7625
7605
|
root_0 = @adaptor.create_flat_list
|
7626
7606
|
|
7627
7607
|
|
7628
|
-
# at line
|
7608
|
+
# at line 762:4: 'then' constraint_statement
|
7629
7609
|
string_literal355 = match( T__33, TOKENS_FOLLOWING_T__33_IN_conditional_constraint_then_part_2132 )
|
7630
7610
|
|
7631
7611
|
tree_for_string_literal355 = @adaptor.create_with_payload( string_literal355 )
|
@@ -7638,10 +7618,8 @@ module SfpLang
|
|
7638
7618
|
# --> action
|
7639
7619
|
|
7640
7620
|
id = self.next_id
|
7641
|
-
@now[id] =
|
7642
|
-
|
7643
|
-
'_type' => 'and'
|
7644
|
-
}
|
7621
|
+
@now[id] = self.create_constraint(id, 'and')
|
7622
|
+
@now[id]['_subtype'] = 'conclusion'
|
7645
7623
|
@now[id][( constraint_statement356.nil? ? nil : constraint_statement356.key )] = ( constraint_statement356.nil? ? nil : constraint_statement356.val )
|
7646
7624
|
|
7647
7625
|
# <-- action
|
@@ -7650,7 +7628,7 @@ module SfpLang
|
|
7650
7628
|
root_0 = @adaptor.create_flat_list
|
7651
7629
|
|
7652
7630
|
|
7653
|
-
# at line
|
7631
|
+
# at line 769:4: 'then' '{' ( NL )+ constraint_body '}'
|
7654
7632
|
string_literal357 = match( T__33, TOKENS_FOLLOWING_T__33_IN_conditional_constraint_then_part_2143 )
|
7655
7633
|
|
7656
7634
|
tree_for_string_literal357 = @adaptor.create_with_payload( string_literal357 )
|
@@ -7659,10 +7637,8 @@ module SfpLang
|
|
7659
7637
|
# --> action
|
7660
7638
|
|
7661
7639
|
id = self.next_id
|
7662
|
-
@now[id] =
|
7663
|
-
|
7664
|
-
'_type' => 'and'
|
7665
|
-
}
|
7640
|
+
@now[id] = self.create_constraint(id, 'and')
|
7641
|
+
@now[id]['_subtype'] = 'conclusion'
|
7666
7642
|
@now = @now[id]
|
7667
7643
|
|
7668
7644
|
# <-- action
|
@@ -7671,7 +7647,7 @@ module SfpLang
|
|
7671
7647
|
tree_for_char_literal358 = @adaptor.create_with_payload( char_literal358 )
|
7672
7648
|
@adaptor.add_child( root_0, tree_for_char_literal358 )
|
7673
7649
|
|
7674
|
-
# at file
|
7650
|
+
# at file 776:7: ( NL )+
|
7675
7651
|
match_count_130 = 0
|
7676
7652
|
while true
|
7677
7653
|
alt_130 = 2
|
@@ -7683,7 +7659,7 @@ module SfpLang
|
|
7683
7659
|
end
|
7684
7660
|
case alt_130
|
7685
7661
|
when 1
|
7686
|
-
# at line
|
7662
|
+
# at line 776:7: NL
|
7687
7663
|
__NL359__ = match( NL, TOKENS_FOLLOWING_NL_IN_conditional_constraint_then_part_2153 )
|
7688
7664
|
|
7689
7665
|
tree_for_NL359 = @adaptor.create_with_payload( __NL359__ )
|
@@ -7740,7 +7716,7 @@ module SfpLang
|
|
7740
7716
|
# parser rule effect_body
|
7741
7717
|
#
|
7742
7718
|
# (in SfpLang.g)
|
7743
|
-
#
|
7719
|
+
# 780:1: effect_body : ( ( mutation | mutation_iterator ) ( NL )+ )* ;
|
7744
7720
|
#
|
7745
7721
|
def effect_body
|
7746
7722
|
# -> uncomment the next line to manually enable rule tracing
|
@@ -7761,8 +7737,8 @@ module SfpLang
|
|
7761
7737
|
root_0 = @adaptor.create_flat_list
|
7762
7738
|
|
7763
7739
|
|
7764
|
-
# at line
|
7765
|
-
# at line
|
7740
|
+
# at line 781:4: ( ( mutation | mutation_iterator ) ( NL )+ )*
|
7741
|
+
# at line 781:4: ( ( mutation | mutation_iterator ) ( NL )+ )*
|
7766
7742
|
while true # decision 134
|
7767
7743
|
alt_134 = 2
|
7768
7744
|
look_134_0 = @input.peek( 1 )
|
@@ -7773,8 +7749,8 @@ module SfpLang
|
|
7773
7749
|
end
|
7774
7750
|
case alt_134
|
7775
7751
|
when 1
|
7776
|
-
# at line
|
7777
|
-
# at line
|
7752
|
+
# at line 782:4: ( mutation | mutation_iterator ) ( NL )+
|
7753
|
+
# at line 782:4: ( mutation | mutation_iterator )
|
7778
7754
|
alt_132 = 2
|
7779
7755
|
look_132_0 = @input.peek( 1 )
|
7780
7756
|
|
@@ -7787,7 +7763,7 @@ module SfpLang
|
|
7787
7763
|
end
|
7788
7764
|
case alt_132
|
7789
7765
|
when 1
|
7790
|
-
# at line
|
7766
|
+
# at line 782:6: mutation
|
7791
7767
|
@state.following.push( TOKENS_FOLLOWING_mutation_IN_effect_body_2180 )
|
7792
7768
|
mutation362 = mutation
|
7793
7769
|
@state.following.pop
|
@@ -7797,14 +7773,14 @@ module SfpLang
|
|
7797
7773
|
# <-- action
|
7798
7774
|
|
7799
7775
|
when 2
|
7800
|
-
# at line
|
7776
|
+
# at line 784:6: mutation_iterator
|
7801
7777
|
@state.following.push( TOKENS_FOLLOWING_mutation_iterator_IN_effect_body_2193 )
|
7802
7778
|
mutation_iterator363 = mutation_iterator
|
7803
7779
|
@state.following.pop
|
7804
7780
|
@adaptor.add_child( root_0, mutation_iterator363.tree )
|
7805
7781
|
|
7806
7782
|
end
|
7807
|
-
# at file
|
7783
|
+
# at file 786:3: ( NL )+
|
7808
7784
|
match_count_133 = 0
|
7809
7785
|
while true
|
7810
7786
|
alt_133 = 2
|
@@ -7816,7 +7792,7 @@ module SfpLang
|
|
7816
7792
|
end
|
7817
7793
|
case alt_133
|
7818
7794
|
when 1
|
7819
|
-
# at line
|
7795
|
+
# at line 786:3: NL
|
7820
7796
|
__NL364__ = match( NL, TOKENS_FOLLOWING_NL_IN_effect_body_2202 )
|
7821
7797
|
|
7822
7798
|
tree_for_NL364 = @adaptor.create_with_payload( __NL364__ )
|
@@ -7865,7 +7841,7 @@ module SfpLang
|
|
7865
7841
|
# parser rule mutation_iterator
|
7866
7842
|
#
|
7867
7843
|
# (in SfpLang.g)
|
7868
|
-
#
|
7844
|
+
# 789:1: mutation_iterator : 'foreach' path 'as' ID ( NL )* '{' ( NL )+ ( mutation ( NL )+ )* '}' ;
|
7869
7845
|
#
|
7870
7846
|
def mutation_iterator
|
7871
7847
|
# -> uncomment the next line to manually enable rule tracing
|
@@ -7900,7 +7876,7 @@ module SfpLang
|
|
7900
7876
|
root_0 = @adaptor.create_flat_list
|
7901
7877
|
|
7902
7878
|
|
7903
|
-
# at line
|
7879
|
+
# at line 790:4: 'foreach' path 'as' ID ( NL )* '{' ( NL )+ ( mutation ( NL )+ )* '}'
|
7904
7880
|
string_literal365 = match( T__54, TOKENS_FOLLOWING_T__54_IN_mutation_iterator_2217 )
|
7905
7881
|
|
7906
7882
|
tree_for_string_literal365 = @adaptor.create_with_payload( string_literal365 )
|
@@ -7920,7 +7896,7 @@ module SfpLang
|
|
7920
7896
|
tree_for_ID368 = @adaptor.create_with_payload( __ID368__ )
|
7921
7897
|
@adaptor.add_child( root_0, tree_for_ID368 )
|
7922
7898
|
|
7923
|
-
# at line
|
7899
|
+
# at line 790:27: ( NL )*
|
7924
7900
|
while true # decision 135
|
7925
7901
|
alt_135 = 2
|
7926
7902
|
look_135_0 = @input.peek( 1 )
|
@@ -7931,7 +7907,7 @@ module SfpLang
|
|
7931
7907
|
end
|
7932
7908
|
case alt_135
|
7933
7909
|
when 1
|
7934
|
-
# at line
|
7910
|
+
# at line 790:27: NL
|
7935
7911
|
__NL369__ = match( NL, TOKENS_FOLLOWING_NL_IN_mutation_iterator_2225 )
|
7936
7912
|
|
7937
7913
|
tree_for_NL369 = @adaptor.create_with_payload( __NL369__ )
|
@@ -7947,7 +7923,7 @@ module SfpLang
|
|
7947
7923
|
tree_for_char_literal370 = @adaptor.create_with_payload( char_literal370 )
|
7948
7924
|
@adaptor.add_child( root_0, tree_for_char_literal370 )
|
7949
7925
|
|
7950
|
-
# at file
|
7926
|
+
# at file 790:35: ( NL )+
|
7951
7927
|
match_count_136 = 0
|
7952
7928
|
while true
|
7953
7929
|
alt_136 = 2
|
@@ -7959,7 +7935,7 @@ module SfpLang
|
|
7959
7935
|
end
|
7960
7936
|
case alt_136
|
7961
7937
|
when 1
|
7962
|
-
# at line
|
7938
|
+
# at line 790:35: NL
|
7963
7939
|
__NL371__ = match( NL, TOKENS_FOLLOWING_NL_IN_mutation_iterator_2230 )
|
7964
7940
|
|
7965
7941
|
tree_for_NL371 = @adaptor.create_with_payload( __NL371__ )
|
@@ -7987,7 +7963,7 @@ module SfpLang
|
|
7987
7963
|
@now = @now[id]
|
7988
7964
|
|
7989
7965
|
# <-- action
|
7990
|
-
# at line
|
7966
|
+
# at line 800:3: ( mutation ( NL )+ )*
|
7991
7967
|
while true # decision 138
|
7992
7968
|
alt_138 = 2
|
7993
7969
|
look_138_0 = @input.peek( 1 )
|
@@ -7998,7 +7974,7 @@ module SfpLang
|
|
7998
7974
|
end
|
7999
7975
|
case alt_138
|
8000
7976
|
when 1
|
8001
|
-
# at line
|
7977
|
+
# at line 800:4: mutation ( NL )+
|
8002
7978
|
@state.following.push( TOKENS_FOLLOWING_mutation_IN_mutation_iterator_2240 )
|
8003
7979
|
mutation372 = mutation
|
8004
7980
|
@state.following.pop
|
@@ -8006,7 +7982,7 @@ module SfpLang
|
|
8006
7982
|
# --> action
|
8007
7983
|
@now[( mutation372.nil? ? nil : mutation372.key )] = ( mutation372.nil? ? nil : mutation372.val )
|
8008
7984
|
# <-- action
|
8009
|
-
# at file
|
7985
|
+
# at file 802:3: ( NL )+
|
8010
7986
|
match_count_137 = 0
|
8011
7987
|
while true
|
8012
7988
|
alt_137 = 2
|
@@ -8018,7 +7994,7 @@ module SfpLang
|
|
8018
7994
|
end
|
8019
7995
|
case alt_137
|
8020
7996
|
when 1
|
8021
|
-
# at line
|
7997
|
+
# at line 802:3: NL
|
8022
7998
|
__NL373__ = match( NL, TOKENS_FOLLOWING_NL_IN_mutation_iterator_2248 )
|
8023
7999
|
|
8024
8000
|
tree_for_NL373 = @adaptor.create_with_payload( __NL373__ )
|
@@ -8075,7 +8051,7 @@ module SfpLang
|
|
8075
8051
|
# parser rule mutation
|
8076
8052
|
#
|
8077
8053
|
# (in SfpLang.g)
|
8078
|
-
#
|
8054
|
+
# 807:1: mutation returns [key, val] : ( reference equals_op value | reference equals_op NULL | reference binary_op NUMBER | reference 'is' 'new' path ( object_body )? | 'delete' path | reference 'add(' value ')' | reference 'remove(' value ')' );
|
8079
8055
|
#
|
8080
8056
|
def mutation
|
8081
8057
|
# -> uncomment the next line to manually enable rule tracing
|
@@ -8122,7 +8098,7 @@ module SfpLang
|
|
8122
8098
|
tree_for_char_literal398 = nil
|
8123
8099
|
|
8124
8100
|
begin
|
8125
|
-
# at line
|
8101
|
+
# at line 808:2: ( reference equals_op value | reference equals_op NULL | reference binary_op NUMBER | reference 'is' 'new' path ( object_body )? | 'delete' path | reference 'add(' value ')' | reference 'remove(' value ')' )
|
8126
8102
|
alt_140 = 7
|
8127
8103
|
alt_140 = @dfa140.predict( @input )
|
8128
8104
|
case alt_140
|
@@ -8130,7 +8106,7 @@ module SfpLang
|
|
8130
8106
|
root_0 = @adaptor.create_flat_list
|
8131
8107
|
|
8132
8108
|
|
8133
|
-
# at line
|
8109
|
+
# at line 808:4: reference equals_op value
|
8134
8110
|
@state.following.push( TOKENS_FOLLOWING_reference_IN_mutation_2274 )
|
8135
8111
|
reference375 = reference
|
8136
8112
|
@state.following.pop
|
@@ -8157,7 +8133,7 @@ module SfpLang
|
|
8157
8133
|
root_0 = @adaptor.create_flat_list
|
8158
8134
|
|
8159
8135
|
|
8160
|
-
# at line
|
8136
|
+
# at line 816:4: reference equals_op NULL
|
8161
8137
|
@state.following.push( TOKENS_FOLLOWING_reference_IN_mutation_2287 )
|
8162
8138
|
reference378 = reference
|
8163
8139
|
@state.following.pop
|
@@ -8185,7 +8161,7 @@ module SfpLang
|
|
8185
8161
|
root_0 = @adaptor.create_flat_list
|
8186
8162
|
|
8187
8163
|
|
8188
|
-
# at line
|
8164
|
+
# at line 824:4: reference binary_op NUMBER
|
8189
8165
|
@state.following.push( TOKENS_FOLLOWING_reference_IN_mutation_2300 )
|
8190
8166
|
reference381 = reference
|
8191
8167
|
@state.following.pop
|
@@ -8213,7 +8189,7 @@ module SfpLang
|
|
8213
8189
|
root_0 = @adaptor.create_flat_list
|
8214
8190
|
|
8215
8191
|
|
8216
|
-
# at line
|
8192
|
+
# at line 832:4: reference 'is' 'new' path ( object_body )?
|
8217
8193
|
@state.following.push( TOKENS_FOLLOWING_reference_IN_mutation_2313 )
|
8218
8194
|
reference384 = reference
|
8219
8195
|
@state.following.pop
|
@@ -8243,7 +8219,7 @@ module SfpLang
|
|
8243
8219
|
@now = @now[id]
|
8244
8220
|
|
8245
8221
|
# <-- action
|
8246
|
-
# at line
|
8222
|
+
# at line 842:3: ( object_body )?
|
8247
8223
|
alt_139 = 2
|
8248
8224
|
look_139_0 = @input.peek( 1 )
|
8249
8225
|
|
@@ -8252,7 +8228,7 @@ module SfpLang
|
|
8252
8228
|
end
|
8253
8229
|
case alt_139
|
8254
8230
|
when 1
|
8255
|
-
# at line
|
8231
|
+
# at line 842:3: object_body
|
8256
8232
|
@state.following.push( TOKENS_FOLLOWING_object_body_IN_mutation_2327 )
|
8257
8233
|
object_body388 = object_body
|
8258
8234
|
@state.following.pop
|
@@ -8272,7 +8248,7 @@ module SfpLang
|
|
8272
8248
|
root_0 = @adaptor.create_flat_list
|
8273
8249
|
|
8274
8250
|
|
8275
|
-
# at line
|
8251
|
+
# at line 849:4: 'delete' path
|
8276
8252
|
string_literal389 = match( T__69, TOKENS_FOLLOWING_T__69_IN_mutation_2337 )
|
8277
8253
|
|
8278
8254
|
tree_for_string_literal389 = @adaptor.create_with_payload( string_literal389 )
|
@@ -8297,7 +8273,7 @@ module SfpLang
|
|
8297
8273
|
root_0 = @adaptor.create_flat_list
|
8298
8274
|
|
8299
8275
|
|
8300
|
-
# at line
|
8276
|
+
# at line 858:4: reference 'add(' value ')'
|
8301
8277
|
@state.following.push( TOKENS_FOLLOWING_reference_IN_mutation_2348 )
|
8302
8278
|
reference391 = reference
|
8303
8279
|
@state.following.pop
|
@@ -8330,7 +8306,7 @@ module SfpLang
|
|
8330
8306
|
root_0 = @adaptor.create_flat_list
|
8331
8307
|
|
8332
8308
|
|
8333
|
-
# at line
|
8309
|
+
# at line 866:4: reference 'remove(' value ')'
|
8334
8310
|
@state.following.push( TOKENS_FOLLOWING_reference_IN_mutation_2363 )
|
8335
8311
|
reference395 = reference
|
8336
8312
|
@state.following.pop
|
@@ -8386,7 +8362,7 @@ module SfpLang
|
|
8386
8362
|
# parser rule set_value
|
8387
8363
|
#
|
8388
8364
|
# (in SfpLang.g)
|
8389
|
-
#
|
8365
|
+
# 876:1: set_value returns [val] : '(' ( set_item ( ',' ( NL )* set_item )* )? ')' ;
|
8390
8366
|
#
|
8391
8367
|
def set_value
|
8392
8368
|
# -> uncomment the next line to manually enable rule tracing
|
@@ -8413,7 +8389,7 @@ module SfpLang
|
|
8413
8389
|
root_0 = @adaptor.create_flat_list
|
8414
8390
|
|
8415
8391
|
|
8416
|
-
# at line
|
8392
|
+
# at line 877:4: '(' ( set_item ( ',' ( NL )* set_item )* )? ')'
|
8417
8393
|
char_literal399 = match( T__42, TOKENS_FOLLOWING_T__42_IN_set_value_2388 )
|
8418
8394
|
|
8419
8395
|
tree_for_char_literal399 = @adaptor.create_with_payload( char_literal399 )
|
@@ -8422,7 +8398,7 @@ module SfpLang
|
|
8422
8398
|
# --> action
|
8423
8399
|
@set = Array.new
|
8424
8400
|
# <-- action
|
8425
|
-
# at line
|
8401
|
+
# at line 879:3: ( set_item ( ',' ( NL )* set_item )* )?
|
8426
8402
|
alt_143 = 2
|
8427
8403
|
look_143_0 = @input.peek( 1 )
|
8428
8404
|
|
@@ -8431,12 +8407,12 @@ module SfpLang
|
|
8431
8407
|
end
|
8432
8408
|
case alt_143
|
8433
8409
|
when 1
|
8434
|
-
# at line
|
8410
|
+
# at line 879:4: set_item ( ',' ( NL )* set_item )*
|
8435
8411
|
@state.following.push( TOKENS_FOLLOWING_set_item_IN_set_value_2397 )
|
8436
8412
|
set_item400 = set_item
|
8437
8413
|
@state.following.pop
|
8438
8414
|
@adaptor.add_child( root_0, set_item400.tree )
|
8439
|
-
# at line
|
8415
|
+
# at line 879:13: ( ',' ( NL )* set_item )*
|
8440
8416
|
while true # decision 142
|
8441
8417
|
alt_142 = 2
|
8442
8418
|
look_142_0 = @input.peek( 1 )
|
@@ -8447,13 +8423,13 @@ module SfpLang
|
|
8447
8423
|
end
|
8448
8424
|
case alt_142
|
8449
8425
|
when 1
|
8450
|
-
# at line
|
8426
|
+
# at line 879:14: ',' ( NL )* set_item
|
8451
8427
|
char_literal401 = match( T__30, TOKENS_FOLLOWING_T__30_IN_set_value_2400 )
|
8452
8428
|
|
8453
8429
|
tree_for_char_literal401 = @adaptor.create_with_payload( char_literal401 )
|
8454
8430
|
@adaptor.add_child( root_0, tree_for_char_literal401 )
|
8455
8431
|
|
8456
|
-
# at line
|
8432
|
+
# at line 879:18: ( NL )*
|
8457
8433
|
while true # decision 141
|
8458
8434
|
alt_141 = 2
|
8459
8435
|
look_141_0 = @input.peek( 1 )
|
@@ -8464,7 +8440,7 @@ module SfpLang
|
|
8464
8440
|
end
|
8465
8441
|
case alt_141
|
8466
8442
|
when 1
|
8467
|
-
# at line
|
8443
|
+
# at line 879:18: NL
|
8468
8444
|
__NL402__ = match( NL, TOKENS_FOLLOWING_NL_IN_set_value_2402 )
|
8469
8445
|
|
8470
8446
|
tree_for_NL402 = @adaptor.create_with_payload( __NL402__ )
|
@@ -8521,7 +8497,7 @@ module SfpLang
|
|
8521
8497
|
# parser rule set_item
|
8522
8498
|
#
|
8523
8499
|
# (in SfpLang.g)
|
8524
|
-
#
|
8500
|
+
# 884:1: set_item : value ;
|
8525
8501
|
#
|
8526
8502
|
def set_item
|
8527
8503
|
# -> uncomment the next line to manually enable rule tracing
|
@@ -8539,7 +8515,7 @@ module SfpLang
|
|
8539
8515
|
root_0 = @adaptor.create_flat_list
|
8540
8516
|
|
8541
8517
|
|
8542
|
-
# at line
|
8518
|
+
# at line 885:4: value
|
8543
8519
|
@state.following.push( TOKENS_FOLLOWING_value_IN_set_item_2428 )
|
8544
8520
|
value405 = value
|
8545
8521
|
@state.following.pop
|
@@ -8574,7 +8550,7 @@ module SfpLang
|
|
8574
8550
|
# parser rule value
|
8575
8551
|
#
|
8576
8552
|
# (in SfpLang.g)
|
8577
|
-
#
|
8553
|
+
# 889:1: value returns [val, type] : ( primitive_value | reference | set_value | 'any' );
|
8578
8554
|
#
|
8579
8555
|
def value
|
8580
8556
|
# -> uncomment the next line to manually enable rule tracing
|
@@ -8593,7 +8569,7 @@ module SfpLang
|
|
8593
8569
|
tree_for_string_literal409 = nil
|
8594
8570
|
|
8595
8571
|
begin
|
8596
|
-
# at line
|
8572
|
+
# at line 890:2: ( primitive_value | reference | set_value | 'any' )
|
8597
8573
|
alt_144 = 4
|
8598
8574
|
case look_144 = @input.peek( 1 )
|
8599
8575
|
when STRING, NUMBER, BOOLEAN, MULTILINE_STRING then alt_144 = 1
|
@@ -8608,7 +8584,7 @@ module SfpLang
|
|
8608
8584
|
root_0 = @adaptor.create_flat_list
|
8609
8585
|
|
8610
8586
|
|
8611
|
-
# at line
|
8587
|
+
# at line 890:4: primitive_value
|
8612
8588
|
@state.following.push( TOKENS_FOLLOWING_primitive_value_IN_value_2447 )
|
8613
8589
|
primitive_value406 = primitive_value
|
8614
8590
|
@state.following.pop
|
@@ -8624,7 +8600,7 @@ module SfpLang
|
|
8624
8600
|
root_0 = @adaptor.create_flat_list
|
8625
8601
|
|
8626
8602
|
|
8627
|
-
# at line
|
8603
|
+
# at line 895:4: reference
|
8628
8604
|
@state.following.push( TOKENS_FOLLOWING_reference_IN_value_2456 )
|
8629
8605
|
reference407 = reference
|
8630
8606
|
@state.following.pop
|
@@ -8640,7 +8616,7 @@ module SfpLang
|
|
8640
8616
|
root_0 = @adaptor.create_flat_list
|
8641
8617
|
|
8642
8618
|
|
8643
|
-
# at line
|
8619
|
+
# at line 900:4: set_value
|
8644
8620
|
@state.following.push( TOKENS_FOLLOWING_set_value_IN_value_2465 )
|
8645
8621
|
set_value408 = set_value
|
8646
8622
|
@state.following.pop
|
@@ -8656,7 +8632,7 @@ module SfpLang
|
|
8656
8632
|
root_0 = @adaptor.create_flat_list
|
8657
8633
|
|
8658
8634
|
|
8659
|
-
# at line
|
8635
|
+
# at line 905:4: 'any'
|
8660
8636
|
string_literal409 = match( T__72, TOKENS_FOLLOWING_T__72_IN_value_2474 )
|
8661
8637
|
|
8662
8638
|
tree_for_string_literal409 = @adaptor.create_with_payload( string_literal409 )
|
@@ -8696,7 +8672,7 @@ module SfpLang
|
|
8696
8672
|
# parser rule primitive_value
|
8697
8673
|
#
|
8698
8674
|
# (in SfpLang.g)
|
8699
|
-
#
|
8675
|
+
# 912:1: primitive_value returns [val, type] : ( BOOLEAN | NUMBER | STRING | MULTILINE_STRING );
|
8700
8676
|
#
|
8701
8677
|
def primitive_value
|
8702
8678
|
# -> uncomment the next line to manually enable rule tracing
|
@@ -8718,7 +8694,7 @@ module SfpLang
|
|
8718
8694
|
tree_for_MULTILINE_STRING413 = nil
|
8719
8695
|
|
8720
8696
|
begin
|
8721
|
-
# at line
|
8697
|
+
# at line 913:2: ( BOOLEAN | NUMBER | STRING | MULTILINE_STRING )
|
8722
8698
|
alt_145 = 4
|
8723
8699
|
case look_145 = @input.peek( 1 )
|
8724
8700
|
when BOOLEAN then alt_145 = 1
|
@@ -8733,7 +8709,7 @@ module SfpLang
|
|
8733
8709
|
root_0 = @adaptor.create_flat_list
|
8734
8710
|
|
8735
8711
|
|
8736
|
-
# at line
|
8712
|
+
# at line 913:4: BOOLEAN
|
8737
8713
|
__BOOLEAN410__ = match( BOOLEAN, TOKENS_FOLLOWING_BOOLEAN_IN_primitive_value_2493 )
|
8738
8714
|
|
8739
8715
|
tree_for_BOOLEAN410 = @adaptor.create_with_payload( __BOOLEAN410__ )
|
@@ -8754,7 +8730,7 @@ module SfpLang
|
|
8754
8730
|
root_0 = @adaptor.create_flat_list
|
8755
8731
|
|
8756
8732
|
|
8757
|
-
# at line
|
8733
|
+
# at line 922:4: NUMBER
|
8758
8734
|
__NUMBER411__ = match( NUMBER, TOKENS_FOLLOWING_NUMBER_IN_primitive_value_2502 )
|
8759
8735
|
|
8760
8736
|
tree_for_NUMBER411 = @adaptor.create_with_payload( __NUMBER411__ )
|
@@ -8771,7 +8747,7 @@ module SfpLang
|
|
8771
8747
|
root_0 = @adaptor.create_flat_list
|
8772
8748
|
|
8773
8749
|
|
8774
|
-
# at line
|
8750
|
+
# at line 927:4: STRING
|
8775
8751
|
__STRING412__ = match( STRING, TOKENS_FOLLOWING_STRING_IN_primitive_value_2511 )
|
8776
8752
|
|
8777
8753
|
tree_for_STRING412 = @adaptor.create_with_payload( __STRING412__ )
|
@@ -8788,7 +8764,7 @@ module SfpLang
|
|
8788
8764
|
root_0 = @adaptor.create_flat_list
|
8789
8765
|
|
8790
8766
|
|
8791
|
-
# at line
|
8767
|
+
# at line 932:4: MULTILINE_STRING
|
8792
8768
|
__MULTILINE_STRING413__ = match( MULTILINE_STRING, TOKENS_FOLLOWING_MULTILINE_STRING_IN_primitive_value_2520 )
|
8793
8769
|
|
8794
8770
|
tree_for_MULTILINE_STRING413 = @adaptor.create_with_payload( __MULTILINE_STRING413__ )
|
@@ -8828,7 +8804,7 @@ module SfpLang
|
|
8828
8804
|
# parser rule path
|
8829
8805
|
#
|
8830
8806
|
# (in SfpLang.g)
|
8831
|
-
#
|
8807
|
+
# 939:1: path : ID ( '.' ID )* ;
|
8832
8808
|
#
|
8833
8809
|
def path
|
8834
8810
|
# -> uncomment the next line to manually enable rule tracing
|
@@ -8851,13 +8827,13 @@ module SfpLang
|
|
8851
8827
|
root_0 = @adaptor.create_flat_list
|
8852
8828
|
|
8853
8829
|
|
8854
|
-
# at line
|
8830
|
+
# at line 940:4: ID ( '.' ID )*
|
8855
8831
|
__ID414__ = match( ID, TOKENS_FOLLOWING_ID_IN_path_2535 )
|
8856
8832
|
|
8857
8833
|
tree_for_ID414 = @adaptor.create_with_payload( __ID414__ )
|
8858
8834
|
@adaptor.add_child( root_0, tree_for_ID414 )
|
8859
8835
|
|
8860
|
-
# at line
|
8836
|
+
# at line 940:6: ( '.' ID )*
|
8861
8837
|
while true # decision 146
|
8862
8838
|
alt_146 = 2
|
8863
8839
|
look_146_0 = @input.peek( 1 )
|
@@ -8868,7 +8844,7 @@ module SfpLang
|
|
8868
8844
|
end
|
8869
8845
|
case alt_146
|
8870
8846
|
when 1
|
8871
|
-
# at line
|
8847
|
+
# at line 940:7: '.' ID
|
8872
8848
|
char_literal415 = match( T__73, TOKENS_FOLLOWING_T__73_IN_path_2537 )
|
8873
8849
|
|
8874
8850
|
tree_for_char_literal415 = @adaptor.create_with_payload( char_literal415 )
|
@@ -8911,7 +8887,7 @@ module SfpLang
|
|
8911
8887
|
# parser rule path_with_index
|
8912
8888
|
#
|
8913
8889
|
# (in SfpLang.g)
|
8914
|
-
#
|
8890
|
+
# 943:1: path_with_index : id_ref ( '.' id_ref )* ;
|
8915
8891
|
#
|
8916
8892
|
def path_with_index
|
8917
8893
|
# -> uncomment the next line to manually enable rule tracing
|
@@ -8932,12 +8908,12 @@ module SfpLang
|
|
8932
8908
|
root_0 = @adaptor.create_flat_list
|
8933
8909
|
|
8934
8910
|
|
8935
|
-
# at line
|
8911
|
+
# at line 944:4: id_ref ( '.' id_ref )*
|
8936
8912
|
@state.following.push( TOKENS_FOLLOWING_id_ref_IN_path_with_index_2551 )
|
8937
8913
|
id_ref417 = id_ref
|
8938
8914
|
@state.following.pop
|
8939
8915
|
@adaptor.add_child( root_0, id_ref417.tree )
|
8940
|
-
# at line
|
8916
|
+
# at line 944:10: ( '.' id_ref )*
|
8941
8917
|
while true # decision 147
|
8942
8918
|
alt_147 = 2
|
8943
8919
|
look_147_0 = @input.peek( 1 )
|
@@ -8948,7 +8924,7 @@ module SfpLang
|
|
8948
8924
|
end
|
8949
8925
|
case alt_147
|
8950
8926
|
when 1
|
8951
|
-
# at line
|
8927
|
+
# at line 944:11: '.' id_ref
|
8952
8928
|
char_literal418 = match( T__73, TOKENS_FOLLOWING_T__73_IN_path_with_index_2553 )
|
8953
8929
|
|
8954
8930
|
tree_for_char_literal418 = @adaptor.create_with_payload( char_literal418 )
|
@@ -8990,7 +8966,7 @@ module SfpLang
|
|
8990
8966
|
# parser rule id_ref
|
8991
8967
|
#
|
8992
8968
|
# (in SfpLang.g)
|
8993
|
-
#
|
8969
|
+
# 947:1: id_ref : ID ( '[' NUMBER ']' )? ;
|
8994
8970
|
#
|
8995
8971
|
def id_ref
|
8996
8972
|
# -> uncomment the next line to manually enable rule tracing
|
@@ -9015,13 +8991,13 @@ module SfpLang
|
|
9015
8991
|
root_0 = @adaptor.create_flat_list
|
9016
8992
|
|
9017
8993
|
|
9018
|
-
# at line
|
8994
|
+
# at line 948:4: ID ( '[' NUMBER ']' )?
|
9019
8995
|
__ID420__ = match( ID, TOKENS_FOLLOWING_ID_IN_id_ref_2567 )
|
9020
8996
|
|
9021
8997
|
tree_for_ID420 = @adaptor.create_with_payload( __ID420__ )
|
9022
8998
|
@adaptor.add_child( root_0, tree_for_ID420 )
|
9023
8999
|
|
9024
|
-
# at line
|
9000
|
+
# at line 948:6: ( '[' NUMBER ']' )?
|
9025
9001
|
alt_148 = 2
|
9026
9002
|
look_148_0 = @input.peek( 1 )
|
9027
9003
|
|
@@ -9030,7 +9006,7 @@ module SfpLang
|
|
9030
9006
|
end
|
9031
9007
|
case alt_148
|
9032
9008
|
when 1
|
9033
|
-
# at line
|
9009
|
+
# at line 948:7: '[' NUMBER ']'
|
9034
9010
|
char_literal421 = match( T__28, TOKENS_FOLLOWING_T__28_IN_id_ref_2569 )
|
9035
9011
|
|
9036
9012
|
tree_for_char_literal421 = @adaptor.create_with_payload( char_literal421 )
|
@@ -9075,7 +9051,7 @@ module SfpLang
|
|
9075
9051
|
# parser rule reference
|
9076
9052
|
#
|
9077
9053
|
# (in SfpLang.g)
|
9078
|
-
#
|
9054
|
+
# 951:1: reference returns [val] : path_with_index ;
|
9079
9055
|
#
|
9080
9056
|
def reference
|
9081
9057
|
# -> uncomment the next line to manually enable rule tracing
|
@@ -9093,7 +9069,7 @@ module SfpLang
|
|
9093
9069
|
root_0 = @adaptor.create_flat_list
|
9094
9070
|
|
9095
9071
|
|
9096
|
-
# at line
|
9072
|
+
# at line 952:4: path_with_index
|
9097
9073
|
@state.following.push( TOKENS_FOLLOWING_path_with_index_IN_reference_2590 )
|
9098
9074
|
path_with_index424 = path_with_index
|
9099
9075
|
@state.following.pop
|
@@ -9128,7 +9104,7 @@ module SfpLang
|
|
9128
9104
|
# parser rule reference_type
|
9129
9105
|
#
|
9130
9106
|
# (in SfpLang.g)
|
9131
|
-
#
|
9107
|
+
# 956:1: reference_type returns [val] : 'isref' path ;
|
9132
9108
|
#
|
9133
9109
|
def reference_type
|
9134
9110
|
# -> uncomment the next line to manually enable rule tracing
|
@@ -9148,7 +9124,7 @@ module SfpLang
|
|
9148
9124
|
root_0 = @adaptor.create_flat_list
|
9149
9125
|
|
9150
9126
|
|
9151
|
-
# at line
|
9127
|
+
# at line 957:4: 'isref' path
|
9152
9128
|
string_literal425 = match( T__74, TOKENS_FOLLOWING_T__74_IN_reference_type_2609 )
|
9153
9129
|
|
9154
9130
|
tree_for_string_literal425 = @adaptor.create_with_payload( string_literal425 )
|
@@ -9192,7 +9168,7 @@ module SfpLang
|
|
9192
9168
|
# parser rule set_type
|
9193
9169
|
#
|
9194
9170
|
# (in SfpLang.g)
|
9195
|
-
#
|
9171
|
+
# 965:1: set_type returns [val] : 'isset' path ;
|
9196
9172
|
#
|
9197
9173
|
def set_type
|
9198
9174
|
# -> uncomment the next line to manually enable rule tracing
|
@@ -9212,7 +9188,7 @@ module SfpLang
|
|
9212
9188
|
root_0 = @adaptor.create_flat_list
|
9213
9189
|
|
9214
9190
|
|
9215
|
-
# at line
|
9191
|
+
# at line 966:4: 'isset' path
|
9216
9192
|
string_literal427 = match( T__45, TOKENS_FOLLOWING_T__45_IN_set_type_2630 )
|
9217
9193
|
|
9218
9194
|
tree_for_string_literal427 = @adaptor.create_with_payload( string_literal427 )
|
@@ -9257,7 +9233,7 @@ module SfpLang
|
|
9257
9233
|
# parser rule probability_op
|
9258
9234
|
#
|
9259
9235
|
# (in SfpLang.g)
|
9260
|
-
#
|
9236
|
+
# 975:1: probability_op : 'either' ;
|
9261
9237
|
#
|
9262
9238
|
def probability_op
|
9263
9239
|
# -> uncomment the next line to manually enable rule tracing
|
@@ -9276,7 +9252,7 @@ module SfpLang
|
|
9276
9252
|
root_0 = @adaptor.create_flat_list
|
9277
9253
|
|
9278
9254
|
|
9279
|
-
# at line
|
9255
|
+
# at line 976:4: 'either'
|
9280
9256
|
string_literal429 = match( T__75, TOKENS_FOLLOWING_T__75_IN_probability_op_2647 )
|
9281
9257
|
|
9282
9258
|
tree_for_string_literal429 = @adaptor.create_with_payload( string_literal429 )
|
@@ -9309,7 +9285,7 @@ module SfpLang
|
|
9309
9285
|
# parser rule equals_op
|
9310
9286
|
#
|
9311
9287
|
# (in SfpLang.g)
|
9312
|
-
#
|
9288
|
+
# 979:1: equals_op : ( '=' | 'is' );
|
9313
9289
|
#
|
9314
9290
|
def equals_op
|
9315
9291
|
# -> uncomment the next line to manually enable rule tracing
|
@@ -9367,7 +9343,7 @@ module SfpLang
|
|
9367
9343
|
# parser rule not_equals_op
|
9368
9344
|
#
|
9369
9345
|
# (in SfpLang.g)
|
9370
|
-
#
|
9346
|
+
# 984:1: not_equals_op : ( '!=' | 'isnt' | 'isnot' );
|
9371
9347
|
#
|
9372
9348
|
def not_equals_op
|
9373
9349
|
# -> uncomment the next line to manually enable rule tracing
|
@@ -9425,7 +9401,7 @@ module SfpLang
|
|
9425
9401
|
# parser rule binary_op
|
9426
9402
|
#
|
9427
9403
|
# (in SfpLang.g)
|
9428
|
-
#
|
9404
|
+
# 990:1: binary_op : ( '+=' | '-=' | '*=' | '/=' );
|
9429
9405
|
#
|
9430
9406
|
def binary_op
|
9431
9407
|
# -> uncomment the next line to manually enable rule tracing
|
@@ -9483,7 +9459,7 @@ module SfpLang
|
|
9483
9459
|
# parser rule binary_comp
|
9484
9460
|
#
|
9485
9461
|
# (in SfpLang.g)
|
9486
|
-
#
|
9462
|
+
# 997:1: binary_comp : ( '>' | '>=' | '<' | '<=' );
|
9487
9463
|
#
|
9488
9464
|
def binary_comp
|
9489
9465
|
# -> uncomment the next line to manually enable rule tracing
|
@@ -9640,7 +9616,7 @@ module SfpLang
|
|
9640
9616
|
|
9641
9617
|
def description
|
9642
9618
|
<<-'__dfa_description__'.strip!
|
9643
|
-
|
9619
|
+
534:4: ( constraint_statement | constraint_namespace | constraint_iterator | constraint_class_quantification )
|
9644
9620
|
__dfa_description__
|
9645
9621
|
end
|
9646
9622
|
end
|
@@ -9707,7 +9683,7 @@ module SfpLang
|
|
9707
9683
|
|
9708
9684
|
def description
|
9709
9685
|
<<-'__dfa_description__'.strip!
|
9710
|
-
|
9686
|
+
634:1: constraint_statement returns [key, val] : ( reference | 'not' reference | reference equals_op value | reference equals_op NULL | reference not_equals_op value | reference not_equals_op NULL | conditional_constraint | reference ( 'is' )? 'in' set_value | reference ( 'isnot' | 'isnt' | 'not' ) 'in' set_value | reference 'has' value | reference binary_comp comp_value | total_constraint );
|
9711
9687
|
__dfa_description__
|
9712
9688
|
end
|
9713
9689
|
end
|
@@ -9759,7 +9735,7 @@ module SfpLang
|
|
9759
9735
|
|
9760
9736
|
def description
|
9761
9737
|
<<-'__dfa_description__'.strip!
|
9762
|
-
|
9738
|
+
807:1: mutation returns [key, val] : ( reference equals_op value | reference equals_op NULL | reference binary_op NUMBER | reference 'is' 'new' path ( object_body )? | 'delete' path | reference 'add(' value ')' | reference 'remove(' value ')' );
|
9763
9739
|
__dfa_description__
|
9764
9740
|
end
|
9765
9741
|
end
|