lrama 0.6.7 → 0.6.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9988d9adb19d53cc1d746c80848e95907248a77d08e36977fa80fca48664719e
4
- data.tar.gz: 64b6704a87302e191a5cc489ed512dd20bae4aec6c2dadc007e2725301a12aed
3
+ metadata.gz: eb427615ab5c822c3d3c83edb934e110b478fcf7e149058a15f06c48cbb85b0b
4
+ data.tar.gz: 6b781dc123779bb4e51ec10185cc9215296629d6d3856e28c53c387388e45d4c
5
5
  SHA512:
6
- metadata.gz: bc4cb9f8799848a64745e3d8510d547759efdea7d4d550acc127fec63cef5251229d866822b1b05fa153dcf91ec4857f507280aaa9684fc868b1094881e5c588
7
- data.tar.gz: f60d50f5c18d2ffd5cecdd350b7ae90ce418e8726896b09760f742edab3f783c6b57b51b2b6e52b48cbdcfd2a0fdfd50b57ddbb3f4254758d92bc10f60929473
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, 227, 217, 217, 217, 51, 51, 50, 50, 186,
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
- 226, 96, 96, 210 ]
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, 226, 228 ]
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
- nil, 260, 160, nil, nil, 230, 231, nil, 275, nil,
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, 231, -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
- -66, -138, -138, -108, -117, -120, -120, -119, -136, -69,
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, 74, 69, 52, 209, 95, 110, 118, 185, 145,
850
- 158, 207, 1, 2, 119, 212, 4, 43, 42, 212,
851
- 212, 72, 202, 84, 84, 84, 84, 80, 85, 86,
852
- 87, 213, 53, 55, 56, 223, 193, 197, 198, 111,
853
- 115, 76, 116, 222, 199, 118, 182, 230, 110, 138,
854
- 92, 91, 218, 5, 40, 122, 10, 72, 72, 11,
855
- 12, 13, 49, 97, 118, 128, 169, 104, 151, 84,
856
- 84, 110, 105, 152, 106, 153, 107, 154, 134, 108,
857
- 76, 137, 115, 155, 68, 73, 112, 135, 139, 121,
858
- 200, 204, 221, 126, 167, 102, 149, 72, 144, 72,
859
- 189, 219, 123, 115, nil, 84, nil, 84, nil, nil,
860
- nil, 164, nil, nil, nil, nil, nil, nil, nil, nil,
861
- nil, nil, 72, 184, nil, 178, 84, nil, nil, nil,
862
- nil, nil, 190, nil, nil, nil, nil, 201, nil, nil,
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
- nil, 208, nil, 224, 228, 229 ]
867
+ 229, 208, 230, 224 ]
868
868
 
869
869
  racc_goto_check = [
870
- 42, 48, 33, 35, 60, 43, 34, 55, 44, 59,
871
- 39, 45, 1, 2, 54, 64, 3, 56, 4, 64,
872
- 64, 35, 44, 35, 35, 35, 35, 32, 32, 32,
873
- 32, 45, 15, 15, 15, 60, 21, 21, 21, 33,
874
- 42, 42, 48, 45, 39, 55, 59, 60, 34, 54,
875
- 56, 5, 44, 6, 7, 8, 9, 35, 35, 10,
876
- 11, 12, 13, 14, 55, 16, 17, 18, 19, 35,
877
- 35, 34, 22, 23, 24, 25, 26, 27, 33, 28,
878
- 42, 48, 42, 29, 30, 31, 36, 37, 38, 40,
879
- 41, 46, 47, 50, 51, 52, 53, 35, 58, 35,
880
- 61, 62, 63, 42, nil, 35, nil, 35, nil, nil,
881
- nil, 42, nil, nil, nil, nil, nil, nil, nil, nil,
882
- nil, nil, 35, 43, nil, 42, 35, nil, nil, nil,
883
- nil, nil, 42, nil, nil, nil, nil, 43, 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
- nil, 42, nil, 42, 43, 43 ]
888
+ 43, 42, 43, 42 ]
889
889
 
890
890
  racc_goto_pointer = [
891
- nil, 12, 13, 14, 9, 9, 51, 48, -35, 52,
892
- 55, 56, 57, 47, 14, 16, -38, -84, 9, -61,
893
- nil, -136, 13, -57, 14, -56, 15, -55, 17, -50,
894
- 51, 51, -8, -31, -63, -12, 14, -25, -32, -131,
895
- 0, -87, -34, -41, -156, -172, -89, -122, -33, nil,
896
- -8, -54, 41, -31, -68, -74, 8, nil, -26, -115,
897
- -181, -65, -110, 9, -178 ]
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, 78,
905
- nil, nil, nil, nil, 81, 83, nil, 44, nil, 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
- 5, 95, :_reduce_66,
976
- 0, 100, :_reduce_67,
977
- 0, 101, :_reduce_68,
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, 102, :_reduce_78,
988
- 2, 102, :_reduce_79,
987
+ 1, 103, :_reduce_78,
988
+ 2, 103, :_reduce_79,
989
989
  1, 96, :_reduce_none,
990
990
  1, 96, :_reduce_none,
991
- 0, 104, :_reduce_82,
992
- 0, 105, :_reduce_83,
991
+ 0, 105, :_reduce_82,
992
+ 0, 106, :_reduce_83,
993
993
  6, 69, :_reduce_84,
994
- 0, 106, :_reduce_85,
995
- 0, 107, :_reduce_86,
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, 108, :_reduce_91,
1001
- 2, 108, :_reduce_92,
1002
- 1, 109, :_reduce_none,
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, 110, :_reduce_none,
1008
- 2, 110, :_reduce_none,
1009
- 4, 111, :_reduce_100,
1010
- 1, 112, :_reduce_101,
1011
- 3, 112, :_reduce_102,
1012
- 2, 112, :_reduce_none,
1013
- 0, 113, :_reduce_104,
1014
- 1, 113, :_reduce_105,
1015
- 3, 113, :_reduce_106,
1016
- 4, 113, :_reduce_107,
1017
- 6, 113, :_reduce_108,
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, 113, :_reduce_111,
1021
- 3, 113, :_reduce_112,
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, 103, :_reduce_135,
1045
- 0, 114, :_reduce_none,
1046
- 1, 114, :_reduce_none ]
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 = 231
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
@@ -1,3 +1,3 @@
1
1
  module Lrama
2
- VERSION = "0.6.7".freeze
2
+ VERSION = "0.6.8".freeze
3
3
  end
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.7
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-28 00:00:00.000000000 Z
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: