lrama 0.5.10 → 0.5.11

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.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test.yaml +21 -1
  3. data/Steepfile +8 -12
  4. data/lib/lrama/grammar/code/rule_action.rb +1 -1
  5. data/lib/lrama/grammar/parameterizing_rules/builder/base.rb +10 -2
  6. data/lib/lrama/grammar/parameterizing_rules/builder/list.rb +12 -4
  7. data/lib/lrama/grammar/parameterizing_rules/builder/nonempty_list.rb +12 -4
  8. data/lib/lrama/grammar/parameterizing_rules/builder/option.rb +12 -4
  9. data/lib/lrama/grammar/parameterizing_rules/builder/separated_list.rb +17 -6
  10. data/lib/lrama/grammar/parameterizing_rules/builder/separated_nonempty_list.rb +12 -5
  11. data/lib/lrama/grammar/parameterizing_rules/builder.rb +23 -6
  12. data/lib/lrama/grammar/rule.rb +2 -1
  13. data/lib/lrama/grammar/rule_builder.rb +17 -19
  14. data/lib/lrama/grammar/symbol.rb +16 -2
  15. data/lib/lrama/grammar/type.rb +6 -0
  16. data/lib/lrama/grammar.rb +8 -3
  17. data/lib/lrama/lexer/token/parameterizing.rb +1 -1
  18. data/lib/lrama/lexer/token.rb +16 -9
  19. data/lib/lrama/lexer.rb +1 -2
  20. data/lib/lrama/parser.rb +359 -346
  21. data/lib/lrama/version.rb +1 -1
  22. data/lib/lrama.rb +0 -1
  23. data/parser.y +17 -15
  24. data/rbs_collection.lock.yaml +2 -8
  25. data/sig/lrama/grammar/error_token.rbs +11 -0
  26. data/sig/lrama/grammar/parameterizing_rules/builder/base.rbs +26 -0
  27. data/sig/lrama/grammar/parameterizing_rules/builder/list.rbs +10 -0
  28. data/sig/lrama/grammar/parameterizing_rules/builder/nonempty_list.rbs +10 -0
  29. data/sig/lrama/grammar/parameterizing_rules/builder/option.rbs +10 -0
  30. data/sig/lrama/grammar/parameterizing_rules/builder/separated_list.rbs +11 -0
  31. data/sig/lrama/grammar/parameterizing_rules/builder/separated_nonempty_list.rbs +11 -0
  32. data/sig/lrama/grammar/parameterizing_rules/builder.rbs +14 -1
  33. data/sig/lrama/grammar/reference.rbs +2 -2
  34. data/sig/lrama/grammar/rule.rbs +1 -1
  35. data/sig/lrama/grammar/rule_builder.rbs +1 -0
  36. data/sig/lrama/grammar/symbol.rbs +37 -0
  37. data/sig/lrama/lexer/token/parameterizing.rbs +2 -0
  38. data/sig/lrama/lexer/token.rbs +3 -3
  39. data/template/bison/yacc.c +0 -2
  40. metadata +11 -3
  41. data/lib/lrama/type.rb +0 -4
data/lib/lrama/parser.rb CHANGED
@@ -658,7 +658,7 @@ end
658
658
  module Lrama
659
659
  class Parser < Racc::Parser
660
660
 
661
- module_eval(<<'...end parser.y/module_eval...', 'parser.y', 418)
661
+ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 420)
662
662
 
663
663
  include Lrama::Report::Duration
664
664
 
@@ -749,142 +749,142 @@ end
749
749
  ##### State transition tables begin ###
750
750
 
751
751
  racc_action_table = [
752
- 84, 43, 85, 139, 39, 67, 43, 138, 139, 153,
753
- 67, 171, 172, 154, 155, 156, 43, 141, 42, 137,
754
- 3, 58, 141, 21, 23, 24, 25, 26, 27, 28,
755
- 29, 30, 31, 39, 6, 8, 7, 142, 79, 43,
756
- 86, 42, 142, 67, 63, 43, 43, 42, 42, 33,
757
- 70, 70, 21, 23, 24, 25, 26, 27, 28, 29,
758
- 30, 31, 9, 40, 45, 14, 12, 13, 15, 16,
759
- 17, 18, 47, 47, 19, 20, 21, 23, 24, 25,
760
- 26, 27, 28, 29, 30, 31, 43, 43, 42, 42,
761
- 47, 70, 70, 43, 43, 42, 42, 67, 165, 43,
762
- 43, 42, 42, 67, 165, 43, 43, 42, 42, 67,
763
- 165, 43, 43, 42, 42, 67, 165, 43, 43, 42,
764
- 42, 67, 165, 43, 43, 42, 42, 67, 165, 43,
765
- 43, 42, 42, 67, 67, 43, 43, 42, 42, 67,
766
- 67, 43, 43, 42, 42, 67, 67, 43, 43, 42,
767
- 42, 67, 67, 43, 43, 42, 42, 43, 43, 42,
768
- 42, 43, 50, 42, 51, 52, 53, 54, 55, 76,
769
- 80, 82, 87, 87, 87, 89, 95, 99, 100, 103,
770
- 103, 103, 103, 108, 109, 111, 113, 114, 115, 116,
771
- 117, 120, 123, 124, 127, 128, 129, 131, 144, 146,
772
- 147, 148, 149, 150, 127, 82, 160, 161, 169, 175,
773
- 176, 82 ]
752
+ 82, 42, 83, 137, 42, 65, 137, 38, 65, 136,
753
+ 42, 6, 41, 7, 42, 56, 41, 139, 65, 61,
754
+ 139, 135, 42, 42, 41, 41, 20, 22, 23, 24,
755
+ 25, 26, 27, 28, 29, 30, 140, 38, 3, 140,
756
+ 84, 42, 77, 41, 8, 42, 68, 41, 172, 42,
757
+ 68, 41, 32, 173, 68, 39, 20, 22, 23, 24,
758
+ 25, 26, 27, 28, 29, 30, 9, 42, 45, 41,
759
+ 12, 13, 14, 15, 16, 17, 45, 45, 18, 19,
760
+ 20, 22, 23, 24, 25, 26, 27, 28, 29, 30,
761
+ 42, 48, 41, 151, 49, 68, 152, 153, 154, 42,
762
+ 42, 41, 41, 65, 163, 42, 42, 41, 41, 65,
763
+ 163, 42, 42, 41, 41, 65, 163, 42, 42, 41,
764
+ 41, 65, 163, 42, 42, 41, 41, 65, 163, 42,
765
+ 42, 41, 41, 65, 163, 42, 42, 41, 41, 65,
766
+ 65, 42, 42, 41, 41, 65, 65, 42, 42, 41,
767
+ 41, 65, 65, 42, 42, 41, 41, 65, 65, 42,
768
+ 42, 41, 41, 50, 51, 52, 53, 74, 78, 80,
769
+ 85, 85, 85, 87, 93, 97, 98, 101, 101, 101,
770
+ 101, 106, 107, 109, 111, 112, 113, 114, 115, 118,
771
+ 121, 122, 125, 126, 127, 129, 142, 144, 145, 146,
772
+ 147, 148, 125, 80, 158, 159, 167, 170, 167, 177,
773
+ 80 ]
774
774
 
