sfp 0.3.4 → 0.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|