lrama 0.6.0 → 0.6.1
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.
- checksums.yaml +4 -4
- data/.github/workflows/test.yaml +20 -5
- data/Gemfile +1 -1
- data/NEWS.md +46 -0
- data/Steepfile +2 -3
- data/lib/lrama/command.rb +17 -3
- data/lib/lrama/context.rb +2 -22
- data/lib/lrama/grammar/binding.rb +24 -0
- data/lib/lrama/grammar/code/rule_action.rb +1 -1
- data/lib/lrama/grammar/parameterizing_rule/resolver.rb +39 -0
- data/lib/lrama/grammar/parameterizing_rule/rhs.rb +15 -0
- data/lib/lrama/grammar/parameterizing_rule/rule.rb +16 -0
- data/lib/lrama/grammar/parameterizing_rule.rb +3 -6
- data/lib/lrama/grammar/percent_code.rb +3 -3
- data/lib/lrama/grammar/rule_builder.rb +59 -25
- data/lib/lrama/grammar/type.rb +13 -1
- data/lib/lrama/grammar.rb +7 -9
- data/lib/lrama/lexer/grammar_file.rb +1 -1
- data/lib/lrama/lexer/token/instantiate_rule.rb +7 -2
- data/lib/lrama/lexer/token.rb +5 -0
- data/lib/lrama/lexer.rb +2 -7
- data/lib/lrama/output.rb +2 -2
- data/lib/lrama/parser.rb +166 -148
- data/lib/lrama/version.rb +1 -1
- data/parser.y +8 -8
- data/sig/lrama/grammar/binding.rbs +16 -0
- data/sig/lrama/grammar/parameterizing_rule/resolver.rbs +21 -0
- data/sig/lrama/grammar/parameterizing_rule/rhs.rbs +13 -0
- data/sig/lrama/grammar/parameterizing_rule/rule.rbs +14 -0
- data/sig/lrama/grammar/parameterizing_rule.rbs +0 -4
- data/sig/lrama/grammar/percent_code.rbs +3 -3
- data/sig/lrama/grammar/rule_builder.rbs +9 -6
- data/sig/lrama/lexer/token/instantiate_rule.rbs +4 -2
- data/sig/lrama/lexer/token.rbs +1 -0
- metadata +11 -9
- data/lib/lrama/grammar/parameterizing_rule_builder.rb +0 -34
- data/lib/lrama/grammar/parameterizing_rule_resolver.rb +0 -30
- data/lib/lrama/grammar/parameterizing_rule_rhs_builder.rb +0 -53
- data/sig/lrama/grammar/parameterizing_rule_builder.rbs +0 -19
- data/sig/lrama/grammar/parameterizing_rule_resolver.rbs +0 -16
- data/sig/lrama/grammar/parameterizing_rule_rhs_builder.rbs +0 -18
@@ -2,16 +2,21 @@ module Lrama
|
|
2
2
|
class Lexer
|
3
3
|
class Token
|
4
4
|
class InstantiateRule < Token
|
5
|
-
|
5
|
+
attr_reader :args, :lhs_tag
|
6
6
|
|
7
|
-
def initialize(s_value:, alias_name: nil, location: nil, args: [])
|
7
|
+
def initialize(s_value:, alias_name: nil, location: nil, args: [], lhs_tag: nil)
|
8
8
|
super s_value: s_value, alias_name: alias_name, location: location
|
9
9
|
@args = args
|
10
|
+
@lhs_tag = lhs_tag
|
10
11
|
end
|
11
12
|
|
12
13
|
def rule_name
|
13
14
|
s_value
|
14
15
|
end
|
16
|
+
|
17
|
+
def args_count
|
18
|
+
args.count
|
19
|
+
end
|
15
20
|
end
|
16
21
|
end
|
17
22
|
end
|
data/lib/lrama/lexer/token.rb
CHANGED
@@ -46,6 +46,11 @@ module Lrama
|
|
46
46
|
def last_column
|
47
47
|
location.last_column
|
48
48
|
end
|
49
|
+
|
50
|
+
def invalid_ref(ref, message)
|
51
|
+
location = self.location.partial_location(ref.first_column, ref.last_column)
|
52
|
+
raise location.generate_error_message(message)
|
53
|
+
end
|
49
54
|
end
|
50
55
|
end
|
51
56
|
end
|
data/lib/lrama/lexer.rb
CHANGED
@@ -5,9 +5,8 @@ require "lrama/lexer/token"
|
|
5
5
|
|
6
6
|
module Lrama
|
7
7
|
class Lexer
|
8
|
-
attr_reader :head_line, :head_column
|
9
|
-
attr_accessor :status
|
10
|
-
attr_accessor :end_symbol
|
8
|
+
attr_reader :head_line, :head_column, :line
|
9
|
+
attr_accessor :status, :end_symbol
|
11
10
|
|
12
11
|
SYMBOLS = ['%{', '%}', '%%', '{', '}', '\[', '\]', '\(', '\)', '\,', ':', '\|', ';']
|
13
12
|
PERCENT_TOKENS = %w(
|
@@ -50,10 +49,6 @@ module Lrama
|
|
50
49
|
end
|
51
50
|
end
|
52
51
|
|
53
|
-
def line
|
54
|
-
@line
|
55
|
-
end
|
56
|
-
|
57
52
|
def column
|
58
53
|
@scanner.pos - @head
|
59
54
|
end
|
data/lib/lrama/output.rb
CHANGED
@@ -352,9 +352,9 @@ module Lrama
|
|
352
352
|
# b4_percent_code_get
|
353
353
|
def percent_code(name)
|
354
354
|
@grammar.percent_codes.select do |percent_code|
|
355
|
-
percent_code.
|
355
|
+
percent_code.name == name
|
356
356
|
end.map do |percent_code|
|
357
|
-
percent_code.code
|
357
|
+
percent_code.code
|
358
358
|
end.join
|
359
359
|
end
|
360
360
|
|
data/lib/lrama/parser.rb
CHANGED
@@ -734,11 +734,11 @@ end
|
|
734
734
|
##### State transition tables begin ###
|
735
735
|
|
736
736
|
racc_action_table = [
|
737
|
-
85, 44, 86, 145, 144, 67, 44, 44, 145,
|
738
|
-
67, 67, 44, 6,
|
739
|
-
143, 43, 147,
|
737
|
+
85, 44, 86, 145, 144, 67, 44, 44, 145, 188,
|
738
|
+
67, 67, 44, 6, 188, 7, 67, 147, 199, 44,
|
739
|
+
143, 43, 147, 189, 58, 163, 164, 165, 189, 3,
|
740
740
|
44, 40, 43, 8, 67, 63, 34, 44, 148, 43,
|
741
|
-
41, 87, 40, 148,
|
741
|
+
41, 87, 40, 148, 190, 47, 44, 80, 43, 190,
|
742
742
|
21, 23, 24, 25, 26, 27, 28, 29, 30, 31,
|
743
743
|
47, 21, 23, 24, 25, 26, 27, 28, 29, 30,
|
744
744
|
31, 9, 44, 47, 43, 13, 14, 15, 16, 17,
|
@@ -750,22 +750,23 @@ racc_action_table = [
|
|
750
750
|
43, 43, 67, 173, 44, 44, 43, 43, 67, 173,
|
751
751
|
44, 44, 43, 43, 67, 173, 44, 44, 43, 43,
|
752
752
|
67, 67, 44, 44, 43, 43, 67, 67, 44, 44,
|
753
|
-
43, 43, 67, 67, 44, 44,
|
754
|
-
44, 44,
|
755
|
-
|
756
|
-
|
757
|
-
|
758
|
-
|
759
|
-
|
760
|
-
|
761
|
-
|
753
|
+
43, 43, 67, 67, 44, 44, 179, 43, 67, 67,
|
754
|
+
44, 44, 179, 43, 67, 67, 44, 44, 179, 43,
|
755
|
+
67, 163, 164, 165, 83, 44, 141, 43, 142, 192,
|
756
|
+
54, 193, 163, 164, 165, 208, 210, 193, 193, 55,
|
757
|
+
76, 77, 81, 83, 88, 88, 88, 90, 96, 100,
|
758
|
+
101, 104, 104, 104, 104, 107, 110, 111, 113, 115,
|
759
|
+
116, 117, 118, 119, 122, 126, 127, 128, 131, 132,
|
760
|
+
133, 135, 150, 152, 153, 154, 155, 156, 157, 158,
|
761
|
+
131, 160, 168, 169, 178, 183, 184, 186, 191, 178,
|
762
|
+
83, 183, 205, 207, 83, 212, 83 ]
|
762
763
|
|
763
764
|
racc_action_check = [
|
764
765
|
42, 130, 42, 130, 129, 130, 159, 177, 159, 177,
|
765
|
-
159, 177,
|
766
|
-
129, 26, 159, 177, 26,
|
766
|
+
159, 177, 196, 2, 196, 2, 196, 130, 188, 26,
|
767
|
+
129, 26, 159, 177, 26, 188, 188, 188, 196, 1,
|
767
768
|
27, 9, 27, 3, 27, 27, 7, 14, 130, 14,
|
768
|
-
13, 42, 35, 159, 177, 15, 57, 35, 57,
|
769
|
+
13, 42, 35, 159, 177, 15, 57, 35, 57, 196,
|
769
770
|
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
|
770
771
|
16, 35, 35, 35, 35, 35, 35, 35, 35, 35,
|
771
772
|
35, 4, 58, 17, 58, 4, 4, 4, 4, 4,
|
@@ -777,110 +778,113 @@ racc_action_check = [
|
|
777
778
|
170, 98, 170, 170, 174, 104, 174, 104, 174, 174,
|
778
779
|
175, 106, 175, 106, 175, 175, 62, 63, 62, 63,
|
779
780
|
62, 63, 101, 103, 101, 103, 101, 103, 123, 148,
|
780
|
-
123, 148, 123, 148, 160,
|
781
|
-
191,
|
782
|
-
|
783
|
-
|
784
|
-
|
785
|
-
|
786
|
-
|
787
|
-
|
788
|
-
|
781
|
+
123, 148, 123, 148, 160, 190, 160, 190, 160, 190,
|
782
|
+
191, 193, 191, 193, 191, 193, 199, 120, 199, 120,
|
783
|
+
199, 146, 146, 146, 146, 124, 125, 124, 125, 180,
|
784
|
+
24, 180, 181, 181, 181, 202, 206, 202, 206, 25,
|
785
|
+
32, 33, 38, 39, 46, 48, 49, 50, 56, 60,
|
786
|
+
61, 68, 73, 74, 75, 76, 82, 83, 89, 91,
|
787
|
+
92, 93, 94, 95, 99, 107, 108, 109, 110, 111,
|
788
|
+
112, 114, 134, 136, 137, 138, 139, 140, 141, 142,
|
789
|
+
143, 145, 149, 151, 157, 162, 166, 176, 179, 186,
|
790
|
+
187, 192, 195, 200, 205, 211, 212 ]
|
789
791
|
|
790
792
|
racc_action_pointer = [
|
791
793
|
nil, 29, 3, 33, 62, nil, nil, 29, nil, 27,
|
792
794
|
nil, nil, nil, 34, 34, 26, 41, 54, 76, 63,
|
793
|
-
nil, 81, nil, 88,
|
794
|
-
100, 101,
|
795
|
-
nil, nil, -5, nil, nil, nil,
|
796
|
-
|
797
|
-
|
798
|
-
114, nil, nil,
|
799
|
-
nil, nil,
|
800
|
-
nil,
|
801
|
-
nil, 149, nil, 150, 132, nil, 138,
|
802
|
-
|
803
|
-
|
804
|
-
-2, nil, nil, nil,
|
805
|
-
|
806
|
-
nil,
|
807
|
-
161, nil,
|
808
|
-
125, nil, nil, nil, 131, 137,
|
809
|
-
|
810
|
-
|
811
|
-
|
795
|
+
nil, 81, nil, 88, 171, 180, 16, 27, 93, 94,
|
796
|
+
100, 101, 195, 199, nil, 38, nil, nil, 180, 159,
|
797
|
+
nil, nil, -5, nil, nil, nil, 185, nil, 186, 187,
|
798
|
+
188, nil, nil, nil, nil, nil, 200, 43, 69, nil,
|
799
|
+
203, 202, 143, 144, nil, nil, nil, nil, 203, 108,
|
800
|
+
114, nil, nil, 204, 205, 206, 181, nil, nil, nil,
|
801
|
+
nil, nil, 180, 212, nil, nil, nil, nil, nil, 216,
|
802
|
+
nil, 217, 218, 219, 220, 221, 120, nil, 126, 217,
|
803
|
+
nil, 149, nil, 150, 132, nil, 138, 220, 215, 225,
|
804
|
+
189, 184, 228, nil, 229, nil, nil, nil, nil, nil,
|
805
|
+
174, nil, nil, 155, 182, 151, nil, nil, nil, -18,
|
806
|
+
-2, nil, nil, nil, 212, nil, 213, 214, 215, 216,
|
807
|
+
217, 202, 234, 201, nil, 207, 140, nil, 156, 222,
|
808
|
+
nil, 223, nil, nil, 107, 113, 119, 205, nil, 3,
|
809
|
+
161, nil, 237, nil, nil, nil, 244, nil, nil, nil,
|
810
|
+
125, nil, nil, nil, 131, 137, 209, 4, nil, 214,
|
811
|
+
154, 151, nil, nil, nil, nil, 210, 206, -16, nil,
|
812
|
+
162, 167, 243, 168, nil, 232, 9, nil, nil, 173,
|
813
|
+
251, nil, 160, nil, nil, 210, 161, nil, nil, nil,
|
814
|
+
nil, 235, 212, nil ]
|
812
815
|
|
813
816
|
racc_action_default = [
|
814
|
-
-2, -
|
815
|
-
-9, -10, -11, -
|
816
|
-
-23, -
|
817
|
-
-
|
818
|
-
-
|
819
|
-
-
|
820
|
-
-63, -38, -67, -
|
821
|
-
-
|
822
|
-
-
|
823
|
-
-17, -
|
824
|
-
-64, -
|
825
|
-
-96, -
|
826
|
-
-45, -48, -66, -69, -82, -
|
827
|
-
-93, -97, -
|
828
|
-
-
|
829
|
-
-79, -
|
830
|
-
-
|
831
|
-
-30, -
|
832
|
-
-108, -99, -
|
833
|
-
-
|
834
|
-
-
|
817
|
+
-2, -130, -8, -130, -130, -3, -4, -130, 214, -130,
|
818
|
+
-9, -10, -11, -130, -130, -130, -130, -130, -130, -130,
|
819
|
+
-23, -130, -27, -130, -130, -130, -130, -130, -130, -130,
|
820
|
+
-130, -130, -130, -130, -7, -115, -88, -90, -130, -112,
|
821
|
+
-114, -12, -119, -86, -87, -118, -14, -77, -15, -16,
|
822
|
+
-130, -20, -24, -28, -31, -34, -37, -43, -130, -46,
|
823
|
+
-63, -38, -67, -130, -70, -72, -73, -127, -39, -80,
|
824
|
+
-130, -83, -85, -40, -41, -42, -130, -5, -1, -89,
|
825
|
+
-116, -91, -130, -130, -13, -120, -121, -122, -74, -130,
|
826
|
+
-17, -130, -130, -130, -130, -130, -130, -47, -44, -65,
|
827
|
+
-64, -130, -71, -68, -130, -84, -81, -130, -130, -130,
|
828
|
+
-96, -130, -130, -78, -130, -21, -25, -29, -32, -35,
|
829
|
+
-45, -48, -66, -69, -82, -130, -50, -6, -117, -92,
|
830
|
+
-93, -97, -113, -75, -130, -18, -130, -130, -130, -130,
|
831
|
+
-130, -130, -130, -96, -95, -86, -112, -101, -130, -130,
|
832
|
+
-79, -130, -22, -26, -130, -130, -130, -54, -51, -94,
|
833
|
+
-130, -98, -128, -105, -106, -107, -130, -104, -76, -19,
|
834
|
+
-30, -123, -125, -126, -33, -36, -49, -52, -55, -86,
|
835
|
+
-130, -108, -99, -129, -102, -124, -54, -112, -86, -59,
|
836
|
+
-130, -130, -128, -130, -110, -130, -53, -56, -57, -130,
|
837
|
+
-130, -62, -130, -100, -109, -112, -130, -60, -111, -103,
|
838
|
+
-58, -130, -112, -61 ]
|
835
839
|
|
836
840
|
racc_goto_table = [
|
837
|
-
|
838
|
-
|
839
|
-
|
840
|
-
|
841
|
-
|
842
|
-
108, 10, 159, 170, 174, 175, 72, 72,
|
843
|
-
12, 42, 84, 114, 151, 91, 136,
|
844
|
-
|
845
|
-
56, 61, 99, 60, 121, 60, 125, 176,
|
846
|
-
112, 72, 149, 72, 89, 134,
|
847
|
-
109, nil, nil,
|
848
|
-
nil,
|
849
|
-
nil,
|
850
|
-
nil, nil,
|
851
|
-
nil, nil, nil, nil, nil, nil, nil, nil,
|
852
|
-
|
853
|
-
nil, nil,
|
854
|
-
nil, nil, nil,
|
841
|
+
82, 62, 57, 45, 97, 64, 105, 162, 182, 36,
|
842
|
+
177, 1, 2, 180, 106, 60, 4, 72, 72, 72,
|
843
|
+
72, 130, 185, 46, 48, 49, 185, 185, 68, 73,
|
844
|
+
74, 75, 35, 78, 98, 79, 5, 103, 203, 196,
|
845
|
+
102, 64, 194, 105, 202, 97, 60, 60, 124, 198,
|
846
|
+
33, 108, 206, 10, 159, 170, 174, 175, 72, 72,
|
847
|
+
11, 105, 12, 42, 84, 114, 151, 97, 91, 136,
|
848
|
+
92, 137, 120, 93, 138, 123, 94, 139, 95, 64,
|
849
|
+
140, 102, 56, 61, 99, 60, 121, 60, 125, 176,
|
850
|
+
200, 211, 112, 72, 149, 72, 89, 134, 129, 166,
|
851
|
+
195, 102, 109, nil, nil, nil, nil, 161, 146, 60,
|
852
|
+
nil, nil, nil, 72, nil, nil, nil, nil, nil, nil,
|
853
|
+
nil, nil, nil, nil, nil, nil, 167, nil, nil, nil,
|
854
|
+
nil, nil, nil, nil, nil, nil, nil, 146, 181, nil,
|
855
|
+
nil, nil, nil, nil, nil, nil, nil, nil, 197, nil,
|
856
|
+
nil, nil, nil, nil, nil, 187, nil, nil, nil, nil,
|
857
|
+
nil, nil, nil, nil, nil, nil, 209, nil, 201, 181,
|
858
|
+
nil, 204, nil, 213, 187, nil, nil, 181 ]
|
855
859
|
|
856
860
|
racc_goto_check = [
|
857
|
-
|
858
|
-
|
859
|
-
|
860
|
-
|
861
|
-
|
862
|
-
8, 9, 58, 20, 20, 20, 34, 34,
|
863
|
-
11, 12, 13, 15, 16, 17, 18,
|
864
|
-
|
865
|
-
29, 30, 35, 34, 36, 34, 37, 38,
|
866
|
-
48, 34, 49, 34, 50, 51,
|
867
|
-
62, nil, nil,
|
868
|
-
nil,
|
869
|
-
nil,
|
870
|
-
nil, nil,
|
871
|
-
nil, nil, nil, nil, nil, nil, nil, nil,
|
872
|
-
|
873
|
-
nil, nil,
|
874
|
-
nil, nil, nil,
|
861
|
+
41, 46, 32, 34, 33, 40, 53, 42, 59, 54,
|
862
|
+
39, 1, 2, 43, 52, 34, 3, 34, 34, 34,
|
863
|
+
34, 58, 63, 14, 14, 14, 63, 63, 31, 31,
|
864
|
+
31, 31, 4, 5, 32, 54, 6, 46, 59, 39,
|
865
|
+
40, 40, 42, 53, 43, 33, 34, 34, 52, 42,
|
866
|
+
7, 8, 43, 9, 58, 20, 20, 20, 34, 34,
|
867
|
+
10, 53, 11, 12, 13, 15, 16, 33, 17, 18,
|
868
|
+
21, 22, 32, 23, 24, 46, 25, 26, 27, 40,
|
869
|
+
28, 40, 29, 30, 35, 34, 36, 34, 37, 38,
|
870
|
+
44, 45, 48, 34, 49, 34, 50, 51, 57, 60,
|
871
|
+
61, 40, 62, nil, nil, nil, nil, 41, 40, 34,
|
872
|
+
nil, nil, nil, 34, nil, nil, nil, nil, nil, nil,
|
873
|
+
nil, nil, nil, nil, nil, nil, 40, nil, nil, nil,
|
874
|
+
nil, nil, nil, nil, nil, nil, nil, 40, 40, nil,
|
875
|
+
nil, nil, nil, nil, nil, nil, nil, nil, 41, nil,
|
876
|
+
nil, nil, nil, nil, nil, 40, nil, nil, nil, nil,
|
877
|
+
nil, nil, nil, nil, nil, nil, 41, nil, 40, 40,
|
878
|
+
nil, 40, nil, 41, 40, nil, nil, 40 ]
|
875
879
|
|
876
880
|
racc_goto_pointer = [
|
877
|
-
nil, 11,
|
878
|
-
|
879
|
-
|
880
|
-
|
881
|
-
-
|
882
|
-
|
883
|
-
-
|
881
|
+
nil, 11, 12, 14, 23, -2, 34, 44, -26, 49,
|
882
|
+
56, 58, 49, 22, 8, -25, -69, 17, -46, nil,
|
883
|
+
-99, 18, -45, 20, -43, 22, -41, 23, -39, 56,
|
884
|
+
56, 0, -24, -53, -11, 24, -13, -19, -68, -147,
|
885
|
+
-22, -39, -139, -147, -99, -116, -26, nil, 4, -39,
|
886
|
+
49, -16, -56, -63, 0, nil, nil, -12, -89, -154,
|
887
|
+
-48, -84, 22, -148 ]
|
884
888
|
|
885
889
|
racc_goto_default = [
|
886
890
|
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
@@ -1002,28 +1006,30 @@ racc_reduce_table = [
|
|
1002
1006
|
1, 89, :_reduce_none,
|
1003
1007
|
1, 90, :_reduce_108,
|
1004
1008
|
3, 90, :_reduce_109,
|
1009
|
+
2, 90, :_reduce_110,
|
1010
|
+
4, 90, :_reduce_111,
|
1005
1011
|
0, 88, :_reduce_none,
|
1006
|
-
3, 88, :
|
1012
|
+
3, 88, :_reduce_113,
|
1007
1013
|
1, 103, :_reduce_none,
|
1008
1014
|
0, 52, :_reduce_none,
|
1009
|
-
0, 109, :
|
1010
|
-
3, 52, :
|
1015
|
+
0, 109, :_reduce_116,
|
1016
|
+
3, 52, :_reduce_117,
|
1011
1017
|
1, 59, :_reduce_none,
|
1012
1018
|
0, 60, :_reduce_none,
|
1013
1019
|
1, 60, :_reduce_none,
|
1014
1020
|
1, 60, :_reduce_none,
|
1015
1021
|
1, 60, :_reduce_none,
|
1016
|
-
1, 67, :
|
1017
|
-
2, 67, :
|
1022
|
+
1, 67, :_reduce_123,
|
1023
|
+
2, 67, :_reduce_124,
|
1018
1024
|
1, 110, :_reduce_none,
|
1019
1025
|
1, 110, :_reduce_none,
|
1020
|
-
1, 94, :
|
1026
|
+
1, 94, :_reduce_127,
|
1021
1027
|
0, 106, :_reduce_none,
|
1022
1028
|
1, 106, :_reduce_none ]
|
1023
1029
|
|
1024
|
-
racc_reduce_n =
|
1030
|
+
racc_reduce_n = 130
|
1025
1031
|
|
1026
|
-
racc_shift_n =
|
1032
|
+
racc_shift_n = 214
|
1027
1033
|
|
1028
1034
|
racc_token_table = {
|
1029
1035
|
false => 0,
|
@@ -1568,8 +1574,8 @@ module_eval(<<'.,.,', 'parser.y', 203)
|
|
1568
1574
|
|
1569
1575
|
module_eval(<<'.,.,', 'parser.y', 207)
|
1570
1576
|
def _reduce_49(val, _values, result)
|
1571
|
-
|
1572
|
-
@grammar.
|
1577
|
+
rule = Grammar::ParameterizingRule::Rule.new(val[1].s_value, val[3], val[6])
|
1578
|
+
@grammar.add_parameterizing_rule(rule)
|
1573
1579
|
|
1574
1580
|
result
|
1575
1581
|
end
|
@@ -1610,7 +1616,7 @@ module_eval(<<'.,.,', 'parser.y', 221)
|
|
1610
1616
|
module_eval(<<'.,.,', 'parser.y', 227)
|
1611
1617
|
def _reduce_54(val, _values, result)
|
1612
1618
|
reset_precs
|
1613
|
-
result = Grammar::
|
1619
|
+
result = Grammar::ParameterizingRule::Rhs.new
|
1614
1620
|
|
1615
1621
|
result
|
1616
1622
|
end
|
@@ -1619,7 +1625,7 @@ module_eval(<<'.,.,', 'parser.y', 227)
|
|
1619
1625
|
module_eval(<<'.,.,', 'parser.y', 232)
|
1620
1626
|
def _reduce_55(val, _values, result)
|
1621
1627
|
reset_precs
|
1622
|
-
result = Grammar::
|
1628
|
+
result = Grammar::ParameterizingRule::Rhs.new
|
1623
1629
|
|
1624
1630
|
result
|
1625
1631
|
end
|
@@ -1933,10 +1939,9 @@ module_eval(<<'.,.,', 'parser.y', 402)
|
|
1933
1939
|
|
1934
1940
|
module_eval(<<'.,.,', 'parser.y', 410)
|
1935
1941
|
def _reduce_99(val, _values, result)
|
1936
|
-
token = Lrama::Lexer::Token::InstantiateRule.new(s_value: val[2], location: @lexer.location, args: [val[1]])
|
1942
|
+
token = Lrama::Lexer::Token::InstantiateRule.new(s_value: val[2], location: @lexer.location, args: [val[1]], lhs_tag: val[3])
|
1937
1943
|
builder = val[0]
|
1938
1944
|
builder.add_rhs(token)
|
1939
|
-
builder.lhs_tag = val[3]
|
1940
1945
|
builder.line = val[1].first_line
|
1941
1946
|
result = builder
|
1942
1947
|
|
@@ -1944,12 +1949,11 @@ module_eval(<<'.,.,', 'parser.y', 410)
|
|
1944
1949
|
end
|
1945
1950
|
.,.,
|
1946
1951
|
|
1947
|
-
module_eval(<<'.,.,', 'parser.y',
|
1952
|
+
module_eval(<<'.,.,', 'parser.y', 418)
|
1948
1953
|
def _reduce_100(val, _values, result)
|
1949
|
-
token = Lrama::Lexer::Token::InstantiateRule.new(s_value: val[1].s_value, location: @lexer.location, args: val[3])
|
1954
|
+
token = Lrama::Lexer::Token::InstantiateRule.new(s_value: val[1].s_value, location: @lexer.location, args: val[3], lhs_tag: val[5])
|
1950
1955
|
builder = val[0]
|
1951
1956
|
builder.add_rhs(token)
|
1952
|
-
builder.lhs_tag = val[5]
|
1953
1957
|
builder.line = val[1].first_line
|
1954
1958
|
result = builder
|
1955
1959
|
|
@@ -1957,7 +1961,7 @@ module_eval(<<'.,.,', 'parser.y', 419)
|
|
1957
1961
|
end
|
1958
1962
|
.,.,
|
1959
1963
|
|
1960
|
-
module_eval(<<'.,.,', 'parser.y',
|
1964
|
+
module_eval(<<'.,.,', 'parser.y', 426)
|
1961
1965
|
def _reduce_101(val, _values, result)
|
1962
1966
|
if @prec_seen
|
1963
1967
|
on_action_error("multiple User_code after %prec", val[0]) if @code_after_prec
|
@@ -1969,7 +1973,7 @@ module_eval(<<'.,.,', 'parser.y', 428)
|
|
1969
1973
|
end
|
1970
1974
|
.,.,
|
1971
1975
|
|
1972
|
-
module_eval(<<'.,.,', 'parser.y',
|
1976
|
+
module_eval(<<'.,.,', 'parser.y', 434)
|
1973
1977
|
def _reduce_102(val, _values, result)
|
1974
1978
|
end_c_declaration
|
1975
1979
|
|
@@ -1977,7 +1981,7 @@ module_eval(<<'.,.,', 'parser.y', 436)
|
|
1977
1981
|
end
|
1978
1982
|
.,.,
|
1979
1983
|
|
1980
|
-
module_eval(<<'.,.,', 'parser.y',
|
1984
|
+
module_eval(<<'.,.,', 'parser.y', 438)
|
1981
1985
|
def _reduce_103(val, _values, result)
|
1982
1986
|
user_code = val[3]
|
1983
1987
|
user_code.alias_name = val[6]
|
@@ -1989,7 +1993,7 @@ module_eval(<<'.,.,', 'parser.y', 440)
|
|
1989
1993
|
end
|
1990
1994
|
.,.,
|
1991
1995
|
|
1992
|
-
module_eval(<<'.,.,', 'parser.y',
|
1996
|
+
module_eval(<<'.,.,', 'parser.y', 446)
|
1993
1997
|
def _reduce_104(val, _values, result)
|
1994
1998
|
sym = @grammar.find_symbol_by_id!(val[2])
|
1995
1999
|
@prec_seen = true
|
@@ -2007,35 +2011,49 @@ module_eval(<<'.,.,', 'parser.y', 448)
|
|
2007
2011
|
|
2008
2012
|
# reduce 107 omitted
|
2009
2013
|
|
2010
|
-
module_eval(<<'.,.,', 'parser.y',
|
2014
|
+
module_eval(<<'.,.,', 'parser.y', 457)
|
2011
2015
|
def _reduce_108(val, _values, result)
|
2012
2016
|
result = [val[0]]
|
2013
2017
|
result
|
2014
2018
|
end
|
2015
2019
|
.,.,
|
2016
2020
|
|
2017
|
-
module_eval(<<'.,.,', 'parser.y',
|
2021
|
+
module_eval(<<'.,.,', 'parser.y', 458)
|
2018
2022
|
def _reduce_109(val, _values, result)
|
2019
2023
|
result = val[0].append(val[2])
|
2020
2024
|
result
|
2021
2025
|
end
|
2022
2026
|
.,.,
|
2023
2027
|
|
2024
|
-
|
2028
|
+
module_eval(<<'.,.,', 'parser.y', 459)
|
2029
|
+
def _reduce_110(val, _values, result)
|
2030
|
+
result = [Lrama::Lexer::Token::InstantiateRule.new(s_value: val[1].s_value, location: @lexer.location, args: val[0])]
|
2031
|
+
result
|
2032
|
+
end
|
2033
|
+
.,.,
|
2025
2034
|
|
2026
|
-
module_eval(<<'.,.,', 'parser.y',
|
2035
|
+
module_eval(<<'.,.,', 'parser.y', 460)
|
2027
2036
|
def _reduce_111(val, _values, result)
|
2028
|
-
result = val[
|
2037
|
+
result = [Lrama::Lexer::Token::InstantiateRule.new(s_value: val[0].s_value, location: @lexer.location, args: val[2])]
|
2029
2038
|
result
|
2030
2039
|
end
|
2031
2040
|
.,.,
|
2032
2041
|
|
2033
2042
|
# reduce 112 omitted
|
2034
2043
|
|
2035
|
-
|
2044
|
+
module_eval(<<'.,.,', 'parser.y', 463)
|
2045
|
+
def _reduce_113(val, _values, result)
|
2046
|
+
result = val[1].s_value
|
2047
|
+
result
|
2048
|
+
end
|
2049
|
+
.,.,
|
2050
|
+
|
2051
|
+
# reduce 114 omitted
|
2052
|
+
|
2053
|
+
# reduce 115 omitted
|
2036
2054
|
|
2037
2055
|
module_eval(<<'.,.,', 'parser.y', 470)
|
2038
|
-
def
|
2056
|
+
def _reduce_116(val, _values, result)
|
2039
2057
|
begin_c_declaration('\Z')
|
2040
2058
|
@grammar.epilogue_first_lineno = @lexer.line + 1
|
2041
2059
|
|
@@ -2044,7 +2062,7 @@ module_eval(<<'.,.,', 'parser.y', 470)
|
|
2044
2062
|
.,.,
|
2045
2063
|
|
2046
2064
|
module_eval(<<'.,.,', 'parser.y', 475)
|
2047
|
-
def
|
2065
|
+
def _reduce_117(val, _values, result)
|
2048
2066
|
end_c_declaration
|
2049
2067
|
@grammar.epilogue = val[2].s_value
|
2050
2068
|
|
@@ -2052,44 +2070,44 @@ module_eval(<<'.,.,', 'parser.y', 475)
|
|
2052
2070
|
end
|
2053
2071
|
.,.,
|
2054
2072
|
|
2055
|
-
# reduce 116 omitted
|
2056
|
-
|
2057
|
-
# reduce 117 omitted
|
2058
|
-
|
2059
2073
|
# reduce 118 omitted
|
2060
2074
|
|
2061
2075
|
# reduce 119 omitted
|
2062
2076
|
|
2063
2077
|
# reduce 120 omitted
|
2064
2078
|
|
2079
|
+
# reduce 121 omitted
|
2080
|
+
|
2081
|
+
# reduce 122 omitted
|
2082
|
+
|
2065
2083
|
module_eval(<<'.,.,', 'parser.y', 486)
|
2066
|
-
def
|
2084
|
+
def _reduce_123(val, _values, result)
|
2067
2085
|
result = [val[0]]
|
2068
2086
|
result
|
2069
2087
|
end
|
2070
2088
|
.,.,
|
2071
2089
|
|
2072
2090
|
module_eval(<<'.,.,', 'parser.y', 487)
|
2073
|
-
def
|
2091
|
+
def _reduce_124(val, _values, result)
|
2074
2092
|
result = val[0].append(val[1])
|
2075
2093
|
result
|
2076
2094
|
end
|
2077
2095
|
.,.,
|
2078
2096
|
|
2079
|
-
# reduce
|
2097
|
+
# reduce 125 omitted
|
2080
2098
|
|
2081
|
-
# reduce
|
2099
|
+
# reduce 126 omitted
|
2082
2100
|
|
2083
2101
|
module_eval(<<'.,.,', 'parser.y', 492)
|
2084
|
-
def
|
2102
|
+
def _reduce_127(val, _values, result)
|
2085
2103
|
result = Lrama::Lexer::Token::Ident.new(s_value: val[0])
|
2086
2104
|
result
|
2087
2105
|
end
|
2088
2106
|
.,.,
|
2089
2107
|
|
2090
|
-
# reduce
|
2108
|
+
# reduce 128 omitted
|
2091
2109
|
|
2092
|
-
# reduce
|
2110
|
+
# reduce 129 omitted
|
2093
2111
|
|
2094
2112
|
def _reduce_none(val, _values, result)
|
2095
2113
|
val[0]
|
data/lib/lrama/version.rb
CHANGED