775
775
  racc_action_check = [
776
- 41, 126, 41, 126, 9, 126, 151, 125, 151, 139,
777
- 151, 168, 168, 139, 139, 139, 26, 126, 26, 125,
778
- 1, 26, 151, 9, 9, 9, 9, 9, 9, 9,
779
- 9, 9, 9, 34, 2, 3, 2, 126, 34, 27,
780
- 41, 27, 151, 27, 27, 28, 29, 28, 29, 7,
781
- 28, 29, 34, 34, 34, 34, 34, 34, 34, 34,
782
- 34, 34, 4, 12, 14, 4, 4, 4, 4, 4,
783
- 4, 4, 15, 16, 4, 4, 4, 4, 4, 4,
784
- 4, 4, 4, 4, 4, 4, 30, 31, 30, 31,
785
- 17, 30, 31, 148, 13, 148, 13, 148, 148, 149,
786
- 57, 149, 57, 149, 149, 150, 58, 150, 58, 150,
787
- 150, 162, 69, 162, 69, 162, 162, 166, 70, 166,
788
- 70, 166, 166, 167, 95, 167, 95, 167, 167, 62,
789
- 63, 62, 63, 62, 63, 100, 102, 100, 102, 100,
790
- 102, 121, 142, 121, 142, 121, 142, 153, 172, 153,
791
- 172, 153, 172, 97, 103, 97, 103, 105, 118, 105,
792
- 118, 122, 18, 122, 19, 21, 23, 24, 25, 32,
793
- 37, 38, 46, 48, 49, 50, 56, 60, 61, 68,
794
- 73, 74, 75, 81, 82, 88, 90, 91, 92, 93,
795
- 94, 98, 106, 107, 108, 109, 110, 112, 130, 132,
796
- 133, 134, 135, 136, 137, 140, 143, 145, 158, 173,
797
- 174, 175 ]
776
+ 40, 124, 40, 124, 149, 124, 149, 9, 149, 123,
777
+ 25, 2, 25, 2, 26, 25, 26, 124, 26, 26,
778
+ 149, 123, 13, 55, 13, 55, 9, 9, 9, 9,
779
+ 9, 9, 9, 9, 9, 9, 124, 33, 1, 149,
780
+ 40, 27, 33, 27, 3, 28, 27, 28, 168, 29,
781
+ 28, 29, 7, 168, 29, 12, 33, 33, 33, 33,
782
+ 33, 33, 33, 33, 33, 33, 4, 56, 14, 56,
783
+ 4, 4, 4, 4, 4, 4, 15, 16, 4, 4,
784
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
785
+ 30, 17, 30, 137, 18, 30, 137, 137, 137, 146,
786
+ 67, 146, 67, 146, 146, 147, 68, 147, 68, 147,
787
+ 147, 148, 93, 148, 93, 148, 148, 160, 95, 160,
788
+ 95, 160, 160, 164, 101, 164, 101, 164, 164, 165,
789
+ 103, 165, 103, 165, 165, 60, 61, 60, 61, 60,
790
+ 61, 98, 100, 98, 100, 98, 100, 119, 140, 119,
791
+ 140, 119, 140, 151, 173, 151, 173, 151, 173, 116,
792
+ 120, 116, 120, 20, 22, 23, 24, 31, 36, 37,
793
+ 44, 46, 47, 48, 54, 58, 59, 66, 71, 72,
794
+ 73, 79, 80, 86, 88, 89, 90, 91, 92, 96,
795
+ 104, 105, 106, 107, 108, 110, 128, 130, 131, 132,
796
+ 133, 134, 135, 138, 141, 143, 150, 156, 172, 174,
797
+ 177 ]
798
798
 
799
799
  racc_action_pointer = [
800
- nil, 20, 24, 35, 53, nil, nil, 42, nil, 0,
801
- nil, nil, 57, 91, 57, 53, 54, 71, 157, 145,
802
- nil, 146, nil, 147, 148, 149, 13, 36, 42, 43,
803
- 83, 84, 167, nil, 29, nil, nil, 148, 128, nil,
804
- nil, -5, nil, nil, nil, nil, 153, nil, 154, 155,
805
- 156, nil, nil, nil, nil, nil, 168, 97, 103, nil,
806
- 171, 170, 126, 127, nil, nil, nil, nil, 171, 109,
807
- 115, nil, nil, 172, 173, 174, nil, nil, nil, nil,
808
- nil, 150, 179, nil, nil, nil, nil, nil, 183, nil,
809
- 184, 185, 186, 187, 188, 121, nil, 150, 184, nil,
810
- 132, nil, 133, 151, nil, 154, 181, 191, 159, 151,
811
- 194, nil, 195, nil, nil, nil, nil, nil, 155, nil,
812
- nil, 138, 158, nil, nil, -15, -2, nil, nil, nil,
813
- 178, nil, 179, 180, 181, 182, 183, 169, nil, -27,
814
- 162, nil, 139, 186, nil, 187, nil, nil, 90, 96,
815
- 102, 3, nil, 144, nil, nil, nil, nil, 206, nil,
816
- nil, nil, 108, nil, nil, nil, 114, 120, -26, nil,
817
- nil, nil, 145, 189, 173, 168, nil, nil ]
800
+ nil, 38, 1, 44, 57, nil, nil, 45, nil, 3,
801
+ nil, nil, 49, 19, 49, 57, 58, 86, 75, nil,
802
+ 144, nil, 145, 146, 147, 7, 11, 38, 42, 46,
803
+ 87, 165, nil, 33, nil, nil, 146, 126, nil, nil,
804
+ -5, nil, nil, nil, 151, nil, 152, 153, 154, nil,
805
+ nil, nil, nil, nil, 166, 20, 64, nil, 169, 168,
806
+ 132, 133, nil, nil, nil, nil, 169, 97, 103, nil,
807
+ nil, 170, 171, 172, nil, nil, nil, nil, nil, 148,
808
+ 177, nil, nil, nil, nil, nil, 181, nil, 182, 183,
809
+ 184, 185, 186, 109, nil, 115, 182, nil, 138, nil,
810
+ 139, 121, nil, 127, 179, 189, 157, 149, 192, nil,
811
+ 193, nil, nil, nil, nil, nil, 156, nil, nil, 144,
812
+ 157, nil, nil, -13, -2, nil, nil, nil, 176, nil,
813
+ 177, 178, 179, 180, 181, 167, nil, 57, 160, nil,
814
+ 145, 184, nil, 185, nil, nil, 96, 102, 108, 1,
815
+ 198, 150, nil, nil, nil, nil, 205, nil, nil, nil,
816
+ 114, nil, nil, nil, 120, 126, nil, nil, 11, nil,
817
+ nil, nil, 200, 151, 189, nil, nil, 167, nil ]
818
818
 
819
819
  racc_action_default = [
820
- -2, -111, -8, -111, -111, -3, -4, -111, 178, -111,
821
- -9, -10, -111, -111, -111, -111, -111, -111, -111, -111,
822
- -23, -111, -27, -111, -111, -111, -111, -111, -111, -111,
823
- -111, -111, -111, -7, -98, -74, -76, -111, -95, -97,
824
- -11, -102, -72, -73, -101, -13, -14, -63, -15, -16,
825
- -111, -20, -24, -28, -31, -34, -37, -43, -111, -46,
826
- -49, -38, -53, -111, -56, -58, -59, -110, -39, -66,
827
- -111, -69, -71, -40, -41, -42, -5, -1, -75, -99,
828
- -77, -111, -111, -12, -103, -104, -105, -60, -111, -17,
829
- -111, -111, -111, -111, -111, -111, -47, -44, -51, -50,
830
- -111, -57, -54, -111, -70, -67, -111, -111, -82, -111,
831
- -111, -64, -111, -21, -25, -29, -32, -35, -45, -48,
832
- -52, -55, -68, -6, -100, -78, -79, -83, -96, -61,
833
- -111, -18, -111, -111, -111, -111, -111, -82, -81, -72,
834
- -95, -88, -111, -111, -65, -111, -22, -26, -111, -111,
835
- -111, -80, -85, -111, -92, -93, -94, -84, -111, -91,
836
- -62, -19, -30, -106, -108, -109, -33, -36, -111, -89,
837
- -107, -86, -111, -111, -111, -95, -87, -90 ]
820
+ -2, -113, -8, -113, -113, -3, -4, -113, 179, -113,
821
+ -9, -10, -113, -113, -113, -113, -113, -113, -113, -22,
822
+ -113, -26, -113, -113, -113, -113, -113, -113, -113, -113,
823
+ -113, -113, -7, -98, -73, -75, -113, -95, -97, -11,
824
+ -102, -71, -72, -101, -13, -62, -14, -15, -113, -19,
825
+ -23, -27, -30, -33, -36, -42, -113, -45, -48, -37,
826
+ -52, -113, -55, -57, -58, -110, -38, -65, -113, -68,
827
+ -70, -39, -40, -41, -5, -1, -74, -99, -76, -113,
828
+ -113, -12, -103, -104, -105, -59, -113, -16, -113, -113,
829
+ -113, -113, -113, -113, -46, -43, -50, -49, -113, -56,
830
+ -53, -113, -69, -66, -113, -113, -81, -113, -113, -63,
831
+ -113, -20, -24, -28, -31, -34, -44, -47, -51, -54,
832
+ -67, -6, -100, -77, -78, -82, -96, -60, -113, -17,
833
+ -113, -113, -113, -113, -113, -81, -80, -71, -95, -86,
834
+ -113, -113, -64, -113, -21, -25, -113, -113, -113, -79,
835
+ -111, -113, -90, -91, -92, -83, -113, -89, -61, -18,
836
+ -29, -106, -108, -109, -32, -35, -84, -112, -113, -93,
837
+ -87, -107, -111, -113, -113, -85, -94, -95, -88 ]
838
838
 
