lrama 0.6.7 → 0.6.8
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/README.md +3 -0
- data/lib/lrama/parser.rb +78 -78
- data/lib/lrama/version.rb +1 -1
- data/parser.y +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eb427615ab5c822c3d3c83edb934e110b478fcf7e149058a15f06c48cbb85b0b
|
4
|
+
data.tar.gz: 6b781dc123779bb4e51ec10185cc9215296629d6d3856e28c53c387388e45d4c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2c7962cff0ec5b31d0ef7e4c899e52258968c887bf42056775f1342d103badf93cff17a27a4b7fae390f4b451b75c3423408be21f2bcfb189b1acc6df7fcc6e7
|
7
|
+
data.tar.gz: cdfc5d75fb400e2a0612f911845a99ce0c0bfce583089b202a5be25aecd69e73484bb4cf172fce392c65cee0e496b911b064706035f0baba2de227289c4667e3
|
data/README.md
CHANGED
@@ -30,6 +30,9 @@ Lrama is LALR (1) parser generator written by Ruby. The first goal of this proje
|
|
30
30
|
* Parameterizing rules
|
31
31
|
* The definition of a non-terminal symbol can be parameterized with other (terminal or non-terminal) symbols.
|
32
32
|
* Providing a generic definition of parameterizing rules as a [standard library](lib/lrama/grammar/stdlib.y).
|
33
|
+
* Inlining
|
34
|
+
* The %inline directive causes all references to symbols to be replaced with its definition.
|
35
|
+
* Resolve shift/reduce conflicts without artificially altering the grammar file.
|
33
36
|
|
34
37
|
## Installation
|
35
38
|
|
data/lib/lrama/parser.rb
CHANGED
@@ -752,7 +752,7 @@ racc_action_table = [
|
|
752
752
|
50, 50, 79, 79, 51, 51, 50, 206, 79, 79,
|
753
753
|
51, 51, 206, 206, 79, 79, 51, 51, 50, 50,
|
754
754
|
79, 186, 187, 188, 96, 186, 187, 188, 96, 216,
|
755
|
-
220,
|
755
|
+
220, 228, 217, 217, 217, 51, 51, 50, 50, 186,
|
756
756
|
187, 188, 57, 58, 59, 60, 61, 62, 63, 64,
|
757
757
|
65, 66, 67, 90, 94, 96, 101, 101, 101, 103,
|
758
758
|
109, 113, 114, 117, 117, 117, 117, 120, 47, 124,
|
@@ -760,7 +760,7 @@ racc_action_table = [
|
|
760
760
|
142, 143, 146, 147, 148, 150, 160, 168, 170, 171,
|
761
761
|
172, 173, 174, 175, 176, 177, 146, 183, 191, 192,
|
762
762
|
160, 160, 203, 210, 211, 177, 214, 215, 210, 225,
|
763
|
-
|
763
|
+
210, 227, 96, 96, 210 ]
|
764
764
|
|
765
765
|
racc_action_check = [
|
766
766
|
49, 145, 49, 145, 39, 145, 159, 182, 159, 182,
|
@@ -791,7 +791,7 @@ racc_action_check = [
|
|
791
791
|
122, 123, 124, 125, 126, 128, 141, 149, 151, 152,
|
792
792
|
153, 154, 155, 156, 157, 158, 161, 163, 167, 169,
|
793
793
|
175, 177, 179, 185, 189, 199, 204, 206, 216, 219,
|
794
|
-
221, 225,
|
794
|
+
220, 221, 225, 227, 229 ]
|
795
795
|
|
796
796
|
racc_action_pointer = [
|
797
797
|
nil, 20, 22, 26, 98, nil, nil, 39, nil, 33,
|
@@ -816,11 +816,11 @@ racc_action_pointer = [
|
|
816
816
|
nil, nil, nil, 135, nil, nil, nil, 141, 147, 230,
|
817
817
|
9, nil, nil, 177, 274, nil, 237, 158, 161, nil,
|
818
818
|
nil, nil, nil, 159, nil, 178, 270, 183, nil, 259,
|
819
|
-
|
820
|
-
nil ]
|
819
|
+
272, 261, 160, nil, nil, 231, nil, 232, nil, 276,
|
820
|
+
nil, nil ]
|
821
821
|
|
822
822
|
racc_action_default = [
|
823
|
-
-2, -138, -8, -138, -138, -3, -4, -138,
|
823
|
+
-2, -138, -8, -138, -138, -3, -4, -138, 232, -138,
|
824
824
|
-9, -10, -11, -12, -138, -138, -138, -138, -138, -138,
|
825
825
|
-138, -24, -25, -138, -29, -138, -138, -138, -138, -138,
|
826
826
|
-138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
|
@@ -842,67 +842,67 @@ racc_action_default = [
|
|
842
842
|
-112, -84, -20, -32, -131, -133, -134, -35, -38, -56,
|
843
843
|
-61, -64, -65, -138, -138, -70, -94, -138, -116, -107,
|
844
844
|
-137, -110, -132, -138, -68, -138, -136, -138, -118, -138,
|
845
|
-
|
846
|
-
-111 ]
|
845
|
+
-136, -138, -138, -108, -117, -120, -66, -120, -119, -136,
|
846
|
+
-69, -111 ]
|
847
847
|
|
848
848
|
racc_goto_table = [
|
849
|
-
76,
|
850
|
-
158,
|
851
|
-
|
852
|
-
87,
|
853
|
-
115, 76,
|
854
|
-
|
855
|
-
12, 13, 49, 97,
|
856
|
-
84, 110, 105, 152, 106, 153, 107,
|
857
|
-
76,
|
858
|
-
200, 204, 221, 126, 167, 102,
|
859
|
-
189, 219,
|
860
|
-
nil, 164, nil, nil, nil, nil, nil, nil, nil,
|
861
|
-
nil, nil, 72,
|
862
|
-
nil, nil, 190,
|
849
|
+
76, 95, 69, 52, 74, 118, 110, 209, 185, 145,
|
850
|
+
158, 1, 119, 212, 2, 4, 43, 212, 212, 42,
|
851
|
+
91, 72, 202, 84, 84, 84, 84, 80, 85, 86,
|
852
|
+
87, 5, 40, 207, 53, 55, 56, 122, 223, 111,
|
853
|
+
115, 76, 226, 118, 199, 116, 182, 138, 110, 92,
|
854
|
+
10, 231, 218, 213, 193, 197, 198, 72, 72, 11,
|
855
|
+
12, 13, 118, 49, 97, 222, 128, 169, 104, 84,
|
856
|
+
84, 110, 151, 105, 152, 106, 153, 107, 134, 154,
|
857
|
+
76, 108, 115, 155, 137, 68, 73, 112, 135, 139,
|
858
|
+
121, 200, 204, 221, 126, 167, 102, 72, 149, 72,
|
859
|
+
144, 189, 219, 115, 123, 84, nil, 84, nil, nil,
|
860
|
+
nil, 164, nil, nil, nil, nil, nil, nil, nil, 184,
|
861
|
+
nil, nil, 72, nil, nil, 178, 84, nil, nil, nil,
|
862
|
+
nil, nil, 190, 201, nil, nil, nil, nil, nil, nil,
|
863
863
|
nil, nil, nil, nil, nil, nil, nil, 205, 164, 208,
|
864
864
|
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
865
865
|
nil, nil, nil, nil, nil, nil, 178, nil, nil, 208,
|
866
866
|
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
867
|
-
|
867
|
+
229, 208, 230, 224 ]
|
868
868
|
|
869
869
|
racc_goto_check = [
|
870
|
-
42,
|
871
|
-
39,
|
872
|
-
|
873
|
-
32, 45, 15, 15, 15,
|
874
|
-
42, 42,
|
875
|
-
|
876
|
-
11, 12, 13, 14,
|
877
|
-
35, 34, 22, 23, 24, 25, 26,
|
878
|
-
42,
|
879
|
-
|
880
|
-
61, 62,
|
881
|
-
nil, 42, nil, nil, nil, nil, nil, nil, nil,
|
882
|
-
nil, nil, 35,
|
883
|
-
nil, nil, 42, nil, nil, nil, nil,
|
870
|
+
42, 43, 33, 35, 49, 56, 34, 46, 44, 60,
|
871
|
+
39, 1, 55, 64, 2, 3, 57, 64, 64, 4,
|
872
|
+
5, 35, 44, 35, 35, 35, 35, 32, 32, 32,
|
873
|
+
32, 6, 7, 45, 15, 15, 15, 8, 46, 33,
|
874
|
+
42, 42, 46, 56, 39, 49, 60, 55, 34, 57,
|
875
|
+
9, 46, 44, 45, 21, 21, 21, 35, 35, 10,
|
876
|
+
11, 12, 56, 13, 14, 45, 16, 17, 18, 35,
|
877
|
+
35, 34, 19, 22, 23, 24, 25, 26, 33, 27,
|
878
|
+
42, 28, 42, 29, 49, 30, 31, 36, 37, 38,
|
879
|
+
40, 41, 47, 48, 51, 52, 53, 35, 54, 35,
|
880
|
+
59, 61, 62, 42, 63, 35, nil, 35, nil, nil,
|
881
|
+
nil, 42, nil, nil, nil, nil, nil, nil, nil, 43,
|
882
|
+
nil, nil, 35, nil, nil, 42, 35, nil, nil, nil,
|
883
|
+
nil, nil, 42, 43, nil, nil, nil, nil, nil, nil,
|
884
884
|
nil, nil, nil, nil, nil, nil, nil, 42, 42, 42,
|
885
885
|
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
886
886
|
nil, nil, nil, nil, nil, nil, 42, nil, nil, 42,
|
887
887
|
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
888
|
-
|
888
|
+
43, 42, 43, 42 ]
|
889
889
|
|
890
890
|
racc_goto_pointer = [
|
891
|
-
nil,
|
892
|
-
55, 56, 57,
|
893
|
-
nil, -
|
894
|
-
|
895
|
-
|
896
|
-
-
|
897
|
-
-
|
891
|
+
nil, 11, 14, 13, 10, -22, 29, 26, -53, 46,
|
892
|
+
55, 56, 57, 48, 15, 18, -37, -83, 10, -57,
|
893
|
+
nil, -118, 14, -56, 15, -55, 16, -53, 19, -50,
|
894
|
+
52, 52, -8, -31, -63, -12, 15, -24, -31, -131,
|
895
|
+
1, -86, -34, -45, -156, -150, -178, -88, -121, -30,
|
896
|
+
nil, -7, -53, 42, -29, -70, -76, 7, nil, -24,
|
897
|
+
-115, -64, -109, 11, -180 ]
|
898
898
|
|
899
899
|
racc_goto_default = [
|
900
900
|
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
901
901
|
45, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
902
902
|
24, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
903
903
|
nil, nil, nil, nil, 71, 77, nil, nil, nil, nil,
|
904
|
-
46, 159, 195, nil, nil, nil, nil, nil, nil,
|
905
|
-
nil, nil, nil, nil, 81, 83, nil, 44, nil,
|
904
|
+
46, 159, 195, nil, nil, nil, nil, nil, nil, nil,
|
905
|
+
78, nil, nil, nil, nil, 81, 83, nil, 44, nil,
|
906
906
|
nil, nil, nil, nil, 194 ]
|
907
907
|
|
908
908
|
racc_reduce_table = [
|
@@ -972,9 +972,9 @@ racc_reduce_table = [
|
|
972
972
|
1, 95, :_reduce_63,
|
973
973
|
3, 95, :_reduce_64,
|
974
974
|
3, 95, :_reduce_65,
|
975
|
-
|
976
|
-
0,
|
977
|
-
0,
|
975
|
+
6, 95, :_reduce_66,
|
976
|
+
0, 101, :_reduce_67,
|
977
|
+
0, 102, :_reduce_68,
|
978
978
|
7, 95, :_reduce_69,
|
979
979
|
3, 95, :_reduce_70,
|
980
980
|
0, 90, :_reduce_none,
|
@@ -984,41 +984,41 @@ racc_reduce_table = [
|
|
984
984
|
1, 85, :_reduce_75,
|
985
985
|
2, 85, :_reduce_76,
|
986
986
|
3, 85, :_reduce_77,
|
987
|
-
1,
|
988
|
-
2,
|
987
|
+
1, 103, :_reduce_78,
|
988
|
+
2, 103, :_reduce_79,
|
989
989
|
1, 96, :_reduce_none,
|
990
990
|
1, 96, :_reduce_none,
|
991
|
-
0,
|
992
|
-
0,
|
991
|
+
0, 105, :_reduce_82,
|
992
|
+
0, 106, :_reduce_83,
|
993
993
|
6, 69, :_reduce_84,
|
994
|
-
0,
|
995
|
-
0,
|
994
|
+
0, 107, :_reduce_85,
|
995
|
+
0, 108, :_reduce_86,
|
996
996
|
5, 69, :_reduce_87,
|
997
997
|
1, 86, :_reduce_88,
|
998
998
|
2, 86, :_reduce_89,
|
999
999
|
3, 86, :_reduce_90,
|
1000
|
-
1,
|
1001
|
-
2,
|
1002
|
-
1,
|
1000
|
+
1, 109, :_reduce_91,
|
1001
|
+
2, 109, :_reduce_92,
|
1002
|
+
1, 110, :_reduce_none,
|
1003
1003
|
1, 89, :_reduce_94,
|
1004
1004
|
1, 89, :_reduce_95,
|
1005
1005
|
1, 58, :_reduce_none,
|
1006
1006
|
2, 58, :_reduce_none,
|
1007
|
-
1,
|
1008
|
-
2,
|
1009
|
-
4,
|
1010
|
-
1,
|
1011
|
-
3,
|
1012
|
-
2,
|
1013
|
-
0,
|
1014
|
-
1,
|
1015
|
-
3,
|
1016
|
-
4,
|
1017
|
-
6,
|
1007
|
+
1, 111, :_reduce_none,
|
1008
|
+
2, 111, :_reduce_none,
|
1009
|
+
4, 112, :_reduce_100,
|
1010
|
+
1, 113, :_reduce_101,
|
1011
|
+
3, 113, :_reduce_102,
|
1012
|
+
2, 113, :_reduce_none,
|
1013
|
+
0, 114, :_reduce_104,
|
1014
|
+
1, 114, :_reduce_105,
|
1015
|
+
3, 114, :_reduce_106,
|
1016
|
+
4, 114, :_reduce_107,
|
1017
|
+
6, 114, :_reduce_108,
|
1018
1018
|
0, 115, :_reduce_109,
|
1019
1019
|
0, 116, :_reduce_110,
|
1020
|
-
8,
|
1021
|
-
3,
|
1020
|
+
8, 114, :_reduce_111,
|
1021
|
+
3, 114, :_reduce_112,
|
1022
1022
|
1, 98, :_reduce_113,
|
1023
1023
|
1, 98, :_reduce_114,
|
1024
1024
|
1, 98, :_reduce_115,
|
@@ -1041,13 +1041,13 @@ racc_reduce_table = [
|
|
1041
1041
|
2, 75, :_reduce_132,
|
1042
1042
|
1, 118, :_reduce_none,
|
1043
1043
|
1, 118, :_reduce_none,
|
1044
|
-
1,
|
1045
|
-
0,
|
1046
|
-
1,
|
1044
|
+
1, 104, :_reduce_135,
|
1045
|
+
0, 100, :_reduce_none,
|
1046
|
+
1, 100, :_reduce_none ]
|
1047
1047
|
|
1048
1048
|
racc_reduce_n = 138
|
1049
1049
|
|
1050
|
-
racc_shift_n =
|
1050
|
+
racc_shift_n = 232
|
1051
1051
|
|
1052
1052
|
racc_token_table = {
|
1053
1053
|
false => 0,
|
@@ -1227,6 +1227,7 @@ Racc_token_to_s_table = [
|
|
1227
1227
|
"named_ref_opt",
|
1228
1228
|
"parameterizing_suffix",
|
1229
1229
|
"parameterizing_args",
|
1230
|
+
"tag_opt",
|
1230
1231
|
"@15",
|
1231
1232
|
"@16",
|
1232
1233
|
"symbol_declaration_list",
|
@@ -1241,7 +1242,6 @@ Racc_token_to_s_table = [
|
|
1241
1242
|
"rules",
|
1242
1243
|
"rhs_list",
|
1243
1244
|
"rhs",
|
1244
|
-
"tag_opt",
|
1245
1245
|
"@21",
|
1246
1246
|
"@22",
|
1247
1247
|
"@23",
|
@@ -1757,7 +1757,7 @@ module_eval(<<'.,.,', 'parser.y', 280)
|
|
1757
1757
|
module_eval(<<'.,.,', 'parser.y', 286)
|
1758
1758
|
def _reduce_66(val, _values, result)
|
1759
1759
|
builder = val[0]
|
1760
|
-
builder.symbols << Lrama::Lexer::Token::InstantiateRule.new(s_value: val[1].s_value, location: @lexer.location, args: val[3])
|
1760
|
+
builder.symbols << Lrama::Lexer::Token::InstantiateRule.new(s_value: val[1].s_value, location: @lexer.location, args: val[3], lhs_tag: val[5])
|
1761
1761
|
result = builder
|
1762
1762
|
|
1763
1763
|
result
|
data/lib/lrama/version.rb
CHANGED
data/parser.y
CHANGED
@@ -282,10 +282,10 @@ rule
|
|
282
282
|
builder.symbols << Lrama::Lexer::Token::InstantiateRule.new(s_value: val[2], location: @lexer.location, args: [val[1]])
|
283
283
|
result = builder
|
284
284
|
}
|
285
|
-
| rule_rhs IDENTIFIER "(" parameterizing_args ")"
|
285
|
+
| rule_rhs IDENTIFIER "(" parameterizing_args ")" tag_opt
|
286
286
|
{
|
287
287
|
builder = val[0]
|
288
|
-
builder.symbols << Lrama::Lexer::Token::InstantiateRule.new(s_value: val[1].s_value, location: @lexer.location, args: val[3])
|
288
|
+
builder.symbols << Lrama::Lexer::Token::InstantiateRule.new(s_value: val[1].s_value, location: @lexer.location, args: val[3], lhs_tag: val[5])
|
289
289
|
result = builder
|
290
290
|
}
|
291
291
|
| rule_rhs "{"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lrama
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yuichiro Kaneko
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-04-
|
11
|
+
date: 2024-04-29 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: LALR (1) parser generator written by Ruby
|
14
14
|
email:
|