839
839
  racc_goto_table = [
840
- 64, 81, 57, 44, 62, 96, 105, 35, 104, 126,
841
- 170, 46, 48, 49, 170, 170, 60, 1, 72, 72,
842
- 72, 72, 68, 73, 74, 75, 162, 166, 167, 2,
843
- 4, 34, 78, 77, 97, 101, 64, 5, 151, 122,
844
- 102, 32, 106, 10, 104, 96, 11, 60, 60, 41,
845
- 83, 112, 145, 90, 132, 91, 133, 92, 134, 72,
846
- 72, 104, 93, 135, 94, 136, 96, 56, 61, 98,
847
- 119, 118, 110, 64, 143, 101, 88, 121, 130, 125,
848
- 152, 158, 173, 107, nil, 60, nil, 60, nil, nil,
849
- nil, nil, nil, 72, 101, 72, nil, nil, nil, 140,
850
- nil, nil, nil, 157, nil, nil, nil, nil, 60, nil,
851
- nil, nil, 72, nil, nil, 159, nil, nil, nil, nil,
852
- nil, nil, nil, nil, 140, nil, 168, nil, nil, nil,
853
- nil, nil, nil, nil, nil, nil, nil, nil, 177, nil,
854
- nil, nil, nil, nil, nil, 174 ]
840
+ 62, 79, 43, 60, 103, 55, 94, 102, 34, 166,
841
+ 124, 44, 46, 47, 58, 1, 70, 70, 70, 70,
842
+ 171, 160, 164, 165, 171, 171, 66, 71, 72, 73,
843
+ 2, 175, 76, 4, 99, 62, 95, 120, 100, 149,
844
+ 33, 75, 5, 102, 58, 58, 94, 31, 104, 10,
845
+ 11, 40, 81, 110, 143, 88, 70, 70, 130, 89,
846
+ 102, 131, 90, 132, 91, 133, 92, 94, 134, 54,
847
+ 59, 96, 62, 116, 99, 119, 117, 108, 141, 86,
848
+ 128, 123, 58, 150, 58, 168, 156, 174, 105, nil,
849
+ 70, nil, 70, 99, nil, nil, nil, nil, 138, nil,
850
+ nil, nil, 155, nil, nil, 58, nil, nil, nil, 70,
851
+ nil, nil, nil, nil, 157, nil, nil, nil, nil, nil,
852
+ nil, nil, nil, 138, nil, 169, nil, nil, nil, nil,
853
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
854
+ nil, 178, nil, nil, nil, nil, nil, 176 ]
855
855
 
856
856
  racc_goto_check = [
857
- 37, 48, 31, 33, 36, 32, 43, 45, 44, 50,
858
- 55, 13, 13, 13, 55, 55, 33, 1, 33, 33,
859
- 33, 33, 30, 30, 30, 30, 19, 19, 19, 2,
860
- 3, 4, 45, 5, 31, 37, 37, 6, 50, 43,
861
- 36, 7, 8, 9, 44, 32, 10, 33, 33, 11,
862
- 12, 14, 15, 16, 17, 20, 21, 22, 23, 33,
863
- 33, 44, 24, 25, 26, 27, 32, 28, 29, 34,
864
- 35, 31, 39, 37, 40, 37, 41, 36, 42, 49,
865
- 51, 52, 53, 54, nil, 33, nil, 33, nil, nil,
866
- nil, nil, nil, 33, 37, 33, nil, nil, nil, 37,
867
- nil, nil, nil, 48, nil, nil, nil, nil, 33, nil,
868
- nil, nil, 33, nil, nil, 37, nil, nil, nil, nil,
869
- nil, nil, nil, nil, 37, nil, 37, nil, nil, nil,
870
- nil, nil, nil, nil, nil, nil, nil, nil, 48, nil,
871
- nil, nil, nil, nil, nil, 37 ]
857
+ 37, 48, 33, 36, 43, 31, 32, 44, 45, 52,
858
+ 50, 13, 13, 13, 33, 1, 33, 33, 33, 33,
859
+ 57, 19, 19, 19, 57, 57, 30, 30, 30, 30,
860
+ 2, 52, 45, 3, 37, 37, 31, 43, 36, 50,
861
+ 4, 5, 6, 44, 33, 33, 32, 7, 8, 9,
862
+ 10, 11, 12, 14, 15, 16, 33, 33, 17, 20,
863
+ 44, 21, 22, 23, 24, 25, 26, 32, 27, 28,
864
+ 29, 34, 37, 31, 37, 36, 35, 39, 40, 41,
865
+ 42, 49, 33, 51, 33, 53, 54, 55, 56, nil,
866
+ 33, nil, 33, 37, nil, nil, nil, nil, 37, nil,
867
+ nil, nil, 48, nil, nil, 33, nil, nil, nil, 33,
868
+ nil, nil, nil, nil, 37, nil, nil, nil, nil, nil,
869
+ nil, nil, nil, 37, nil, 37, nil, nil, nil, nil,
870
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
871
+ nil, 48, nil, nil, nil, nil, nil, 37 ]
872
872
 
873
873
  racc_goto_pointer = [
874
- nil, 17, 29, 28, 22, -1, 35, 35, -34, 39,
875
- 42, 36, 9, -4, -38, -79, 2, -59, nil, -122,
876
- 3, -58, 4, -57, 8, -53, 9, -52, 41, 41,
877
- -6, -24, -52, -10, 9, -28, -23, -27, nil, -15,
878
- -55, 29, -33, -64, -61, -2, nil, nil, -37, -29,
879
- -99, -59, -60, -87, 4, -152 ]
874
+ nil, 15, 30, 31, 31, 8, 40, 41, -26, 45,
875
+ 46, 38, 12, -3, -34, -75, 6, -53, nil, -125,
876
+ 9, -51, 11, -50, 12, -49, 13, -47, 44, 44,
877
+ -1, -20, -49, -11, 13, -20, -23, -26, nil, -8,
878
+ -49, 34, -29, -64, -60, -1, nil, nil, -36, -25,
879
+ -96, -54, -141, -66, -53, -83, 11, -140 ]
880
880
 
881
881
  racc_goto_default = [
882
882
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
883
- 37, nil, nil, nil, nil, nil, nil, nil, 22, nil,
883
+ 36, nil, nil, nil, nil, nil, nil, nil, 21, nil,
884
884
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
885
- nil, nil, 59, 65, nil, nil, nil, 164, 66, nil,
886
- nil, nil, nil, 69, 71, nil, 36, 38, nil, nil,
887
- nil, nil, nil, nil, nil, 163 ]
885
+ nil, nil, 57, 63, nil, nil, nil, 162, 64, nil,
886
+ nil, nil, nil, 67, 69, nil, 35, 37, nil, nil,
887
+ nil, nil, nil, nil, nil, nil, nil, 161 ]
888
888
 
889
889
  racc_reduce_table = [
890
890
  0, 0, :racc_error,
@@ -901,92 +901,92 @@ racc_reduce_table = [
901
901
  2, 55, :_reduce_11,
902
902
  3, 55, :_reduce_none,
903
903
  2, 55, :_reduce_none,
904
- 2, 55, :_reduce_none,
904
+ 2, 55, :_reduce_14,
905
905
  2, 55, :_reduce_15,
906
- 2, 55, :_reduce_16,
907
- 0, 60, :_reduce_17,
908
- 0, 61, :_reduce_18,
909
- 7, 55, :_reduce_19,
910
- 0, 62, :_reduce_20,
911
- 0, 63, :_reduce_21,
912
- 6, 55, :_reduce_22,
906
+ 0, 60, :_reduce_16,
907
+ 0, 61, :_reduce_17,
908
+ 7, 55, :_reduce_18,
909
+ 0, 62, :_reduce_19,
910
+ 0, 63, :_reduce_20,
911
+ 6, 55, :_reduce_21,
913
912
  1, 55, :_reduce_none,
914
- 0, 66, :_reduce_24,
915
- 0, 67, :_reduce_25,
916
- 6, 56, :_reduce_26,
913
+ 0, 66, :_reduce_23,
914
+ 0, 67, :_reduce_24,
915
+ 6, 56, :_reduce_25,
917
916
  1, 56, :_reduce_none,
918
- 0, 68, :_reduce_28,
919
- 0, 69, :_reduce_29,
917
+ 0, 68, :_reduce_27,
918
+ 0, 69, :_reduce_28,
920
919
  7, 56, :_reduce_none,
921
- 0, 70, :_reduce_31,
922
- 0, 71, :_reduce_32,
923
- 7, 56, :_reduce_33,
924
- 0, 72, :_reduce_34,
925
- 0, 73, :_reduce_35,
926
- 7, 56, :_reduce_36,
920
+ 0, 70, :_reduce_30,
921
+ 0, 71, :_reduce_31,
922
+ 7, 56, :_reduce_32,
923
+ 0, 72, :_reduce_33,
924
+ 0, 73, :_reduce_34,
925
+ 7, 56, :_reduce_35,
927
926
  2, 64, :_reduce_none,
927
+ 2, 64, :_reduce_37,
928
928
  2, 64, :_reduce_38,
929
929
  2, 64, :_reduce_39,
930
930
  2, 64, :_reduce_40,
931
931
  2, 64, :_reduce_41,
932
- 2, 64, :_reduce_42,
933
- 1, 74, :_reduce_43,
934
- 2, 74, :_reduce_44,
935
- 3, 74, :_reduce_45,
936
- 1, 77, :_reduce_46,
937
- 2, 77, :_reduce_47,
938
- 3, 78, :_reduce_48,
932
+ 1, 74, :_reduce_42,
933
+ 2, 74, :_reduce_43,
934
+ 3, 74, :_reduce_44,
935
+ 1, 77, :_reduce_45,
936
+ 2, 77, :_reduce_46,
937
+ 3, 78, :_reduce_47,
939
938
  0, 80, :_reduce_none,
940
939
  1, 80, :_reduce_none,
941
940
  0, 81, :_reduce_none,
942
941
  1, 81, :_reduce_none,
943
- 1, 75, :_reduce_53,
944
- 2, 75, :_reduce_54,
945
- 3, 75, :_reduce_55,
946
- 1, 82, :_reduce_56,
947
- 2, 82, :_reduce_57,
942
+ 1, 75, :_reduce_52,
943
+ 2, 75, :_reduce_53,
944
+ 3, 75, :_reduce_54,
945
+ 1, 82, :_reduce_55,
946
+ 2, 82, :_reduce_56,
948
947
  1, 83, :_reduce_none,
949
948
  1, 83, :_reduce_none,
950
- 0, 85, :_reduce_60,
951
- 0, 86, :_reduce_61,
952
- 6, 59, :_reduce_62,
953
- 0, 87, :_reduce_63,
954
- 0, 88, :_reduce_64,
955
- 5, 59, :_reduce_65,
956
- 1, 76, :_reduce_66,
957
- 2, 76, :_reduce_67,
958
- 3, 76, :_reduce_68,
959
- 1, 89, :_reduce_69,
960
- 2, 89, :_reduce_70,
949
+ 0, 85, :_reduce_59,
950
+ 0, 86, :_reduce_60,
951
+ 6, 59, :_reduce_61,
952
+ 0, 87, :_reduce_62,
953
+ 0, 88, :_reduce_63,
954
+ 5, 59, :_reduce_64,
955
+ 1, 76, :_reduce_65,
956
+ 2, 76, :_reduce_66,
957
+ 3, 76, :_reduce_67,
958
+ 1, 89, :_reduce_68,
959
+ 2, 89, :_reduce_69,
961
960
  1, 90, :_reduce_none,
961
+ 1, 79, :_reduce_71,
962
962
  1, 79, :_reduce_72,
963
- 1, 79, :_reduce_73,
964
963
  1, 50, :_reduce_none,
965
964
  2, 50, :_reduce_none,
966
965
  1, 91, :_reduce_none,
967
966
  2, 91, :_reduce_none,
968
- 4, 92, :_reduce_78,
969
- 1, 95, :_reduce_79,
970
- 3, 95, :_reduce_80,
967
+ 4, 92, :_reduce_77,
968
+ 1, 95, :_reduce_78,
969
+ 3, 95, :_reduce_79,
971
970
  2, 95, :_reduce_none,
972
- 0, 96, :_reduce_82,
973
- 1, 96, :_reduce_83,
974
- 3, 96, :_reduce_84,
975
- 3, 96, :_reduce_85,
976
- 5, 96, :_reduce_86,
977
- 7, 96, :_reduce_87,
978
- 0, 98, :_reduce_88,
979
- 0, 99, :_reduce_89,
980
- 7, 96, :_reduce_90,
981
- 3, 96, :_reduce_91,
971
+ 0, 96, :_reduce_81,
972
+ 1, 96, :_reduce_82,
973
+ 3, 96, :_reduce_83,
974
+ 4, 96, :_reduce_84,
975
+ 6, 96, :_reduce_85,
976
+ 0, 100, :_reduce_86,
977
+ 0, 101, :_reduce_87,
978
+ 7, 96, :_reduce_88,
979
+ 3, 96, :_reduce_89,
982
980
  1, 97, :_reduce_none,
983
981
  1, 97, :_reduce_none,
984
982
  1, 97, :_reduce_none,
983
+ 1, 99, :_reduce_93,
984
+ 3, 99, :_reduce_94,
985
985
  0, 94, :_reduce_none,
986
986
  3, 94, :_reduce_96,
987
987
  1, 93, :_reduce_none,
988
988
  0, 51, :_reduce_none,
989
- 0, 100, :_reduce_99,
989
+ 0, 102, :_reduce_99,
990
990
  3, 51, :_reduce_100,
991
991
  1, 57, :_reduce_none,
992
992
  0, 58, :_reduce_none,
@@ -995,13 +995,15 @@ racc_reduce_table = [
995
995
  1, 58, :_reduce_none,
996
996
  1, 65, :_reduce_106,
997
997
  2, 65, :_reduce_107,
998
- 1, 101, :_reduce_none,
999
- 1, 101, :_reduce_none,
1000
- 1, 84, :_reduce_110 ]
998
+ 1, 103, :_reduce_none,
999
+ 1, 103, :_reduce_none,
1000
+ 1, 84, :_reduce_110,
1001
+ 0, 98, :_reduce_none,
1002
+ 1, 98, :_reduce_none ]
1001
1003
 
1002
- racc_reduce_n = 111
1004
+ racc_reduce_n = 113
1003
1005
 
1004
- racc_shift_n = 178
1006
+ racc_shift_n = 179
1005
1007
 
1006
1008
  racc_token_table = {
1007
1009
  false => 0,
@@ -1042,11 +1044,11 @@ racc_token_table = {
1042
1044
  "%empty" => 35,
1043
1045
  "(" => 36,
1044
1046
  ")" => 37,
1045
- "," => 38,
1046
- "%prec" => 39,
1047
- "?" => 40,
1048
- "+" => 41,
1049
- "*" => 42,
1047
+ "%prec" => 38,
1048
+ "?" => 39,
1049
+ "+" => 40,
1050
+ "*" => 41,
1051
+ "," => 42,
1050
1052
  "[" => 43,
1051
1053
  "]" => 44,
1052
1054
  "{...}" => 45 }
@@ -1111,11 +1113,11 @@ Racc_token_to_s_table = [
1111
1113
  "\"%empty\"",
1112
1114
  "\"(\"",
1113
1115
  "\")\"",
1114
- "\",\"",
1115
1116
  "\"%prec\"",
1116
1117
  "\"?\"",
1117
1118
  "\"+\"",
1118
1119
  "\"*\"",
1120
+ "\",\"",
1119
1121
  "\"[\"",
1120
1122
  "\"]\"",
1121
1123
  "\"{...}\"",
@@ -1171,6 +1173,8 @@ Racc_token_to_s_table = [
1171
1173
  "rhs_list",
1172
1174
  "rhs",
1173
1175
  "parameterizing_suffix",
1176
+ "tag_opt",
1177
+ "parameterizing_args",
1174
1178
  "@19",
1175
1179
  "@20",
1176
1180
  "@21",
@@ -1238,10 +1242,8 @@ module_eval(<<'.,.,', 'parser.y', 31)
1238
1242
 
1239
1243
  # reduce 13 omitted
1240
1244
 
1241
- # reduce 14 omitted
1242
-
1243
- module_eval(<<'.,.,', 'parser.y', 37)
1244
- def _reduce_15(val, _values, result)
1245
+ module_eval(<<'.,.,', 'parser.y', 36)
1246
+ def _reduce_14(val, _values, result)
1245
1247
  val[1].each {|token|
1246
1248
  @grammar.lex_param = Grammar::Code::NoReferenceCode.new(type: :lex_param, token_code: token).token_code.s_value
1247
1249
  }
@@ -1250,8 +1252,8 @@ module_eval(<<'.,.,', 'parser.y', 37)
1250
1252
  end
1251
1253
  .,.,
1252
1254
 
1253
- module_eval(<<'.,.,', 'parser.y', 43)
1254
- def _reduce_16(val, _values, result)
1255
+ module_eval(<<'.,.,', 'parser.y', 42)
1256
+ def _reduce_15(val, _values, result)
1255
1257
  val[1].each {|token|
1256
1258
  @grammar.parse_param = Grammar::Code::NoReferenceCode.new(type: :parse_param, token_code: token).token_code.s_value
1257
1259
  }
@@ -1260,74 +1262,74 @@ module_eval(<<'.,.,', 'parser.y', 43)
1260
1262
  end
1261
1263
  .,.,
1262
1264
 
1263
- module_eval(<<'.,.,', 'parser.y', 49)
1264
- def _reduce_17(val, _values, result)
1265
+ module_eval(<<'.,.,', 'parser.y', 48)
1266
+ def _reduce_16(val, _values, result)
1265
1267
  begin_c_declaration("}")
1266
1268
 
1267
1269
  result
1268
1270
  end
1269
1271
  .,.,
1270
1272
 
1271
- module_eval(<<'.,.,', 'parser.y', 53)
1272
- def _reduce_18(val, _values, result)
1273
+ module_eval(<<'.,.,', 'parser.y', 52)
1274
+ def _reduce_17(val, _values, result)
1273
1275
  end_c_declaration
1274
1276
 
1275
1277
  result
1276
1278
  end
1277
1279
  .,.,
1278
1280
 
1279
- module_eval(<<'.,.,', 'parser.y', 57)
1280
- def _reduce_19(val, _values, result)
1281
+ module_eval(<<'.,.,', 'parser.y', 56)
1282
+ def _reduce_18(val, _values, result)
1281
1283
  @grammar.add_percent_code(id: val[1], code: val[4])
1282
1284
 
1283
1285
  result
1284
1286
  end
1285
1287
  .,.,
1286
1288
 
1287
- module_eval(<<'.,.,', 'parser.y', 61)
1288
- def _reduce_20(val, _values, result)
1289
+ module_eval(<<'.,.,', 'parser.y', 60)
1290
+ def _reduce_19(val, _values, result)
1289
1291
  begin_c_declaration("}")
1290
1292
 
1291
1293
  result
1292
1294
  end
1293
1295
  .,.,
1294
1296
 
1295
- module_eval(<<'.,.,', 'parser.y', 65)
1296
- def _reduce_21(val, _values, result)
1297
+ module_eval(<<'.,.,', 'parser.y', 64)
1298
+ def _reduce_20(val, _values, result)
1297
1299
  end_c_declaration
1298
1300
 
1299
1301
  result
1300
1302
  end
1301
1303
  .,.,
1302
1304
 
1303
- module_eval(<<'.,.,', 'parser.y', 69)
1304
- def _reduce_22(val, _values, result)
1305
+ module_eval(<<'.,.,', 'parser.y', 68)
1306
+ def _reduce_21(val, _values, result)
1305
1307
  @grammar.initial_action = Grammar::Code::InitialActionCode.new(type: :initial_action, token_code: val[3])
1306
1308
 
1307
1309
  result
1308
1310
  end
1309
1311
  .,.,
1310
1312
 
1311
- # reduce 23 omitted
1313
+ # reduce 22 omitted
1312
1314
 
1313
- module_eval(<<'.,.,', 'parser.y', 75)
1314
- def _reduce_24(val, _values, result)
1315
+ module_eval(<<'.,.,', 'parser.y', 74)
1316
+ def _reduce_23(val, _values, result)
1315
1317
  begin_c_declaration("}")
1316
1318
 
1317
1319
  result
1318
1320
  end
1319
1321
  .,.,
1320
1322
 
1321
- module_eval(<<'.,.,', 'parser.y', 79)
1322
- def _reduce_25(val, _values, result)
1323
+ module_eval(<<'.,.,', 'parser.y', 78)
1324
+ def _reduce_24(val, _values, result)
1323
1325
  end_c_declaration
1324
1326
 
1325
1327
  result
1326
1328
  end
1327
1329
  .,.,
1328
1330
 
1329
- module_eval(<<'.,.,', 'parser.y', 83)
1330
- def _reduce_26(val, _values, result)
1331
+ module_eval(<<'.,.,', 'parser.y', 82)
1332
+ def _reduce_25(val, _values, result)
1331
1333
  @grammar.set_union(
1332
1334
  Grammar::Code::NoReferenceCode.new(type: :union, token_code: val[3]),
1333
1335
  val[3].line
@@ -1337,44 +1339,44 @@ module_eval(<<'.,.,', 'parser.y', 83)
1337
1339
  end
1338
1340
  .,.,
1339
1341
 
1340
- # reduce 27 omitted
1342
+ # reduce 26 omitted
1341
1343
 
1342
- module_eval(<<'.,.,', 'parser.y', 91)
1343
- def _reduce_28(val, _values, result)
1344
+ module_eval(<<'.,.,', 'parser.y', 90)
1345
+ def _reduce_27(val, _values, result)
1344
1346
  begin_c_declaration("}")
1345
1347
 
1346
1348
  result
1347
1349
  end
1348
1350
  .,.,
1349
1351
 
1350
- module_eval(<<'.,.,', 'parser.y', 95)
1351
- def _reduce_29(val, _values, result)
1352
+ module_eval(<<'.,.,', 'parser.y', 94)
1353
+ def _reduce_28(val, _values, result)
1352
1354
  end_c_declaration
1353
1355
 
1354
1356
  result
1355
1357
  end
1356
1358
  .,.,
1357
1359
 
1358
- # reduce 30 omitted
1360
+ # reduce 29 omitted
1359
1361
 
1360
- module_eval(<<'.,.,', 'parser.y', 100)
1361
- def _reduce_31(val, _values, result)
1362
+ module_eval(<<'.,.,', 'parser.y', 99)
1363
+ def _reduce_30(val, _values, result)
1362
1364
  begin_c_declaration("}")
1363
1365
 
1364
1366
  result
1365
1367
  end
1366
1368
  .,.,
1367
1369
 
1368
- module_eval(<<'.,.,', 'parser.y', 104)
1369
- def _reduce_32(val, _values, result)
1370
+ module_eval(<<'.,.,', 'parser.y', 103)
1371
+ def _reduce_31(val, _values, result)
1370
1372
  end_c_declaration
1371
1373
 
1372
1374
  result
1373
1375
  end
1374
1376
  .,.,
1375
1377
 
1376
- module_eval(<<'.,.,', 'parser.y', 108)
1377
- def _reduce_33(val, _values, result)
1378
+ module_eval(<<'.,.,', 'parser.y', 107)
1379
+ def _reduce_32(val, _values, result)
1378
1380
  @grammar.add_printer(
1379
1381
  ident_or_tags: val[6],
1380
1382
  token_code: val[3],
@@ -1385,24 +1387,24 @@ module_eval(<<'.,.,', 'parser.y', 108)
1385
1387
  end
1386
1388
  .,.,
1387
1389
 
1388
- module_eval(<<'.,.,', 'parser.y', 116)
1389
- def _reduce_34(val, _values, result)
1390
+ module_eval(<<'.,.,', 'parser.y', 115)
1391
+ def _reduce_33(val, _values, result)
1390
1392
  begin_c_declaration("}")
1391
1393
 
1392
1394
  result
1393
1395
  end
1394
1396
  .,.,
1395
1397
 
1396
- module_eval(<<'.,.,', 'parser.y', 120)
1397
- def _reduce_35(val, _values, result)
1398
+ module_eval(<<'.,.,', 'parser.y', 119)
1399
+ def _reduce_34(val, _values, result)
1398
1400
  end_c_declaration
1399
1401
 
1400
1402
  result
1401
1403
  end
1402
1404
  .,.,
1403
1405
 
1404
- module_eval(<<'.,.,', 'parser.y', 124)
1405
- def _reduce_36(val, _values, result)
1406
+ module_eval(<<'.,.,', 'parser.y', 123)
1407
+ def _reduce_35(val, _values, result)
1406
1408
  @grammar.add_error_token(
1407
1409
  ident_or_tags: val[6],
1408
1410
  token_code: val[3],
@@ -1413,10 +1415,10 @@ module_eval(<<'.,.,', 'parser.y', 124)
1413
1415
  end
1414
1416
  .,.,
1415
1417
 
1416
- # reduce 37 omitted
1418
+ # reduce 36 omitted
1417
1419
 
1418
- module_eval(<<'.,.,', 'parser.y', 134)
1419
- def _reduce_38(val, _values, result)
1420
+ module_eval(<<'.,.,', 'parser.y', 133)
1421
+ def _reduce_37(val, _values, result)
1420
1422
  val[1].each {|hash|
1421
1423
  hash[:tokens].each {|id|
1422
1424
  @grammar.add_type(id: id, tag: hash[:tag])
@@ -1427,8 +1429,8 @@ module_eval(<<'.,.,', 'parser.y', 134)
1427
1429
  end
1428
1430
  .,.,
1429
1431
 
1430
- module_eval(<<'.,.,', 'parser.y', 142)
1431
- def _reduce_39(val, _values, result)
1432
+ module_eval(<<'.,.,', 'parser.y', 141)
1433
+ def _reduce_38(val, _values, result)
1432
1434
  val[1].each {|hash|
1433
1435
  hash[:tokens].each {|id|
1434
1436
  sym = @grammar.add_term(id: id)
@@ -1441,8 +1443,8 @@ module_eval(<<'.,.,', 'parser.y', 142)
1441
1443
  end
1442
1444
  .,.,
1443
1445
 
1444
- module_eval(<<'.,.,', 'parser.y', 152)
1445
- def _reduce_40(val, _values, result)
1446
+ module_eval(<<'.,.,', 'parser.y', 151)
1447
+ def _reduce_39(val, _values, result)
1446
1448
  val[1].each {|hash|
1447
1449
  hash[:tokens].each {|id|
1448
1450
  sym = @grammar.add_term(id: id)
@@ -1455,8 +1457,8 @@ module_eval(<<'.,.,', 'parser.y', 152)
1455
1457
  end
1456
1458
  .,.,
1457
1459
 
1458
- module_eval(<<'.,.,', 'parser.y', 162)
1459
- def _reduce_41(val, _values, result)
1460
+ module_eval(<<'.,.,', 'parser.y', 161)
1461
+ def _reduce_40(val, _values, result)
1460
1462
  val[1].each {|hash|
1461
1463
  hash[:tokens].each {|id|
1462
1464
  sym = @grammar.add_term(id: id)
@@ -1469,8 +1471,8 @@ module_eval(<<'.,.,', 'parser.y', 162)
1469
1471
  end
1470
1472
  .,.,
1471
1473
 
1472
- module_eval(<<'.,.,', 'parser.y', 172)
1473
- def _reduce_42(val, _values, result)
1474
+ module_eval(<<'.,.,', 'parser.y', 171)
1475
+ def _reduce_41(val, _values, result)
1474
1476
  val[1].each {|hash|
1475
1477
  hash[:tokens].each {|id|
1476
1478
  sym = @grammar.add_term(id: id)
@@ -1483,8 +1485,8 @@ module_eval(<<'.,.,', 'parser.y', 172)
1483
1485
  end
1484
1486
  .,.,
1485
1487
 
1486
- module_eval(<<'.,.,', 'parser.y', 183)
1487
- def _reduce_43(val, _values, result)
1488
+ module_eval(<<'.,.,', 'parser.y', 182)
1489
+ def _reduce_42(val, _values, result)
1488
1490
  val[0].each {|token_declaration|
1489
1491
  @grammar.add_term(id: token_declaration[0], alias_name: token_declaration[2], token_id: token_declaration[1], tag: nil, replace: true)
1490
1492
  }
@@ -1493,8 +1495,8 @@ module_eval(<<'.,.,', 'parser.y', 183)
1493
1495
  end
1494
1496
  .,.,
1495
1497
 
1496
- module_eval(<<'.,.,', 'parser.y', 189)
1497
- def _reduce_44(val, _values, result)
1498
+ module_eval(<<'.,.,', 'parser.y', 188)
1499
+ def _reduce_43(val, _values, result)
1498
1500
  val[1].each {|token_declaration|
1499
1501
  @grammar.add_term(id: token_declaration[0], alias_name: token_declaration[2], token_id: token_declaration[1], tag: val[0], replace: true)
1500
1502
  }
@@ -1503,8 +1505,8 @@ module_eval(<<'.,.,', 'parser.y', 189)
1503
1505
  end
1504
1506
  .,.,
1505
1507
 
1506
- module_eval(<<'.,.,', 'parser.y', 195)
1507
- def _reduce_45(val, _values, result)
1508
+ module_eval(<<'.,.,', 'parser.y', 194)
1509
+ def _reduce_44(val, _values, result)
1508
1510
  val[2].each {|token_declaration|
1509
1511
  @grammar.add_term(id: token_declaration[0], alias_name: token_declaration[2], token_id: token_declaration[1], tag: val[1], replace: true)
1510
1512
  }
@@ -1513,189 +1515,189 @@ module_eval(<<'.,.,', 'parser.y', 195)
1513
1515
  end
1514
1516
  .,.,
1515
1517
 
1516
- module_eval(<<'.,.,', 'parser.y', 200)
1517
- def _reduce_46(val, _values, result)
1518
+ module_eval(<<'.,.,', 'parser.y', 199)
1519
+ def _reduce_45(val, _values, result)
1518
1520
  result = [val[0]]
1519
1521
  result
1520
1522
  end
1521
1523
  .,.,
1522
1524
 
1523
- module_eval(<<'.,.,', 'parser.y', 201)
1524
- def _reduce_47(val, _values, result)
1525
+ module_eval(<<'.,.,', 'parser.y', 200)
1526
+ def _reduce_46(val, _values, result)
1525
1527
  result = val[0].append(val[1])
1526
1528
  result
1527
1529
  end
1528
1530
  .,.,
1529
1531
 
1530
- module_eval(<<'.,.,', 'parser.y', 203)
1531
- def _reduce_48(val, _values, result)
1532
+ module_eval(<<'.,.,', 'parser.y', 202)
1533
+ def _reduce_47(val, _values, result)
1532
1534
  result = val
1533
1535
  result
1534
1536
  end
1535
1537
  .,.,
1536
1538
 
1539
+ # reduce 48 omitted
1540
+
1537
1541
  # reduce 49 omitted
1538
1542
 
1539
1543
  # reduce 50 omitted
1540
1544
 
1541
1545
  # reduce 51 omitted
1542
1546
 
1543
- # reduce 52 omitted
1544
-
1545
- module_eval(<<'.,.,', 'parser.y', 213)
1546
- def _reduce_53(val, _values, result)
1547
+ module_eval(<<'.,.,', 'parser.y', 212)
1548
+ def _reduce_52(val, _values, result)
1547
1549
  result = [{tag: nil, tokens: val[0]}]
1548
1550
 
1549
1551
  result
1550
1552
  end
1551
1553
  .,.,
1552
1554
 
1553
- module_eval(<<'.,.,', 'parser.y', 217)
1554
- def _reduce_54(val, _values, result)
1555
+ module_eval(<<'.,.,', 'parser.y', 216)
1556
+ def _reduce_53(val, _values, result)
1555
1557
  result = [{tag: val[0], tokens: val[1]}]
1556
1558
 
1557
1559
  result
1558
1560
  end
1559
1561
  .,.,
1560
1562
 
1561
- module_eval(<<'.,.,', 'parser.y', 221)
1562
- def _reduce_55(val, _values, result)
1563
+ module_eval(<<'.,.,', 'parser.y', 220)
1564
+ def _reduce_54(val, _values, result)
1563
1565
  result = val[0].append({tag: val[1], tokens: val[2]})
1564
1566
 
1565
1567
  result
1566
1568
  end
1567
1569
  .,.,
1568
1570
 
1569
- module_eval(<<'.,.,', 'parser.y', 224)
1570
- def _reduce_56(val, _values, result)
1571
+ module_eval(<<'.,.,', 'parser.y', 223)
1572
+ def _reduce_55(val, _values, result)
1571
1573
  result = [val[0]]
1572
1574
  result
1573
1575
  end
1574
1576
  .,.,
1575
1577
 
1576
- module_eval(<<'.,.,', 'parser.y', 225)
1577
- def _reduce_57(val, _values, result)
1578
+ module_eval(<<'.,.,', 'parser.y', 224)
1579
+ def _reduce_56(val, _values, result)
1578
1580
  result = val[0].append(val[1])
1579
1581
  result
1580
1582
  end
1581
1583
  .,.,
1582
1584
 
1583
- # reduce 58 omitted
1585
+ # reduce 57 omitted
1584
1586
 
1585
- # reduce 59 omitted
1587
+ # reduce 58 omitted
1586
1588
 
1587
- module_eval(<<'.,.,', 'parser.y', 232)
1588
- def _reduce_60(val, _values, result)
1589
+ module_eval(<<'.,.,', 'parser.y', 231)
1590
+ def _reduce_59(val, _values, result)
1589
1591
  begin_c_declaration("}")
1590
1592
 
1591
1593
  result
1592
1594
  end
1593
1595
  .,.,
1594
1596
 
1595
- module_eval(<<'.,.,', 'parser.y', 236)
1596
- def _reduce_61(val, _values, result)
1597
+ module_eval(<<'.,.,', 'parser.y', 235)
1598
+ def _reduce_60(val, _values, result)
1597
1599
  end_c_declaration
1598
1600
 
1599
1601
  result
1600
1602
  end
1601
1603
  .,.,
1602
1604
 
1603
- module_eval(<<'.,.,', 'parser.y', 240)
1604
- def _reduce_62(val, _values, result)
1605
+ module_eval(<<'.,.,', 'parser.y', 239)
1606
+ def _reduce_61(val, _values, result)
1605
1607
  result = val[0].append(val[3])
1606
1608
 
1607
1609
  result
1608
1610
  end
1609
1611
  .,.,
1610
1612
 
1611
- module_eval(<<'.,.,', 'parser.y', 244)
1612
- def _reduce_63(val, _values, result)
1613
+ module_eval(<<'.,.,', 'parser.y', 243)
1614
+ def _reduce_62(val, _values, result)
1613
1615
  begin_c_declaration("}")
1614
1616
 
1615
1617
  result
1616
1618
  end
1617
1619
  .,.,
1618
1620
 
1619
- module_eval(<<'.,.,', 'parser.y', 248)
1620
- def _reduce_64(val, _values, result)
1621
+ module_eval(<<'.,.,', 'parser.y', 247)
1622
+ def _reduce_63(val, _values, result)
1621
1623
  end_c_declaration
1622
1624
 
1623
1625
  result
1624
1626
  end
1625
1627
  .,.,
1626
1628
 
1627
- module_eval(<<'.,.,', 'parser.y', 252)
1628
- def _reduce_65(val, _values, result)
1629
+ module_eval(<<'.,.,', 'parser.y', 251)
1630
+ def _reduce_64(val, _values, result)
1629
1631
  result = [val[2]]
1630
1632
 
1631
1633
  result
1632
1634
  end
1633
1635
  .,.,
1634
1636
 
1635
- module_eval(<<'.,.,', 'parser.y', 257)
1636
- def _reduce_66(val, _values, result)
1637
+ module_eval(<<'.,.,', 'parser.y', 256)
1638
+ def _reduce_65(val, _values, result)
1637
1639
  result = [{tag: nil, tokens: val[0]}]
1638
1640
 
1639
1641
  result
1640
1642
  end
1641
1643
  .,.,
1642
1644
 
1643
- module_eval(<<'.,.,', 'parser.y', 261)
1644
- def _reduce_67(val, _values, result)
1645
+ module_eval(<<'.,.,', 'parser.y', 260)
1646
+ def _reduce_66(val, _values, result)
1645
1647
  result = [{tag: val[0], tokens: val[1]}]
1646
1648
 
1647
1649
  result
1648
1650
  end
1649
1651
  .,.,
1650
1652
 
1651
- module_eval(<<'.,.,', 'parser.y', 265)
1652
- def _reduce_68(val, _values, result)
1653
+ module_eval(<<'.,.,', 'parser.y', 264)
1654
+ def _reduce_67(val, _values, result)
1653
1655
  result = val[0].append({tag: val[1], tokens: val[2]})
1654
1656
 
1655
1657
  result
1656
1658
  end
1657
1659
  .,.,
1658
1660
 
1659
- module_eval(<<'.,.,', 'parser.y', 268)
1660
- def _reduce_69(val, _values, result)
1661
+ module_eval(<<'.,.,', 'parser.y', 267)
1662
+ def _reduce_68(val, _values, result)
1661
1663
  result = [val[0]]
1662
1664
  result
1663
1665
  end
1664
1666
  .,.,
1665
1667
 
1666
- module_eval(<<'.,.,', 'parser.y', 269)
1667
- def _reduce_70(val, _values, result)
1668
+ module_eval(<<'.,.,', 'parser.y', 268)
1669
+ def _reduce_69(val, _values, result)
1668
1670
  result = val[0].append(val[1])
1669
1671
  result
1670
1672
  end
1671
1673
  .,.,
1672
1674
 
1673
- # reduce 71 omitted
1675
+ # reduce 70 omitted
1674
1676
 
1675
- module_eval(<<'.,.,', 'parser.y', 273)
1676
- def _reduce_72(val, _values, result)
1677
+ module_eval(<<'.,.,', 'parser.y', 272)
1678
+ def _reduce_71(val, _values, result)
1677
1679
  on_action_error("ident after %prec", val[0]) if @prec_seen
1678
1680
  result
1679
1681
  end
1680
1682
  .,.,
1681
1683
 
1682
- module_eval(<<'.,.,', 'parser.y', 274)
1683
- def _reduce_73(val, _values, result)
1684
+ module_eval(<<'.,.,', 'parser.y', 273)
1685
+ def _reduce_72(val, _values, result)
1684
1686
  on_action_error("char after %prec", val[0]) if @prec_seen
1685
1687
  result
1686
1688
  end
1687
1689
  .,.,
1688
1690
 
1691
+ # reduce 73 omitted
1692
+
1689
1693
  # reduce 74 omitted
1690
1694
 
1691
1695
  # reduce 75 omitted
1692
1696
 
1693
1697
  # reduce 76 omitted
1694
1698
 
1695
- # reduce 77 omitted
1696
-
1697
- module_eval(<<'.,.,', 'parser.y', 284)
1698
- def _reduce_78(val, _values, result)
1699
+ module_eval(<<'.,.,', 'parser.y', 283)
1700
+ def _reduce_77(val, _values, result)
1699
1701
  lhs = val[0]
1700
1702
  lhs.alias_name = val[1]
1701
1703
  val[3].each do |builder|
@@ -1708,8 +1710,8 @@ module_eval(<<'.,.,', 'parser.y', 284)
1708
1710
  end
1709
1711
  .,.,
1710
1712
 
1711
- module_eval(<<'.,.,', 'parser.y', 295)
1712
- def _reduce_79(val, _values, result)
1713
+ module_eval(<<'.,.,', 'parser.y', 294)
1714
+ def _reduce_78(val, _values, result)
1713
1715
  builder = val[0]
1714
1716
  if !builder.line
1715
1717
  builder.line = @lexer.line - 1
@@ -1720,8 +1722,8 @@ module_eval(<<'.,.,', 'parser.y', 295)
1720
1722
  end
1721
1723
  .,.,
1722
1724
 
1723
- module_eval(<<'.,.,', 'parser.y', 303)
1724
- def _reduce_80(val, _values, result)
1725
+ module_eval(<<'.,.,', 'parser.y', 302)
1726
+ def _reduce_79(val, _values, result)
1725
1727
  builder = val[2]
1726
1728
  if !builder.line
1727
1729
  builder.line = @lexer.line - 1
@@ -1732,10 +1734,10 @@ module_eval(<<'.,.,', 'parser.y', 303)
1732
1734
  end
1733
1735
  .,.,
1734
1736
 
1735
- # reduce 81 omitted
1737
+ # reduce 80 omitted
1736
1738
 
1737
- module_eval(<<'.,.,', 'parser.y', 313)
1738
- def _reduce_82(val, _values, result)
1739
+ module_eval(<<'.,.,', 'parser.y', 312)
1740
+ def _reduce_81(val, _values, result)
1739
1741
  reset_precs
1740
1742
  result = Grammar::RuleBuilder.new(@rule_counter, @midrule_action_counter)
1741
1743
 
@@ -1743,8 +1745,8 @@ module_eval(<<'.,.,', 'parser.y', 313)
1743
1745
  end
1744
1746
  .,.,
1745
1747
 
1746
- module_eval(<<'.,.,', 'parser.y', 318)
1747
- def _reduce_83(val, _values, result)
1748
+ module_eval(<<'.,.,', 'parser.y', 317)
1749
+ def _reduce_82(val, _values, result)
1748
1750
  reset_precs
1749
1751
  result = Grammar::RuleBuilder.new(@rule_counter, @midrule_action_counter)
1750
1752
 
@@ -1752,8 +1754,8 @@ module_eval(<<'.,.,', 'parser.y', 318)
1752
1754
  end
1753
1755
  .,.,
1754
1756
 
1755
- module_eval(<<'.,.,', 'parser.y', 323)
1756
- def _reduce_84(val, _values, result)
1757
+ module_eval(<<'.,.,', 'parser.y', 322)
1758
+ def _reduce_83(val, _values, result)
1757
1759
  token = val[1]
1758
1760
  token.alias_name = val[2]
1759
1761
  builder = val[0]
@@ -1764,41 +1766,34 @@ module_eval(<<'.,.,', 'parser.y', 323)
1764
1766
  end
1765
1767
  .,.,
1766
1768
 
1767
- module_eval(<<'.,.,', 'parser.y', 331)
1768
- def _reduce_85(val, _values, result)
1769
+ module_eval(<<'.,.,', 'parser.y', 330)
1770
+ def _reduce_84(val, _values, result)
1769
1771
  token = Lrama::Lexer::Token::Parameterizing.new(s_value: val[2], location: @lexer.location, args: [val[1]])
1770
1772
  builder = val[0]
1771
1773
  builder.add_rhs(token)
1774
+ builder.lhs_tag = val[3]
1775
+ builder.line = val[1].first_line
1772
1776
  result = builder
1773
1777
 
1774
1778
  result
1775
1779
  end
1776
1780
  .,.,
1777
1781
 
1778
- module_eval(<<'.,.,', 'parser.y', 338)
1779
- def _reduce_86(val, _values, result)
1780
- token = Lrama::Lexer::Token::Parameterizing.new(s_value: val[1].s_value, location: @lexer.location, args: [val[3]])
1782
+ module_eval(<<'.,.,', 'parser.y', 339)
1783
+ def _reduce_85(val, _values, result)
1784
+ token = Lrama::Lexer::Token::Parameterizing.new(s_value: val[1].s_value, location: @lexer.location, args: val[3])
1781
1785
  builder = val[0]
1782
1786
  builder.add_rhs(token)
1787
+ builder.lhs_tag = val[5]
1788
+ builder.line = val[1].first_line
1783
1789
  result = builder
1784
1790
 
1785
1791
  result
1786
1792
  end
1787
1793
  .,.,
1788
1794
 
1789
- module_eval(<<'.,.,', 'parser.y', 345)
1790
- def _reduce_87(val, _values, result)
1791
- token = Lrama::Lexer::Token::Parameterizing.new(s_value: val[1].s_value, location: @lexer.location, args: [val[3], val[5]])
1792
- builder = val[0]
1793
- builder.add_rhs(token)
1794
- result = builder
1795
-
1796
- result
1797
- end
1798
- .,.,
1799
-
1800
- module_eval(<<'.,.,', 'parser.y', 352)
1801
- def _reduce_88(val, _values, result)
1795
+ module_eval(<<'.,.,', 'parser.y', 348)
1796
+ def _reduce_86(val, _values, result)
1802
1797
  if @prec_seen
1803
1798
  on_action_error("multiple User_code after %prec", val[0]) if @code_after_prec
1804
1799
  @code_after_prec = true
@@ -1809,28 +1804,28 @@ module_eval(<<'.,.,', 'parser.y', 352)
1809
1804
  end
1810
1805
  .,.,
1811
1806
 
1812
- module_eval(<<'.,.,', 'parser.y', 360)
1813
- def _reduce_89(val, _values, result)
1807
+ module_eval(<<'.,.,', 'parser.y', 356)
1808
+ def _reduce_87(val, _values, result)
1814
1809
  end_c_declaration
1815
1810
 
1816
1811
  result
1817
1812
  end
1818
1813
  .,.,
1819
1814
 
1820
- module_eval(<<'.,.,', 'parser.y', 364)
1821
- def _reduce_90(val, _values, result)
1822
- token = val[3]
1823
- token.alias_name = val[6]
1815
+ module_eval(<<'.,.,', 'parser.y', 360)
1816
+ def _reduce_88(val, _values, result)
1817
+ user_code = val[3]
1818
+ user_code.alias_name = val[6]
1824
1819
  builder = val[0]
1825
- builder.user_code = token
1820
+ builder.user_code = user_code
1826
1821
  result = builder
1827
1822
 
1828
1823
  result
1829
1824
  end
1830
1825
  .,.,
1831
1826
 
1832
- module_eval(<<'.,.,', 'parser.y', 372)
1833
- def _reduce_91(val, _values, result)
1827
+ module_eval(<<'.,.,', 'parser.y', 368)
1828
+ def _reduce_89(val, _values, result)
1834
1829
  sym = @grammar.find_symbol_by_id!(val[2])
1835
1830
  @prec_seen = true
1836
1831
  builder = val[0]
@@ -1841,15 +1836,29 @@ module_eval(<<'.,.,', 'parser.y', 372)
1841
1836
  end
1842
1837
  .,.,
1843
1838
 
1839
+ # reduce 90 omitted
1840
+
1841
+ # reduce 91 omitted
1842
+
1844
1843
  # reduce 92 omitted
1845
1844
 
1846
- # reduce 93 omitted
1845
+ module_eval(<<'.,.,', 'parser.y', 379)
1846
+ def _reduce_93(val, _values, result)
1847
+ result = [val[0]]
1848
+ result
1849
+ end
1850
+ .,.,
1847
1851
 
1848
- # reduce 94 omitted
1852
+ module_eval(<<'.,.,', 'parser.y', 380)
1853
+ def _reduce_94(val, _values, result)
1854
+ result = val[0].append(val[2])
1855
+ result
1856
+ end
1857
+ .,.,
1849
1858
 
1850
1859
  # reduce 95 omitted
1851
1860
 
1852
- module_eval(<<'.,.,', 'parser.y', 384)
1861
+ module_eval(<<'.,.,', 'parser.y', 383)
1853
1862
  def _reduce_96(val, _values, result)
1854
1863
  result = val[1].s_value
1855
1864
  result
@@ -1860,7 +1869,7 @@ module_eval(<<'.,.,', 'parser.y', 384)
1860
1869
 
1861
1870
  # reduce 98 omitted
1862
1871
 
1863
- module_eval(<<'.,.,', 'parser.y', 391)
1872
+ module_eval(<<'.,.,', 'parser.y', 390)
1864
1873
  def _reduce_99(val, _values, result)
1865
1874
  begin_c_declaration('\Z')
1866
1875
  @grammar.epilogue_first_lineno = @lexer.line + 1
@@ -1869,7 +1878,7 @@ module_eval(<<'.,.,', 'parser.y', 391)
1869
1878
  end
1870
1879
  .,.,
1871
1880
 
1872
- module_eval(<<'.,.,', 'parser.y', 396)
1881
+ module_eval(<<'.,.,', 'parser.y', 395)
1873
1882
  def _reduce_100(val, _values, result)
1874
1883
  end_c_declaration
1875
1884
  @grammar.epilogue = val[2].s_value
@@ -1888,14 +1897,14 @@ module_eval(<<'.,.,', 'parser.y', 396)
1888
1897
 
1889
1898
  # reduce 105 omitted
1890
1899
 
1891
- module_eval(<<'.,.,', 'parser.y', 407)
1900
+ module_eval(<<'.,.,', 'parser.y', 406)
1892
1901
  def _reduce_106(val, _values, result)
1893
1902
  result = [val[0]]
1894
1903
  result
1895
1904
  end
1896
1905
  .,.,
1897
1906
 
1898
- module_eval(<<'.,.,', 'parser.y', 408)
1907
+ module_eval(<<'.,.,', 'parser.y', 407)
1899
1908
  def _reduce_107(val, _values, result)
1900
1909
  result = val[0].append(val[1])
1901
1910
  result
@@ -1906,13 +1915,17 @@ module_eval(<<'.,.,', 'parser.y', 408)
1906
1915
 
1907
1916
  # reduce 109 omitted
1908
1917
 
1909
- module_eval(<<'.,.,', 'parser.y', 413)
1918
+ module_eval(<<'.,.,', 'parser.y', 412)
1910
1919
  def _reduce_110(val, _values, result)
1911
1920
  result = Lrama::Lexer::Token::Ident.new(s_value: val[0])
1912
1921
  result
1913
1922
  end
1914
1923
  .,.,
1915
1924
 
1925
+ # reduce 111 omitted
1926
+
1927
+ # reduce 112 omitted
1928
+
1916
1929
  def _reduce_none(val, _values, result)
1917
1930
  val[0]
1918
1931
  end