lrama 0.6.9 → 0.6.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (115) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test.yaml +19 -0
  3. data/.gitignore +2 -0
  4. data/Gemfile +6 -3
  5. data/NEWS.md +220 -0
  6. data/README.md +41 -4
  7. data/Rakefile +2 -0
  8. data/Steepfile +6 -17
  9. data/exe/lrama +1 -0
  10. data/lib/lrama/bitmap.rb +2 -0
  11. data/lib/lrama/command.rb +8 -14
  12. data/lib/lrama/context.rb +8 -6
  13. data/lib/lrama/counterexamples/derivation.rb +2 -0
  14. data/lib/lrama/counterexamples/example.rb +2 -0
  15. data/lib/lrama/counterexamples/path.rb +2 -0
  16. data/lib/lrama/counterexamples/production_path.rb +2 -0
  17. data/lib/lrama/counterexamples/start_path.rb +2 -0
  18. data/lib/lrama/counterexamples/state_item.rb +2 -0
  19. data/lib/lrama/counterexamples/transition_path.rb +2 -0
  20. data/lib/lrama/counterexamples/triple.rb +2 -0
  21. data/lib/lrama/counterexamples.rb +17 -15
  22. data/lib/lrama/diagnostics.rb +36 -0
  23. data/lib/lrama/digraph.rb +2 -0
  24. data/lib/lrama/grammar/auxiliary.rb +2 -0
  25. data/lib/lrama/grammar/binding.rb +12 -1
  26. data/lib/lrama/grammar/code/destructor_code.rb +2 -0
  27. data/lib/lrama/grammar/code/initial_action_code.rb +2 -0
  28. data/lib/lrama/grammar/code/no_reference_code.rb +2 -0
  29. data/lib/lrama/grammar/code/printer_code.rb +2 -0
  30. data/lib/lrama/grammar/code/rule_action.rb +7 -3
  31. data/lib/lrama/grammar/code.rb +7 -5
  32. data/lib/lrama/grammar/counter.rb +2 -0
  33. data/lib/lrama/grammar/destructor.rb +2 -0
  34. data/lib/lrama/grammar/error_token.rb +2 -0
  35. data/lib/lrama/grammar/parameterizing_rule/resolver.rb +7 -1
  36. data/lib/lrama/grammar/parameterizing_rule/rhs.rb +5 -2
  37. data/lib/lrama/grammar/parameterizing_rule/rule.rb +6 -0
  38. data/lib/lrama/grammar/parameterizing_rule.rb +2 -0
  39. data/lib/lrama/grammar/percent_code.rb +2 -0
  40. data/lib/lrama/grammar/precedence.rb +2 -0
  41. data/lib/lrama/grammar/printer.rb +2 -0
  42. data/lib/lrama/grammar/reference.rb +2 -0
  43. data/lib/lrama/grammar/rule.rb +10 -3
  44. data/lib/lrama/grammar/rule_builder.rb +64 -65
  45. data/lib/lrama/grammar/symbol.rb +2 -0
  46. data/lib/lrama/grammar/symbols/resolver.rb +5 -1
  47. data/lib/lrama/grammar/symbols.rb +2 -0
  48. data/lib/lrama/grammar/type.rb +2 -0
  49. data/lib/lrama/grammar/union.rb +2 -0
  50. data/lib/lrama/grammar.rb +51 -30
  51. data/lib/lrama/grammar_validator.rb +37 -0
  52. data/lib/lrama/lexer/grammar_file.rb +2 -0
  53. data/lib/lrama/lexer/location.rb +2 -0
  54. data/lib/lrama/lexer/token/char.rb +2 -0
  55. data/lib/lrama/lexer/token/ident.rb +2 -0
  56. data/lib/lrama/lexer/token/instantiate_rule.rb +2 -0
  57. data/lib/lrama/lexer/token/tag.rb +2 -0
  58. data/lib/lrama/lexer/token/user_code.rb +3 -1
  59. data/lib/lrama/lexer/token.rb +7 -5
  60. data/lib/lrama/lexer.rb +11 -8
  61. data/lib/lrama/{warning.rb → logger.rb} +5 -13
  62. data/lib/lrama/option_parser.rb +58 -33
  63. data/lib/lrama/options.rb +5 -2
  64. data/lib/lrama/output.rb +38 -69
  65. data/lib/lrama/parser.rb +650 -779
  66. data/lib/lrama/report/duration.rb +2 -0
  67. data/lib/lrama/report/profile.rb +2 -0
  68. data/lib/lrama/report.rb +4 -2
  69. data/lib/lrama/state/reduce.rb +3 -0
  70. data/lib/lrama/state/reduce_reduce_conflict.rb +2 -0
  71. data/lib/lrama/state/resolved_conflict.rb +3 -1
  72. data/lib/lrama/state/shift.rb +2 -0
  73. data/lib/lrama/state/shift_reduce_conflict.rb +2 -0
  74. data/lib/lrama/state.rb +7 -5
  75. data/lib/lrama/states/item.rb +5 -3
  76. data/lib/lrama/states.rb +18 -46
  77. data/lib/lrama/states_reporter.rb +60 -19
  78. data/lib/lrama/trace_reporter.rb +30 -0
  79. data/lib/lrama/version.rb +3 -1
  80. data/lib/lrama.rb +22 -17
  81. data/lrama.gemspec +3 -1
  82. data/parser.y +110 -229
  83. data/sig/lrama/grammar/auxiliary.rbs +10 -0
  84. data/sig/lrama/grammar/binding.rbs +4 -0
  85. data/sig/lrama/grammar/code/destructor_code.rbs +3 -4
  86. data/sig/lrama/grammar/code/initial_action_code.rbs +15 -0
  87. data/sig/lrama/grammar/code/no_reference_code.rbs +15 -0
  88. data/sig/lrama/grammar/code/printer_code.rbs +3 -4
  89. data/sig/lrama/grammar/code/rule_action.rbs +19 -0
  90. data/sig/lrama/grammar/code.rbs +3 -3
  91. data/sig/lrama/grammar/destructor.rbs +3 -1
  92. data/sig/lrama/grammar/error_token.rbs +4 -2
  93. data/sig/lrama/grammar/parameterizing_rule/resolver.rbs +2 -1
  94. data/sig/lrama/grammar/parameterizing_rule/rhs.rbs +1 -1
  95. data/sig/lrama/grammar/precedence.rbs +3 -1
  96. data/sig/lrama/grammar/printer.rbs +3 -1
  97. data/sig/lrama/grammar/rule.rbs +35 -3
  98. data/sig/lrama/grammar/rule_builder.rbs +10 -9
  99. data/sig/lrama/grammar/symbol.rbs +6 -6
  100. data/sig/lrama/grammar/symbols/resolver.rbs +22 -3
  101. data/sig/lrama/grammar/type.rbs +2 -2
  102. data/sig/lrama/grammar/union.rbs +12 -0
  103. data/sig/lrama/grammar.rbs +91 -1
  104. data/sig/lrama/options.rbs +3 -2
  105. data/sig/lrama/state/reduce.rbs +20 -0
  106. data/sig/lrama/state/reduce_reduce_conflict.rbs +13 -0
  107. data/sig/lrama/state/resolved_conflict.rbs +14 -0
  108. data/sig/lrama/state/shift.rbs +14 -0
  109. data/sig/lrama/state/shift_reduce_conflict.rbs +13 -0
  110. data/sig/lrama/states/item.rbs +30 -0
  111. data/template/bison/yacc.c +24 -19
  112. metadata +17 -6
  113. data/sample/calc.output +0 -263
  114. data/sample/calc.y +0 -101
  115. data/sample/parse.y +0 -59
data/lib/lrama/parser.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by Racc 1.7.3
3
+ # This file is automatically generated by Racc 1.8.1
4
4
  # from Racc grammar file "parser.y".
5
5
  #
6
6
 
@@ -23,7 +23,7 @@ unless $".find {|p| p.end_with?('/racc/info.rb')}
23
23
  $".push "#{__dir__}/racc/info.rb"
24
24
 
25
25
  module Racc
26
- VERSION = '1.7.3'
26
+ VERSION = '1.8.1'
27
27
  Version = VERSION
28
28
  Copyright = 'Copyright (c) 1999-2006 Minero Aoki'
29
29
  end
@@ -31,10 +31,6 @@ end
31
31
  end
32
32
 
33
33
 
34
- unless defined?(NotImplementedError)
35
- NotImplementedError = NotImplementError # :nodoc:
36
- end
37
-
38
34
  module Racc
39
35
  class ParseError < StandardError; end
40
36
  end
@@ -42,7 +38,7 @@ unless defined?(::ParseError)
42
38
  ParseError = Racc::ParseError # :nodoc:
43
39
  end
44
40
 
45
- # Racc is a LALR(1) parser generator.
41
+ # Racc is an LALR(1) parser generator.
46
42
  # It is written in Ruby itself, and generates Ruby programs.
47
43
  #
48
44
  # == Command-line Reference
@@ -658,7 +654,7 @@ end
658
654
  module Lrama
659
655
  class Parser < Racc::Parser
660
656
 
661
- module_eval(<<'...end parser.y/module_eval...', 'parser.y', 536)
657
+ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 417)
662
658
 
663
659
  include Lrama::Report::Duration
664
660
 
@@ -732,322 +728,297 @@ end
732
728
  ##### State transition tables begin ###
733
729
 
734
730
  racc_action_table = [
735
- 98, 51, 99, 163, 88, 79, 51, 51, 180, 163,
736
- 79, 79, 51, 162, 180, 156, 79, 165, 157, 51,
737
- 3, 50, 181, 165, 70, 51, 8, 50, 181, 79,
738
- 75, 51, 6, 50, 7, 161, 82, 47, 51, 51,
739
- 50, 50, 89, 82, 82, 166, 41, 51, 100, 50,
740
- 182, 166, 82, 51, 48, 50, 182, 23, 25, 26,
731
+ 94, 48, 95, 166, 48, 77, 172, 48, 77, 166,
732
+ 48, 77, 172, 48, 77, 47, 6, 85, 69, 48,
733
+ 48, 47, 47, 77, 74, 81, 48, 48, 47, 47,
734
+ 40, 81, 81, 48, 41, 47, 92, 48, 81, 47,
735
+ 44, 77, 103, 168, 169, 45, 175, 169, 96, 168,
736
+ 169, 52, 175, 169, 86, 20, 24, 25, 26, 27,
737
+ 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
738
+ 38, 92, 48, 4, 47, 5, 77, 103, 48, 48,
739
+ 47, 47, 77, 103, 116, 48, 4, 47, 5, 77,
740
+ 20, 24, 25, 26, 27, 28, 29, 30, 31, 32,
741
+ 33, 34, 35, 36, 37, 38, 11, 12, 13, 14,
742
+ 15, 16, 17, 18, 19, 52, 20, 24, 25, 26,
741
743
  27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
742
- 37, 38, 47, 51, 51, 50, 50, 93, 79, 197,
743
- 51, 51, 50, 50, 79, 197, 51, 51, 50, 50,
744
- 79, 197, 23, 25, 26, 27, 28, 29, 30, 31,
745
- 32, 33, 34, 35, 36, 37, 38, 9, 51, 54,
746
- 50, 14, 15, 16, 17, 18, 19, 54, 54, 20,
747
- 21, 22, 23, 25, 26, 27, 28, 29, 30, 31,
748
- 32, 33, 34, 35, 36, 37, 38, 39, 51, 51,
749
- 50, 50, 79, 197, 51, 51, 50, 50, 79, 197,
750
- 51, 51, 50, 50, 79, 197, 51, 51, 50, 50,
751
- 79, 79, 51, 51, 50, 50, 79, 79, 51, 51,
752
- 50, 50, 79, 79, 51, 51, 50, 207, 79, 79,
753
- 51, 51, 207, 207, 79, 79, 51, 51, 50, 50,
754
- 79, 187, 188, 189, 96, 187, 188, 189, 96, 217,
755
- 221, 229, 218, 218, 218, 51, 51, 50, 50, 187,
756
- 188, 189, 57, 58, 59, 60, 61, 62, 63, 64,
757
- 65, 66, 67, 90, 94, 96, 101, 101, 101, 103,
758
- 109, 113, 114, 117, 117, 117, 117, 120, 47, 124,
759
- 125, 127, 129, 130, 131, 132, 133, 136, 140, 141,
760
- 142, 143, 146, 147, 148, 150, 160, 168, 170, 171,
761
- 172, 173, 174, 176, 177, 178, 146, 184, 192, 193,
762
- 200, 160, 204, 176, 211, 160, 215, 216, 178, 176,
763
- 226, 176, 228, 96, 96, 176 ]
744
+ 37, 38, 11, 12, 13, 14, 15, 16, 17, 18,
745
+ 19, 43, 20, 24, 25, 26, 27, 28, 29, 30,
746
+ 31, 32, 33, 34, 35, 36, 37, 38, 48, 48,
747
+ 47, 47, 77, 103, 48, 48, 47, 47, 77, 77,
748
+ 48, 48, 47, 47, 77, 77, 48, 48, 196, 196,
749
+ 77, 77, 48, 48, 47, 196, 77, 77, 148, 170,
750
+ 52, 149, 149, 180, 181, 182, 131, 180, 181, 182,
751
+ 131, 203, 208, 215, 204, 204, 204, 48, 48, 47,
752
+ 47, 48, 48, 47, 47, 48, 48, 47, 47, 180,
753
+ 181, 182, 119, 120, 55, 52, 52, 52, 52, 52,
754
+ 61, 62, 63, 64, 65, 87, 52, 52, 106, 109,
755
+ 111, 118, 125, 126, 128, 131, 132, 77, 140, 141,
756
+ 142, 143, 145, 146, 153, 140, 155, 153, 159, 160,
757
+ 161, 163, 164, 171, 176, 153, 183, 131, 187, 153,
758
+ 189, 131, 153, 198, 153, 131, 161, 164, 205, 164,
759
+ 161, 161, 213, 131, 161 ]
764
760
 
765
761
  racc_action_check = [
766
- 49, 145, 49, 145, 39, 145, 159, 183, 159, 183,
767
- 159, 183, 201, 144, 201, 139, 201, 145, 139, 33,
768
- 1, 33, 159, 183, 33, 34, 3, 34, 201, 34,
769
- 34, 35, 2, 35, 2, 144, 35, 9, 36, 37,
770
- 36, 37, 39, 36, 37, 145, 7, 38, 49, 38,
771
- 159, 183, 38, 15, 14, 15, 201, 9, 9, 9,
772
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
773
- 9, 9, 42, 69, 172, 69, 172, 42, 172, 172,
774
- 173, 70, 173, 70, 173, 173, 174, 81, 174, 81,
775
- 174, 174, 42, 42, 42, 42, 42, 42, 42, 42,
776
- 42, 42, 42, 42, 42, 42, 42, 4, 82, 16,
777
- 82, 4, 4, 4, 4, 4, 4, 17, 18, 4,
778
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
779
- 4, 4, 4, 4, 4, 4, 4, 4, 194, 109,
780
- 194, 109, 194, 194, 198, 111, 198, 111, 198, 198,
781
- 199, 117, 199, 117, 199, 199, 74, 75, 74, 75,
782
- 74, 75, 114, 116, 114, 116, 114, 116, 137, 166,
783
- 137, 166, 137, 166, 182, 184, 182, 184, 182, 184,
784
- 204, 216, 204, 216, 204, 216, 218, 119, 218, 119,
785
- 218, 164, 164, 164, 164, 179, 179, 179, 179, 208,
786
- 214, 223, 208, 214, 223, 134, 138, 134, 138, 209,
787
- 209, 209, 19, 20, 23, 25, 26, 27, 28, 29,
788
- 30, 31, 32, 40, 45, 46, 53, 55, 56, 57,
789
- 68, 72, 73, 80, 85, 86, 87, 88, 89, 95,
790
- 96, 102, 104, 105, 106, 107, 108, 112, 120, 121,
791
- 122, 123, 124, 125, 126, 128, 141, 149, 151, 152,
792
- 153, 154, 155, 156, 157, 158, 161, 163, 167, 169,
793
- 175, 178, 180, 186, 190, 200, 205, 207, 213, 217,
794
- 220, 221, 222, 226, 228, 230 ]
762
+ 46, 151, 46, 151, 157, 151, 157, 177, 157, 177,
763
+ 188, 177, 188, 32, 188, 32, 1, 38, 32, 33,
764
+ 34, 33, 34, 33, 33, 34, 35, 36, 35, 36,
765
+ 5, 35, 36, 37, 6, 37, 44, 58, 37, 58,
766
+ 9, 58, 58, 151, 151, 11, 157, 157, 46, 177,
767
+ 177, 13, 188, 188, 38, 44, 44, 44, 44, 44,
768
+ 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
769
+ 44, 88, 59, 0, 59, 0, 59, 59, 60, 79,
770
+ 60, 79, 60, 60, 79, 72, 2, 72, 2, 72,
771
+ 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
772
+ 88, 88, 88, 88, 88, 88, 3, 3, 3, 3,
773
+ 3, 3, 3, 3, 3, 14, 3, 3, 3, 3,
774
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
775
+ 3, 3, 8, 8, 8, 8, 8, 8, 8, 8,
776
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
777
+ 8, 8, 8, 8, 8, 8, 8, 8, 100, 12,
778
+ 100, 12, 100, 100, 74, 111, 74, 111, 74, 111,
779
+ 168, 175, 168, 175, 168, 175, 183, 189, 183, 189,
780
+ 183, 189, 204, 205, 204, 205, 204, 205, 139, 154,
781
+ 15, 139, 154, 165, 165, 165, 165, 173, 173, 173,
782
+ 173, 195, 200, 212, 195, 200, 212, 67, 69, 67,
783
+ 69, 81, 106, 81, 106, 114, 116, 114, 116, 197,
784
+ 197, 197, 86, 86, 16, 17, 20, 24, 25, 26,
785
+ 27, 28, 29, 30, 31, 39, 50, 55, 66, 70,
786
+ 71, 85, 89, 90, 91, 92, 98, 110, 118, 119,
787
+ 120, 121, 130, 131, 141, 142, 144, 145, 146, 147,
788
+ 148, 149, 150, 156, 162, 164, 166, 167, 170, 171,
789
+ 172, 174, 176, 186, 187, 191, 192, 194, 196, 199,
790
+ 201, 203, 207, 208, 214 ]
795
791
 
796
792
  racc_action_pointer = [
797
- nil, 20, 22, 26, 98, nil, nil, 39, nil, 33,
798
- nil, nil, nil, nil, 48, 50, 90, 98, 99, 207,
799
- 194, nil, nil, 195, nil, 196, 197, 198, 213, 214,
800
- 215, 216, 217, 16, 22, 28, 35, 36, 44, -1,
801
- 221, nil, 68, nil, nil, 201, 174, nil, nil, -5,
802
- nil, nil, nil, 207, nil, 208, 209, 210, nil, nil,
803
- nil, nil, nil, nil, nil, nil, nil, nil, 222, 70,
804
- 78, nil, 225, 224, 153, 154, nil, nil, nil, nil,
805
- 225, 84, 105, nil, nil, 226, 227, 228, 197, 234,
806
- nil, nil, nil, nil, nil, 197, 235, nil, nil, nil,
807
- nil, nil, 239, nil, 240, 241, 242, 243, 244, 136,
808
- nil, 142, 240, nil, 159, nil, 160, 148, nil, 184,
809
- 243, 207, 239, 249, 206, 201, 252, nil, 253, nil,
810
- nil, nil, nil, nil, 202, nil, nil, 165, 203, -26,
811
- nil, 210, nil, nil, -10, -2, nil, nil, nil, 237,
812
- nil, 238, 239, 240, 241, 242, 255, 259, 220, 3,
813
- nil, 220, nil, 227, 143, nil, 166, 248, nil, 249,
814
- nil, nil, 71, 77, 83, 228, nil, nil, 225, 147,
815
- 232, nil, 171, 4, 172, nil, 265, nil, nil, nil,
816
- 272, nil, nil, nil, 135, nil, nil, nil, 141, 147,
817
- 229, 9, nil, nil, 177, 274, nil, 237, 158, 161,
818
- nil, nil, nil, 233, 159, nil, 178, 271, 183, nil,
819
- 260, 273, 262, 160, nil, nil, 232, nil, 233, nil,
820
- 277, nil, nil ]
793
+ 63, 16, 76, 93, nil, 23, 34, nil, 119, 31,
794
+ nil, 39, 156, 5, 69, 144, 219, 179, nil, nil,
795
+ 180, nil, nil, nil, 181, 182, 183, 225, 226, 227,
796
+ 228, 229, 10, 16, 17, 23, 24, 30, 12, 233,
797
+ nil, nil, nil, nil, 32, nil, -5, nil, nil, nil,
798
+ 190, nil, nil, nil, nil, 191, nil, nil, 34, 69,
799
+ 75, nil, nil, nil, nil, nil, 230, 204, nil, 205,
800
+ 233, 232, 82, nil, 161, nil, nil, nil, nil, 76,
801
+ nil, 208, nil, nil, nil, 202, 218, nil, 67, 233,
802
+ 221, 222, 194, nil, nil, nil, nil, nil, 244, nil,
803
+ 155, nil, nil, nil, nil, nil, 209, nil, nil, nil,
804
+ 240, 162, nil, nil, 212, nil, 213, nil, 243, 208,
805
+ 211, 240, nil, nil, nil, nil, nil, nil, nil, nil,
806
+ 211, 248, nil, nil, nil, nil, nil, nil, nil, 148,
807
+ nil, 200, 250, nil, 254, 203, 206, 212, 252, 256,
808
+ 218, -2, nil, nil, 149, nil, 219, 1, nil, nil,
809
+ nil, nil, 223, nil, 211, 145, 227, 216, 167, nil,
810
+ 227, 215, 231, 149, 220, 168, 218, 4, nil, nil,
811
+ nil, nil, nil, 173, nil, nil, 271, 220, 7, 174,
812
+ nil, 224, 268, nil, 233, 161, 239, 171, nil, 235,
813
+ 162, 272, nil, 273, 179, 180, nil, 235, 232, nil,
814
+ nil, nil, 163, nil, 276, nil, nil ]
821
815
 
822
816
  racc_action_default = [
823
- -2, -138, -8, -138, -138, -3, -4, -138, 233, -138,
824
- -9, -10, -11, -12, -138, -138, -138, -138, -138, -138,
825
- -138, -24, -25, -138, -29, -138, -138, -138, -138, -138,
826
- -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
827
- -138, -7, -123, -96, -98, -138, -120, -122, -13, -127,
828
- -94, -95, -126, -15, -85, -16, -17, -138, -21, -26,
829
- -30, -33, -36, -39, -40, -41, -42, -43, -44, -50,
830
- -138, -53, -71, -45, -75, -138, -78, -80, -81, -135,
831
- -46, -88, -138, -91, -93, -47, -48, -49, -138, -138,
832
- -5, -1, -97, -124, -99, -138, -138, -14, -128, -129,
833
- -130, -82, -138, -18, -138, -138, -138, -138, -138, -138,
834
- -54, -51, -73, -72, -138, -79, -76, -138, -92, -89,
835
- -138, -138, -138, -138, -104, -138, -138, -86, -138, -22,
836
- -27, -31, -34, -37, -52, -55, -74, -77, -90, -138,
837
- -58, -62, -6, -125, -100, -101, -105, -121, -83, -138,
838
- -19, -138, -138, -138, -138, -138, -136, -138, -57, -60,
839
- -63, -104, -103, -94, -120, -109, -138, -138, -87, -138,
840
- -23, -28, -138, -138, -138, -138, -137, -59, -62, -120,
841
- -94, -67, -138, -102, -138, -106, -136, -113, -114, -115,
842
- -138, -112, -84, -20, -32, -131, -133, -134, -35, -38,
843
- -62, -61, -64, -65, -138, -138, -70, -94, -138, -116,
844
- -107, -110, -132, -56, -138, -68, -138, -136, -138, -118,
845
- -138, -136, -138, -138, -108, -117, -120, -66, -120, -119,
846
- -136, -69, -111 ]
817
+ -1, -127, -1, -3, -10, -127, -127, -2, -3, -127,
818
+ -16, -127, -127, -127, -127, -127, -127, -127, -24, -25,
819
+ -127, -30, -31, -32, -127, -127, -127, -127, -127, -127,
820
+ -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
821
+ -13, 217, -4, -26, -127, -17, -118, -89, -90, -117,
822
+ -14, -19, -81, -20, -21, -127, -23, -29, -127, -127,
823
+ -127, -36, -37, -38, -39, -40, -41, -47, -49, -127,
824
+ -52, -42, -74, -76, -127, -79, -80, -126, -43, -84,
825
+ -86, -127, -44, -45, -46, -127, -127, -11, -5, -7,
826
+ -91, -127, -64, -18, -119, -120, -121, -15, -127, -22,
827
+ -27, -33, -122, -123, -34, -35, -127, -48, -50, -53,
828
+ -72, -127, -75, -77, -84, -85, -127, -87, -127, -127,
829
+ -127, -127, -6, -8, -9, -115, -92, -93, -94, -65,
830
+ -127, -127, -82, -28, -51, -54, -73, -78, -88, -127,
831
+ -60, -124, -127, -12, -127, -124, -127, -127, -55, -127,
832
+ -58, -62, -66, -125, -127, -116, -95, -96, -98, -114,
833
+ -83, -56, -127, -61, -124, -64, -89, -64, -127, -111,
834
+ -127, -124, -89, -64, -64, -127, -124, -63, -67, -68,
835
+ -104, -105, -106, -127, -70, -71, -127, -124, -97, -127,
836
+ -99, -64, -55, -103, -57, -127, -89, -107, -112, -59,
837
+ -127, -55, -102, -55, -127, -127, -109, -127, -64, -100,
838
+ -69, -108, -127, -113, -55, -110, -101 ]
847
839
 
848
840
  racc_goto_table = [
849
- 76, 95, 69, 52, 74, 158, 110, 175, 118, 119,
850
- 145, 208, 1, 212, 186, 2, 43, 212, 212, 4,
851
- 42, 72, 91, 84, 84, 84, 84, 5, 40, 203,
852
- 122, 214, 80, 85, 86, 87, 10, 210, 11, 111,
853
- 115, 76, 12, 223, 138, 116, 118, 183, 110, 92,
854
- 53, 55, 56, 194, 198, 199, 13, 72, 72, 219,
855
- 49, 97, 128, 169, 213, 118, 104, 151, 224, 84,
856
- 84, 110, 227, 105, 152, 106, 153, 107, 134, 154,
857
- 76, 232, 115, 108, 137, 155, 68, 73, 112, 135,
858
- 139, 121, 201, 205, 222, 126, 167, 72, 102, 72,
859
- 149, 144, 190, 115, 220, 84, 123, 84, nil, nil,
860
- nil, 164, nil, nil, nil, nil, nil, nil, nil, 185,
861
- nil, nil, 72, nil, nil, 179, 84, nil, nil, nil,
862
- nil, nil, 191, nil, 202, nil, nil, nil, nil, nil,
863
- nil, nil, nil, nil, nil, nil, nil, nil, 206, 164,
864
- 209, nil, nil, nil, nil, nil, nil, nil, nil, nil,
865
- nil, nil, nil, nil, nil, nil, nil, 179, nil, nil,
866
- 209, nil, nil, nil, nil, nil, nil, nil, nil, nil,
867
- nil, 230, 209, 231, 225 ]
841
+ 102, 102, 102, 49, 130, 73, 68, 89, 162, 91,
842
+ 150, 139, 101, 104, 105, 1, 9, 174, 51, 53,
843
+ 54, 42, 115, 70, 117, 79, 79, 79, 79, 56,
844
+ 123, 3, 57, 7, 124, 154, 58, 59, 60, 179,
845
+ 158, 107, 102, 108, 112, 194, 113, 191, 174, 157,
846
+ 39, 122, 202, 91, 133, 97, 199, 115, 70, 138,
847
+ 70, 209, 195, 210, 121, 46, 158, 99, 200, 93,
848
+ 114, 206, 114, 66, 216, 188, 71, 178, 135, 184,
849
+ 134, 110, 177, 137, 212, 190, 192, 78, 82, 83,
850
+ 84, 136, 98, 165, 147, 127, 156, 70, 186, 173,
851
+ 207, 144, nil, 201, nil, 114, nil, 114, nil, nil,
852
+ 185, nil, nil, nil, nil, nil, nil, 193, nil, 165,
853
+ 214, nil, nil, nil, nil, 197, nil, nil, nil, nil,
854
+ 173, 197, nil, nil, nil, nil, nil, nil, nil, nil,
855
+ nil, nil, nil, nil, nil, nil, 211, 197 ]
868
856
 
869
857
  racc_goto_check = [
870
- 43, 44, 33, 35, 49, 40, 34, 39, 56, 55,
871
- 60, 46, 1, 64, 45, 2, 57, 64, 64, 3,
872
- 4, 35, 5, 35, 35, 35, 35, 6, 7, 45,
873
- 8, 46, 32, 32, 32, 32, 9, 39, 10, 33,
874
- 43, 43, 11, 46, 55, 49, 56, 60, 34, 57,
875
- 15, 15, 15, 21, 21, 21, 12, 35, 35, 45,
876
- 13, 14, 16, 17, 40, 56, 18, 19, 39, 35,
877
- 35, 34, 39, 22, 23, 24, 25, 26, 33, 27,
878
- 43, 39, 43, 28, 49, 29, 30, 31, 36, 37,
879
- 38, 41, 42, 47, 48, 51, 52, 35, 53, 35,
880
- 54, 59, 61, 43, 62, 35, 63, 35, nil, nil,
881
- nil, 43, nil, nil, nil, nil, nil, nil, nil, 44,
882
- nil, nil, 35, nil, nil, 43, 35, nil, nil, nil,
883
- nil, nil, 43, nil, 44, nil, nil, nil, nil, nil,
884
- nil, nil, nil, nil, nil, nil, nil, nil, 43, 43,
885
- 43, nil, nil, nil, nil, nil, nil, nil, nil, nil,
886
- nil, nil, nil, nil, nil, nil, nil, 43, nil, nil,
887
- 43, nil, nil, nil, nil, nil, nil, nil, nil, nil,
888
- nil, 44, 43, 44, 43 ]
858
+ 35, 35, 35, 27, 40, 42, 26, 8, 32, 12,
859
+ 31, 30, 21, 21, 21, 1, 7, 39, 16, 16,
860
+ 16, 7, 45, 27, 45, 27, 27, 27, 27, 15,
861
+ 5, 6, 15, 6, 9, 30, 15, 15, 15, 37,
862
+ 34, 26, 35, 26, 42, 31, 42, 37, 39, 49,
863
+ 10, 8, 32, 12, 21, 16, 31, 45, 27, 45,
864
+ 27, 32, 38, 32, 11, 13, 34, 15, 38, 14,
865
+ 27, 37, 27, 22, 32, 49, 23, 40, 28, 40,
866
+ 26, 29, 33, 42, 38, 40, 40, 24, 24, 24,
867
+ 24, 41, 43, 35, 44, 47, 48, 27, 50, 35,
868
+ 51, 52, nil, 40, nil, 27, nil, 27, nil, nil,
869
+ 35, nil, nil, nil, nil, nil, nil, 35, nil, 35,
870
+ 40, nil, nil, nil, nil, 35, nil, nil, nil, nil,
871
+ 35, 35, nil, nil, nil, nil, nil, nil, nil, nil,
872
+ nil, nil, nil, nil, nil, nil, 35, 35 ]
889
873
 
890
874
  racc_goto_pointer = [
891
- nil, 12, 15, 17, 11, -20, 25, 22, -60, 32,
892
- 34, 38, 52, 45, 12, 34, -41, -87, 8, -62,
893
- nil, -119, 14, -56, 15, -55, 16, -53, 21, -48,
894
- 53, 53, -3, -31, -63, -12, 16, -23, -30, -149,
895
- -136, 2, -86, -34, -45, -150, -173, -88, -121, -30,
896
- nil, -6, -52, 44, -27, -73, -73, 7, nil, -23,
897
- -114, -63, -107, 13, -181 ]
875
+ nil, 15, nil, nil, nil, -59, 31, 13, -37, -55,
876
+ 46, -23, -35, 53, 23, 12, 5, nil, nil, nil,
877
+ nil, -46, 41, 43, 53, nil, -26, -9, -32, 11,
878
+ -107, -131, -140, -82, -105, -58, nil, -126, -121, -140,
879
+ -88, -19, -28, 40, -38, -57, nil, 5, -49, -96,
880
+ -71, -98, -24 ]
898
881
 
899
882
  racc_goto_default = [
900
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
901
- 45, nil, nil, nil, nil, nil, nil, nil, nil, nil,
902
- 24, nil, nil, nil, nil, nil, nil, nil, nil, nil,
903
- nil, nil, nil, nil, 71, 77, nil, nil, nil, nil,
904
- nil, 46, 159, 196, nil, nil, nil, nil, nil, nil,
905
- 78, nil, nil, nil, nil, 81, 83, nil, 44, nil,
906
- nil, nil, nil, nil, 195 ]
883
+ nil, nil, 2, 8, 88, nil, nil, nil, nil, nil,
884
+ nil, nil, 10, nil, nil, 50, nil, 21, 22, 23,
885
+ 100, nil, nil, nil, nil, 67, nil, 75, nil, nil,
886
+ nil, nil, nil, 151, 152, 72, 129, nil, nil, 167,
887
+ nil, 76, nil, nil, nil, 80, 90, nil, nil, nil,
888
+ nil, nil, nil ]
907
889
 
908
890
  racc_reduce_table = [
909
891
  0, 0, :racc_error,
910
- 5, 55, :_reduce_none,
911
- 0, 56, :_reduce_none,
912
- 2, 56, :_reduce_none,
913
- 0, 61, :_reduce_4,
914
- 0, 62, :_reduce_5,
915
- 5, 60, :_reduce_6,
916
- 2, 60, :_reduce_none,
917
- 0, 57, :_reduce_8,
918
- 2, 57, :_reduce_none,
919
- 1, 63, :_reduce_none,
920
- 1, 63, :_reduce_none,
921
- 1, 63, :_reduce_none,
922
- 2, 63, :_reduce_13,
923
- 3, 63, :_reduce_none,
924
- 2, 63, :_reduce_none,
925
- 2, 63, :_reduce_16,
926
- 2, 63, :_reduce_17,
927
- 0, 70, :_reduce_18,
928
- 0, 71, :_reduce_19,
929
- 7, 63, :_reduce_20,
930
- 0, 72, :_reduce_21,
931
- 0, 73, :_reduce_22,
932
- 6, 63, :_reduce_23,
933
- 1, 63, :_reduce_24,
934
- 1, 63, :_reduce_none,
935
- 0, 76, :_reduce_26,
936
- 0, 77, :_reduce_27,
937
- 6, 64, :_reduce_28,
892
+ 0, 61, :_reduce_1,
893
+ 2, 61, :_reduce_2,
894
+ 0, 62, :_reduce_3,
895
+ 2, 62, :_reduce_4,
896
+ 1, 63, :_reduce_5,
897
+ 2, 63, :_reduce_6,
898
+ 0, 64, :_reduce_none,
938
899
  1, 64, :_reduce_none,
939
- 0, 78, :_reduce_30,
940
- 0, 79, :_reduce_31,
941
- 7, 64, :_reduce_32,
942
- 0, 80, :_reduce_33,
943
- 0, 81, :_reduce_34,
944
- 7, 64, :_reduce_35,
945
- 0, 82, :_reduce_36,
946
- 0, 83, :_reduce_37,
947
- 7, 64, :_reduce_38,
948
- 2, 64, :_reduce_39,
949
- 2, 64, :_reduce_40,
950
- 2, 64, :_reduce_41,
951
- 2, 64, :_reduce_42,
952
- 2, 64, :_reduce_43,
953
- 2, 74, :_reduce_none,
954
- 2, 74, :_reduce_45,
955
- 2, 74, :_reduce_46,
956
- 2, 74, :_reduce_47,
957
- 2, 74, :_reduce_48,
958
- 2, 74, :_reduce_49,
959
- 1, 84, :_reduce_50,
960
- 2, 84, :_reduce_51,
961
- 3, 84, :_reduce_52,
962
- 1, 87, :_reduce_53,
963
- 2, 87, :_reduce_54,
964
- 3, 88, :_reduce_55,
965
- 8, 65, :_reduce_56,
966
- 5, 66, :_reduce_57,
967
- 1, 92, :_reduce_58,
968
- 3, 92, :_reduce_59,
969
- 1, 94, :_reduce_60,
970
- 3, 94, :_reduce_61,
971
- 0, 96, :_reduce_62,
972
- 1, 96, :_reduce_63,
973
- 3, 96, :_reduce_64,
974
- 3, 96, :_reduce_65,
975
- 6, 96, :_reduce_66,
976
- 0, 101, :_reduce_67,
977
- 0, 102, :_reduce_68,
978
- 7, 96, :_reduce_69,
979
- 3, 96, :_reduce_70,
980
- 0, 90, :_reduce_none,
981
- 1, 90, :_reduce_none,
982
- 0, 91, :_reduce_none,
983
- 1, 91, :_reduce_none,
984
- 1, 85, :_reduce_75,
985
- 2, 85, :_reduce_76,
986
- 3, 85, :_reduce_77,
987
- 1, 103, :_reduce_78,
988
- 2, 103, :_reduce_79,
989
- 1, 97, :_reduce_none,
990
- 1, 97, :_reduce_none,
991
- 0, 105, :_reduce_82,
992
- 0, 106, :_reduce_83,
993
- 6, 69, :_reduce_84,
994
- 0, 107, :_reduce_85,
995
- 0, 108, :_reduce_86,
996
- 5, 69, :_reduce_87,
997
- 1, 86, :_reduce_88,
998
- 2, 86, :_reduce_89,
999
- 3, 86, :_reduce_90,
1000
- 1, 109, :_reduce_91,
1001
- 2, 109, :_reduce_92,
1002
- 1, 110, :_reduce_none,
1003
- 1, 89, :_reduce_94,
1004
- 1, 89, :_reduce_95,
900
+ 5, 56, :_reduce_none,
901
+ 0, 65, :_reduce_10,
902
+ 0, 66, :_reduce_11,
903
+ 5, 57, :_reduce_12,
904
+ 2, 57, :_reduce_none,
905
+ 1, 71, :_reduce_14,
906
+ 2, 71, :_reduce_15,
1005
907
  1, 58, :_reduce_none,
908
+ 2, 58, :_reduce_17,
909
+ 3, 58, :_reduce_none,
1006
910
  2, 58, :_reduce_none,
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
- 0, 115, :_reduce_109,
1019
- 0, 116, :_reduce_110,
1020
- 8, 114, :_reduce_111,
1021
- 3, 114, :_reduce_112,
1022
- 1, 99, :_reduce_113,
1023
- 1, 99, :_reduce_114,
1024
- 1, 99, :_reduce_115,
1025
- 1, 100, :_reduce_116,
1026
- 3, 100, :_reduce_117,
1027
- 2, 100, :_reduce_118,
1028
- 4, 100, :_reduce_119,
1029
- 0, 98, :_reduce_none,
1030
- 3, 98, :_reduce_121,
1031
- 1, 95, :_reduce_none,
1032
- 0, 59, :_reduce_none,
1033
- 0, 117, :_reduce_124,
1034
- 3, 59, :_reduce_125,
911
+ 2, 58, :_reduce_20,
912
+ 2, 58, :_reduce_21,
913
+ 3, 58, :_reduce_22,
914
+ 2, 58, :_reduce_23,
915
+ 1, 58, :_reduce_24,
916
+ 1, 58, :_reduce_25,
917
+ 2, 58, :_reduce_none,
918
+ 1, 76, :_reduce_27,
919
+ 2, 76, :_reduce_28,
920
+ 2, 67, :_reduce_29,
1035
921
  1, 67, :_reduce_none,
1036
- 0, 68, :_reduce_none,
1037
- 1, 68, :_reduce_none,
1038
- 1, 68, :_reduce_none,
922
+ 1, 67, :_reduce_none,
923
+ 1, 67, :_reduce_none,
924
+ 3, 67, :_reduce_33,
925
+ 3, 67, :_reduce_34,
926
+ 3, 67, :_reduce_35,
927
+ 2, 67, :_reduce_36,
928
+ 2, 67, :_reduce_37,
929
+ 2, 67, :_reduce_38,
930
+ 2, 67, :_reduce_39,
931
+ 2, 67, :_reduce_40,
932
+ 2, 72, :_reduce_none,
933
+ 2, 72, :_reduce_42,
934
+ 2, 72, :_reduce_43,
935
+ 2, 72, :_reduce_44,
936
+ 2, 72, :_reduce_45,
937
+ 2, 72, :_reduce_46,
938
+ 1, 81, :_reduce_47,
939
+ 2, 81, :_reduce_48,
940
+ 1, 77, :_reduce_49,
941
+ 2, 77, :_reduce_50,
942
+ 3, 77, :_reduce_51,
943
+ 0, 84, :_reduce_none,
944
+ 1, 84, :_reduce_none,
945
+ 3, 80, :_reduce_54,
946
+ 0, 87, :_reduce_none,
947
+ 1, 87, :_reduce_none,
948
+ 8, 73, :_reduce_57,
949
+ 5, 74, :_reduce_58,
950
+ 8, 74, :_reduce_59,
951
+ 1, 85, :_reduce_60,
952
+ 3, 85, :_reduce_61,
953
+ 1, 86, :_reduce_62,
954
+ 3, 86, :_reduce_63,
955
+ 0, 95, :_reduce_none,
956
+ 1, 95, :_reduce_none,
957
+ 1, 88, :_reduce_66,
958
+ 3, 88, :_reduce_67,
959
+ 3, 88, :_reduce_68,
960
+ 6, 88, :_reduce_69,
961
+ 3, 88, :_reduce_70,
962
+ 3, 88, :_reduce_71,
963
+ 0, 83, :_reduce_none,
964
+ 1, 83, :_reduce_73,
965
+ 1, 97, :_reduce_74,
966
+ 2, 97, :_reduce_75,
967
+ 1, 78, :_reduce_76,
968
+ 2, 78, :_reduce_77,
969
+ 3, 78, :_reduce_78,
970
+ 1, 90, :_reduce_none,
971
+ 1, 90, :_reduce_none,
972
+ 0, 98, :_reduce_81,
973
+ 0, 99, :_reduce_82,
974
+ 5, 70, :_reduce_83,
975
+ 1, 100, :_reduce_84,
976
+ 2, 100, :_reduce_85,
977
+ 1, 79, :_reduce_86,
978
+ 2, 79, :_reduce_87,
979
+ 3, 79, :_reduce_88,
980
+ 1, 82, :_reduce_89,
981
+ 1, 82, :_reduce_90,
982
+ 0, 102, :_reduce_none,
983
+ 1, 102, :_reduce_none,
984
+ 2, 59, :_reduce_none,
985
+ 2, 59, :_reduce_none,
986
+ 4, 101, :_reduce_95,
987
+ 1, 103, :_reduce_96,
988
+ 3, 103, :_reduce_97,
989
+ 1, 104, :_reduce_98,
990
+ 3, 104, :_reduce_99,
991
+ 5, 104, :_reduce_100,
992
+ 7, 104, :_reduce_101,
993
+ 4, 104, :_reduce_102,
994
+ 3, 104, :_reduce_103,
995
+ 1, 92, :_reduce_104,
996
+ 1, 92, :_reduce_105,
997
+ 1, 92, :_reduce_106,
998
+ 1, 93, :_reduce_107,
999
+ 3, 93, :_reduce_108,
1000
+ 2, 93, :_reduce_109,
1001
+ 4, 93, :_reduce_110,
1002
+ 0, 105, :_reduce_111,
1003
+ 0, 106, :_reduce_112,
1004
+ 5, 94, :_reduce_113,
1005
+ 3, 91, :_reduce_114,
1006
+ 0, 107, :_reduce_115,
1007
+ 3, 60, :_reduce_116,
1039
1008
  1, 68, :_reduce_none,
1040
- 1, 75, :_reduce_131,
1041
- 2, 75, :_reduce_132,
1042
- 1, 118, :_reduce_none,
1043
- 1, 118, :_reduce_none,
1044
- 1, 104, :_reduce_135,
1045
- 0, 93, :_reduce_none,
1046
- 1, 93, :_reduce_none ]
1009
+ 0, 69, :_reduce_none,
1010
+ 1, 69, :_reduce_none,
1011
+ 1, 69, :_reduce_none,
1012
+ 1, 69, :_reduce_none,
1013
+ 1, 75, :_reduce_none,
1014
+ 1, 75, :_reduce_none,
1015
+ 0, 89, :_reduce_none,
1016
+ 1, 89, :_reduce_none,
1017
+ 1, 96, :_reduce_126 ]
1047
1018
 
1048
- racc_reduce_n = 138
1019
+ racc_reduce_n = 127
1049
1020
 
1050
- racc_shift_n = 233
1021
+ racc_shift_n = 217
1051
1022
 
1052
1023
  racc_token_table = {
1053
1024
  false => 0,
@@ -1069,43 +1040,44 @@ racc_token_table = {
1069
1040
  "%lex-param" => 16,
1070
1041
  "%parse-param" => 17,
1071
1042
  "%code" => 18,
1072
- "{" => 19,
1073
- "}" => 20,
1074
- "%initial-action" => 21,
1075
- "%no-stdlib" => 22,
1076
- ";" => 23,
1077
- "%union" => 24,
1078
- "%destructor" => 25,
1079
- "%printer" => 26,
1080
- "%error-token" => 27,
1081
- "%after-shift" => 28,
1082
- "%before-reduce" => 29,
1083
- "%after-reduce" => 30,
1084
- "%after-shift-error-token" => 31,
1085
- "%after-pop-stack" => 32,
1086
- "%token" => 33,
1087
- "%type" => 34,
1088
- "%left" => 35,
1089
- "%right" => 36,
1090
- "%precedence" => 37,
1091
- "%nonassoc" => 38,
1092
- "%rule" => 39,
1093
- "(" => 40,
1094
- ")" => 41,
1095
- ":" => 42,
1096
- "%inline" => 43,
1097
- "," => 44,
1098
- "|" => 45,
1099
- "%empty" => 46,
1100
- "%prec" => 47,
1043
+ "%initial-action" => 19,
1044
+ "%no-stdlib" => 20,
1045
+ "%locations" => 21,
1046
+ ";" => 22,
1047
+ "%union" => 23,
1048
+ "%destructor" => 24,
1049
+ "%printer" => 25,
1050
+ "%error-token" => 26,
1051
+ "%after-shift" => 27,
1052
+ "%before-reduce" => 28,
1053
+ "%after-reduce" => 29,
1054
+ "%after-shift-error-token" => 30,
1055
+ "%after-pop-stack" => 31,
1056
+ "%token" => 32,
1057
+ "%type" => 33,
1058
+ "%left" => 34,
1059
+ "%right" => 35,
1060
+ "%precedence" => 36,
1061
+ "%nonassoc" => 37,
1062
+ "%rule" => 38,
1063
+ "(" => 39,
1064
+ ")" => 40,
1065
+ ":" => 41,
1066
+ "%inline" => 42,
1067
+ "," => 43,
1068
+ "|" => 44,
1069
+ "%prec" => 45,
1070
+ "{" => 46,
1071
+ "}" => 47,
1101
1072
  "?" => 48,
1102
1073
  "+" => 49,
1103
1074
  "*" => 50,
1104
1075
  "[" => 51,
1105
1076
  "]" => 52,
1106
- "{...}" => 53 }
1077
+ "{...}" => 53,
1078
+ "%empty" => 54 }
1107
1079
 
1108
- racc_nt_base = 54
1080
+ racc_nt_base = 55
1109
1081
 
1110
1082
  racc_use_result_var = true
1111
1083
 
@@ -1146,10 +1118,9 @@ Racc_token_to_s_table = [
1146
1118
  "\"%lex-param\"",
1147
1119
  "\"%parse-param\"",
1148
1120
  "\"%code\"",
1149
- "\"{\"",
1150
- "\"}\"",
1151
1121
  "\"%initial-action\"",
1152
1122
  "\"%no-stdlib\"",
1123
+ "\"%locations\"",
1153
1124
  "\";\"",
1154
1125
  "\"%union\"",
1155
1126
  "\"%destructor\"",
@@ -1173,79 +1144,69 @@ Racc_token_to_s_table = [
1173
1144
  "\"%inline\"",
1174
1145
  "\",\"",
1175
1146
  "\"|\"",
1176
- "\"%empty\"",
1177
1147
  "\"%prec\"",
1148
+ "\"{\"",
1149
+ "\"}\"",
1178
1150
  "\"?\"",
1179
1151
  "\"+\"",
1180
1152
  "\"*\"",
1181
1153
  "\"[\"",
1182
1154
  "\"]\"",
1183
1155
  "\"{...}\"",
1156
+ "\"%empty\"",
1184
1157
  "$start",
1185
1158
  "input",
1186
- "prologue_declarations",
1187
- "bison_declarations",
1188
- "grammar",
1189
- "epilogue_opt",
1190
1159
  "prologue_declaration",
1160
+ "bison_declaration",
1161
+ "rules_or_grammar_declaration",
1162
+ "epilogue_declaration",
1163
+ "\"-many@prologue_declaration\"",
1164
+ "\"-many@bison_declaration\"",
1165
+ "\"-many1@rules_or_grammar_declaration\"",
1166
+ "\"-option@epilogue_declaration\"",
1191
1167
  "@1",
1192
1168
  "@2",
1193
- "bison_declaration",
1194
1169
  "grammar_declaration",
1195
- "rule_declaration",
1196
- "inline_declaration",
1197
1170
  "variable",
1198
1171
  "value",
1199
- "params",
1200
- "@3",
1201
- "@4",
1202
- "@5",
1203
- "@6",
1172
+ "param",
1173
+ "\"-many1@param\"",
1204
1174
  "symbol_declaration",
1205
- "generic_symlist",
1206
- "@7",
1207
- "@8",
1208
- "@9",
1209
- "@10",
1210
- "@11",
1211
- "@12",
1212
- "@13",
1213
- "@14",
1175
+ "rule_declaration",
1176
+ "inline_declaration",
1177
+ "generic_symbol",
1178
+ "\"-many1@generic_symbol\"",
1214
1179
  "token_declarations",
1215
1180
  "symbol_declarations",
1216
1181
  "token_declarations_for_precedence",
1217
- "token_declaration_list",
1218
1182
  "token_declaration",
1183
+ "\"-many1@token_declaration\"",
1219
1184
  "id",
1220
- "int_opt",
1221
1185
  "alias",
1186
+ "\"-option@INTEGER\"",
1222
1187
  "rule_args",
1223
- "tag_opt",
1224
1188
  "rule_rhs_list",
1225
- "id_colon",
1189
+ "\"-option@TAG\"",
1226
1190
  "rule_rhs",
1191
+ "empty",
1227
1192
  "symbol",
1228
- "named_ref_opt",
1193
+ "named_ref",
1229
1194
  "parameterizing_suffix",
1230
1195
  "parameterizing_args",
1231
- "@15",
1232
- "@16",
1233
- "symbol_declaration_list",
1196
+ "midrule_action",
1197
+ "\"-option@named_ref\"",
1234
1198
  "string_as_id",
1235
- "@17",
1236
- "@18",
1237
- "@19",
1238
- "@20",
1239
- "token_declaration_list_for_precedence",
1240
- "token_declaration_for_precedence",
1241
- "rules_or_grammar_declaration",
1199
+ "\"-many1@symbol\"",
1200
+ "@3",
1201
+ "@4",
1202
+ "\"-many1@id\"",
1242
1203
  "rules",
1204
+ "\"-option@;\"",
1243
1205
  "rhs_list",
1244
1206
  "rhs",
1245
- "@21",
1246
- "@22",
1247
- "@23",
1248
- "generic_symlist_item" ]
1207
+ "@5",
1208
+ "@6",
1209
+ "@7" ]
1249
1210
  Ractor.make_shareable(Racc_token_to_s_table) if defined?(Ractor)
1250
1211
 
1251
1212
  Racc_debug_parser = true
@@ -1254,299 +1215,271 @@ Racc_debug_parser = true
1254
1215
 
1255
1216
  # reduce 0 omitted
1256
1217
 
1257
- # reduce 1 omitted
1218
+ module_eval(<<'.,.,', 'parser.y', 11)
1219
+ def _reduce_1(val, _values, result)
1220
+ result = val[1] ? val[1].unshift(val[0]) : val
1221
+ result
1222
+ end
1223
+ .,.,
1258
1224
 
1259
- # reduce 2 omitted
1225
+ module_eval(<<'.,.,', 'parser.y', 11)
1226
+ def _reduce_2(val, _values, result)
1227
+ result = val[1] ? val[1].unshift(val[0]) : val
1228
+ result
1229
+ end
1230
+ .,.,
1260
1231
 
1261
- # reduce 3 omitted
1232
+ module_eval(<<'.,.,', 'parser.y', 11)
1233
+ def _reduce_3(val, _values, result)
1234
+ result = val[1] ? val[1].unshift(val[0]) : val
1235
+ result
1236
+ end
1237
+ .,.,
1262
1238
 
1263
- module_eval(<<'.,.,', 'parser.y', 14)
1239
+ module_eval(<<'.,.,', 'parser.y', 11)
1264
1240
  def _reduce_4(val, _values, result)
1265
- begin_c_declaration("%}")
1266
- @grammar.prologue_first_lineno = @lexer.line
1267
-
1241
+ result = val[1] ? val[1].unshift(val[0]) : val
1268
1242
  result
1269
1243
  end
1270
1244
  .,.,
1271
1245
 
1272
- module_eval(<<'.,.,', 'parser.y', 19)
1246
+ module_eval(<<'.,.,', 'parser.y', 11)
1273
1247
  def _reduce_5(val, _values, result)
1274
- end_c_declaration
1275
-
1248
+ result = val[1] ? val[1].unshift(val[0]) : val
1276
1249
  result
1277
1250
  end
1278
1251
  .,.,
1279
1252
 
1280
- module_eval(<<'.,.,', 'parser.y', 23)
1253
+ module_eval(<<'.,.,', 'parser.y', 11)
1281
1254
  def _reduce_6(val, _values, result)
1282
- @grammar.prologue = val[2].s_value
1283
-
1255
+ result = val[1] ? val[1].unshift(val[0]) : val
1284
1256
  result
1285
1257
  end
1286
1258
  .,.,
1287
1259
 
1288
1260
  # reduce 7 omitted
1289
1261
 
1290
- module_eval(<<'.,.,', 'parser.y', 27)
1291
- def _reduce_8(val, _values, result)
1292
- result = ""
1293
- result
1294
- end
1295
- .,.,
1262
+ # reduce 8 omitted
1296
1263
 
1297
1264
  # reduce 9 omitted
1298
1265
 
1299
- # reduce 10 omitted
1300
-
1301
- # reduce 11 omitted
1302
-
1303
- # reduce 12 omitted
1266
+ module_eval(<<'.,.,', 'parser.y', 12)
1267
+ def _reduce_10(val, _values, result)
1268
+ begin_c_declaration("%}")
1269
+ @grammar.prologue_first_lineno = @lexer.line
1304
1270
 
1305
- module_eval(<<'.,.,', 'parser.y', 33)
1306
- def _reduce_13(val, _values, result)
1307
- @grammar.expect = val[1]
1308
1271
  result
1309
1272
  end
1310
1273
  .,.,
1311
1274
 
1312
- # reduce 14 omitted
1313
-
1314
- # reduce 15 omitted
1315
-
1316
- module_eval(<<'.,.,', 'parser.y', 38)
1317
- def _reduce_16(val, _values, result)
1318
- val[1].each {|token|
1319
- @grammar.lex_param = Grammar::Code::NoReferenceCode.new(type: :lex_param, token_code: token).token_code.s_value
1320
- }
1275
+ module_eval(<<'.,.,', 'parser.y', 17)
1276
+ def _reduce_11(val, _values, result)
1277
+ end_c_declaration
1321
1278
 
1322
1279
  result
1323
1280
  end
1324
1281
  .,.,
1325
1282
 
1326
- module_eval(<<'.,.,', 'parser.y', 44)
1327
- def _reduce_17(val, _values, result)
1328
- val[1].each {|token|
1329
- @grammar.parse_param = Grammar::Code::NoReferenceCode.new(type: :parse_param, token_code: token).token_code.s_value
1330
- }
1283
+ module_eval(<<'.,.,', 'parser.y', 21)
1284
+ def _reduce_12(val, _values, result)
1285
+ @grammar.prologue = val[2].s_value
1331
1286
 
1332
1287
  result
1333
1288
  end
1334
1289
  .,.,
1335
1290
 
1336
- module_eval(<<'.,.,', 'parser.y', 50)
1337
- def _reduce_18(val, _values, result)
1338
- begin_c_declaration("}")
1291
+ # reduce 13 omitted
1339
1292
 
1293
+ module_eval(<<'.,.,', 'parser.y', 54)
1294
+ def _reduce_14(val, _values, result)
1295
+ result = val[1] ? val[1].unshift(val[0]) : val
1340
1296
  result
1341
1297
  end
1342
1298
  .,.,
1343
1299
 
1344
1300
  module_eval(<<'.,.,', 'parser.y', 54)
1345
- def _reduce_19(val, _values, result)
1346
- end_c_declaration
1301
+ def _reduce_15(val, _values, result)
1302
+ result = val[1] ? val[1].unshift(val[0]) : val
1303
+ result
1304
+ end
1305
+ .,.,
1306
+
1307
+ # reduce 16 omitted
1347
1308
 
1309
+ module_eval(<<'.,.,', 'parser.y', 26)
1310
+ def _reduce_17(val, _values, result)
1311
+ @grammar.expect = val[1]
1348
1312
  result
1349
1313
  end
1350
1314
  .,.,
1351
1315
 
1352
- module_eval(<<'.,.,', 'parser.y', 58)
1316
+ # reduce 18 omitted
1317
+
1318
+ # reduce 19 omitted
1319
+
1320
+ module_eval(<<'.,.,', 'parser.y', 31)
1353
1321
  def _reduce_20(val, _values, result)
1354
- @grammar.add_percent_code(id: val[1], code: val[4])
1322
+ val[1].each {|token|
1323
+ @grammar.lex_param = Grammar::Code::NoReferenceCode.new(type: :lex_param, token_code: token).token_code.s_value
1324
+ }
1355
1325
 
1356
1326
  result
1357
1327
  end
1358
1328
  .,.,
1359
1329
 
1360
- module_eval(<<'.,.,', 'parser.y', 62)
1330
+ module_eval(<<'.,.,', 'parser.y', 37)
1361
1331
  def _reduce_21(val, _values, result)
1362
- begin_c_declaration("}")
1332
+ val[1].each {|token|
1333
+ @grammar.parse_param = Grammar::Code::NoReferenceCode.new(type: :parse_param, token_code: token).token_code.s_value
1334
+ }
1363
1335
 
1364
1336
  result
1365
1337
  end
1366
1338
  .,.,
1367
1339
 
1368
- module_eval(<<'.,.,', 'parser.y', 66)
1340
+ module_eval(<<'.,.,', 'parser.y', 43)
1369
1341
  def _reduce_22(val, _values, result)
1370
- end_c_declaration
1342
+ @grammar.add_percent_code(id: val[1], code: val[2])
1371
1343
 
1372
1344
  result
1373
1345
  end
1374
1346
  .,.,
1375
1347
 
1376
- module_eval(<<'.,.,', 'parser.y', 70)
1348
+ module_eval(<<'.,.,', 'parser.y', 47)
1377
1349
  def _reduce_23(val, _values, result)
1378
- @grammar.initial_action = Grammar::Code::InitialActionCode.new(type: :initial_action, token_code: val[3])
1350
+ @grammar.initial_action = Grammar::Code::InitialActionCode.new(type: :initial_action, token_code: val[1])
1379
1351
 
1380
1352
  result
1381
1353
  end
1382
1354
  .,.,
1383
1355
 
1384
- module_eval(<<'.,.,', 'parser.y', 72)
1356
+ module_eval(<<'.,.,', 'parser.y', 49)
1385
1357
  def _reduce_24(val, _values, result)
1386
1358
  @grammar.no_stdlib = true
1387
1359
  result
1388
1360
  end
1389
1361
  .,.,
1390
1362
 
1391
- # reduce 25 omitted
1392
-
1393
- module_eval(<<'.,.,', 'parser.y', 77)
1394
- def _reduce_26(val, _values, result)
1395
- begin_c_declaration("}")
1396
-
1363
+ module_eval(<<'.,.,', 'parser.y', 50)
1364
+ def _reduce_25(val, _values, result)
1365
+ @grammar.locations = true
1397
1366
  result
1398
1367
  end
1399
1368
  .,.,
1400
1369
 
1401
- module_eval(<<'.,.,', 'parser.y', 81)
1402
- def _reduce_27(val, _values, result)
1403
- end_c_declaration
1370
+ # reduce 26 omitted
1404
1371
 
1372
+ module_eval(<<'.,.,', 'parser.y', 109)
1373
+ def _reduce_27(val, _values, result)
1374
+ result = val[1] ? val[1].unshift(val[0]) : val
1405
1375
  result
1406
1376
  end
1407
1377
  .,.,
1408
1378
 
1409
- module_eval(<<'.,.,', 'parser.y', 85)
1379
+ module_eval(<<'.,.,', 'parser.y', 109)
1410
1380
  def _reduce_28(val, _values, result)
1411
- @grammar.set_union(
1412
- Grammar::Code::NoReferenceCode.new(type: :union, token_code: val[3]),
1413
- val[3].line
1414
- )
1415
-
1381
+ result = val[1] ? val[1].unshift(val[0]) : val
1416
1382
  result
1417
1383
  end
1418
1384
  .,.,
1419
1385
 
1420
- # reduce 29 omitted
1421
-
1422
- module_eval(<<'.,.,', 'parser.y', 93)
1423
- def _reduce_30(val, _values, result)
1424
- begin_c_declaration("}")
1386
+ module_eval(<<'.,.,', 'parser.y', 55)
1387
+ def _reduce_29(val, _values, result)
1388
+ @grammar.set_union(
1389
+ Grammar::Code::NoReferenceCode.new(type: :union, token_code: val[1]),
1390
+ val[1].line
1391
+ )
1425
1392
 
1426
1393
  result
1427
1394
  end
1428
1395
  .,.,
1429
1396
 
1430
- module_eval(<<'.,.,', 'parser.y', 97)
1431
- def _reduce_31(val, _values, result)
1432
- end_c_declaration
1433
-
1434
- result
1435
- end
1436
- .,.,
1397
+ # reduce 30 omitted
1437
1398
 
1438
- module_eval(<<'.,.,', 'parser.y', 101)
1439
- def _reduce_32(val, _values, result)
1440
- @grammar.add_destructor(
1441
- ident_or_tags: val[6],
1442
- token_code: val[3],
1443
- lineno: val[3].line
1444
- )
1399
+ # reduce 31 omitted
1445
1400
 
1446
- result
1447
- end
1448
- .,.,
1401
+ # reduce 32 omitted
1449
1402
 
1450
- module_eval(<<'.,.,', 'parser.y', 109)
1403
+ module_eval(<<'.,.,', 'parser.y', 65)
1451
1404
  def _reduce_33(val, _values, result)
1452
- begin_c_declaration("}")
1405
+ @grammar.add_destructor(
1406
+ ident_or_tags: val[2],
1407
+ token_code: val[1],
1408
+ lineno: val[1].line
1409
+ )
1453
1410
 
1454
1411
  result
1455
1412
  end
1456
1413
  .,.,
1457
1414
 
1458
- module_eval(<<'.,.,', 'parser.y', 113)
1415
+ module_eval(<<'.,.,', 'parser.y', 73)
1459
1416
  def _reduce_34(val, _values, result)
1460
- end_c_declaration
1461
-
1462
- result
1463
- end
1464
- .,.,
1465
-
1466
- module_eval(<<'.,.,', 'parser.y', 117)
1467
- def _reduce_35(val, _values, result)
1468
1417
  @grammar.add_printer(
1469
- ident_or_tags: val[6],
1470
- token_code: val[3],
1471
- lineno: val[3].line
1418
+ ident_or_tags: val[2],
1419
+ token_code: val[1],
1420
+ lineno: val[1].line
1472
1421
  )
1473
1422
 
1474
1423
  result
1475
1424
  end
1476
1425
  .,.,
1477
1426
 
1478
- module_eval(<<'.,.,', 'parser.y', 125)
1479
- def _reduce_36(val, _values, result)
1480
- begin_c_declaration("}")
1481
-
1482
- result
1483
- end
1484
- .,.,
1485
-
1486
- module_eval(<<'.,.,', 'parser.y', 129)
1487
- def _reduce_37(val, _values, result)
1488
- end_c_declaration
1489
-
1490
- result
1491
- end
1492
- .,.,
1493
-
1494
- module_eval(<<'.,.,', 'parser.y', 133)
1495
- def _reduce_38(val, _values, result)
1427
+ module_eval(<<'.,.,', 'parser.y', 81)
1428
+ def _reduce_35(val, _values, result)
1496
1429
  @grammar.add_error_token(
1497
- ident_or_tags: val[6],
1498
- token_code: val[3],
1499
- lineno: val[3].line
1430
+ ident_or_tags: val[2],
1431
+ token_code: val[1],
1432
+ lineno: val[1].line
1500
1433
  )
1501
1434
 
1502
1435
  result
1503
1436
  end
1504
1437
  .,.,
1505
1438
 
1506
- module_eval(<<'.,.,', 'parser.y', 141)
1507
- def _reduce_39(val, _values, result)
1439
+ module_eval(<<'.,.,', 'parser.y', 89)
1440
+ def _reduce_36(val, _values, result)
1508
1441
  @grammar.after_shift = val[1]
1509
1442
 
1510
1443
  result
1511
1444
  end
1512
1445
  .,.,
1513
1446
 
1514
- module_eval(<<'.,.,', 'parser.y', 145)
1515
- def _reduce_40(val, _values, result)
1447
+ module_eval(<<'.,.,', 'parser.y', 93)
1448
+ def _reduce_37(val, _values, result)
1516
1449
  @grammar.before_reduce = val[1]
1517
1450
 
1518
1451
  result
1519
1452
  end
1520
1453
  .,.,
1521
1454
 
1522
- module_eval(<<'.,.,', 'parser.y', 149)
1523
- def _reduce_41(val, _values, result)
1455
+ module_eval(<<'.,.,', 'parser.y', 97)
1456
+ def _reduce_38(val, _values, result)
1524
1457
  @grammar.after_reduce = val[1]
1525
1458
 
1526
1459
  result
1527
1460
  end
1528
1461
  .,.,
1529
1462
 
1530
- module_eval(<<'.,.,', 'parser.y', 153)
1531
- def _reduce_42(val, _values, result)
1463
+ module_eval(<<'.,.,', 'parser.y', 101)
1464
+ def _reduce_39(val, _values, result)
1532
1465
  @grammar.after_shift_error_token = val[1]
1533
1466
 
1534
1467
  result
1535
1468
  end
1536
1469
  .,.,
1537
1470
 
1538
- module_eval(<<'.,.,', 'parser.y', 157)
1539
- def _reduce_43(val, _values, result)
1471
+ module_eval(<<'.,.,', 'parser.y', 105)
1472
+ def _reduce_40(val, _values, result)
1540
1473
  @grammar.after_pop_stack = val[1]
1541
1474
 
1542
1475
  result
1543
1476
  end
1544
1477
  .,.,
1545
1478
 
1546
- # reduce 44 omitted
1479
+ # reduce 41 omitted
1547
1480
 
1548
- module_eval(<<'.,.,', 'parser.y', 163)
1549
- def _reduce_45(val, _values, result)
1481
+ module_eval(<<'.,.,', 'parser.y', 111)
1482
+ def _reduce_42(val, _values, result)
1550
1483
  val[1].each {|hash|
1551
1484
  hash[:tokens].each {|id|
1552
1485
  @grammar.add_type(id: id, tag: hash[:tag])
@@ -1557,8 +1490,8 @@ module_eval(<<'.,.,', 'parser.y', 163)
1557
1490
  end
1558
1491
  .,.,
1559
1492
 
1560
- module_eval(<<'.,.,', 'parser.y', 171)
1561
- def _reduce_46(val, _values, result)
1493
+ module_eval(<<'.,.,', 'parser.y', 119)
1494
+ def _reduce_43(val, _values, result)
1562
1495
  val[1].each {|hash|
1563
1496
  hash[:tokens].each {|id|
1564
1497
  sym = @grammar.add_term(id: id)
@@ -1571,8 +1504,8 @@ module_eval(<<'.,.,', 'parser.y', 171)
1571
1504
  end
1572
1505
  .,.,
1573
1506
 
1574
- module_eval(<<'.,.,', 'parser.y', 181)
1575
- def _reduce_47(val, _values, result)
1507
+ module_eval(<<'.,.,', 'parser.y', 129)
1508
+ def _reduce_44(val, _values, result)
1576
1509
  val[1].each {|hash|
1577
1510
  hash[:tokens].each {|id|
1578
1511
  sym = @grammar.add_term(id: id)
@@ -1585,8 +1518,8 @@ module_eval(<<'.,.,', 'parser.y', 181)
1585
1518
  end
1586
1519
  .,.,
1587
1520
 
1588
- module_eval(<<'.,.,', 'parser.y', 191)
1589
- def _reduce_48(val, _values, result)
1521
+ module_eval(<<'.,.,', 'parser.y', 139)
1522
+ def _reduce_45(val, _values, result)
1590
1523
  val[1].each {|hash|
1591
1524
  hash[:tokens].each {|id|
1592
1525
  sym = @grammar.add_term(id: id)
@@ -1599,8 +1532,8 @@ module_eval(<<'.,.,', 'parser.y', 191)
1599
1532
  end
1600
1533
  .,.,
1601
1534
 
1602
- module_eval(<<'.,.,', 'parser.y', 201)
1603
- def _reduce_49(val, _values, result)
1535
+ module_eval(<<'.,.,', 'parser.y', 149)
1536
+ def _reduce_46(val, _values, result)
1604
1537
  val[1].each {|hash|
1605
1538
  hash[:tokens].each {|id|
1606
1539
  sym = @grammar.add_term(id: id)
@@ -1613,8 +1546,22 @@ module_eval(<<'.,.,', 'parser.y', 201)
1613
1546
  end
1614
1547
  .,.,
1615
1548
 
1616
- module_eval(<<'.,.,', 'parser.y', 212)
1617
- def _reduce_50(val, _values, result)
1549
+ module_eval(<<'.,.,', 'parser.y', 178)
1550
+ def _reduce_47(val, _values, result)
1551
+ result = val[1] ? val[1].unshift(val[0]) : val
1552
+ result
1553
+ end
1554
+ .,.,
1555
+
1556
+ module_eval(<<'.,.,', 'parser.y', 178)
1557
+ def _reduce_48(val, _values, result)
1558
+ result = val[1] ? val[1].unshift(val[0]) : val
1559
+ result
1560
+ end
1561
+ .,.,
1562
+
1563
+ module_eval(<<'.,.,', 'parser.y', 160)
1564
+ def _reduce_49(val, _values, result)
1618
1565
  val[0].each {|token_declaration|
1619
1566
  @grammar.add_term(id: token_declaration[0], alias_name: token_declaration[2], token_id: token_declaration[1], tag: nil, replace: true)
1620
1567
  }
@@ -1623,8 +1570,8 @@ module_eval(<<'.,.,', 'parser.y', 212)
1623
1570
  end
1624
1571
  .,.,
1625
1572
 
1626
- module_eval(<<'.,.,', 'parser.y', 218)
1627
- def _reduce_51(val, _values, result)
1573
+ module_eval(<<'.,.,', 'parser.y', 166)
1574
+ def _reduce_50(val, _values, result)
1628
1575
  val[1].each {|token_declaration|
1629
1576
  @grammar.add_term(id: token_declaration[0], alias_name: token_declaration[2], token_id: token_declaration[1], tag: val[0], replace: true)
1630
1577
  }
@@ -1633,8 +1580,8 @@ module_eval(<<'.,.,', 'parser.y', 218)
1633
1580
  end
1634
1581
  .,.,
1635
1582
 
1636
- module_eval(<<'.,.,', 'parser.y', 224)
1637
- def _reduce_52(val, _values, result)
1583
+ module_eval(<<'.,.,', 'parser.y', 172)
1584
+ def _reduce_51(val, _values, result)
1638
1585
  val[2].each {|token_declaration|
1639
1586
  @grammar.add_term(id: token_declaration[0], alias_name: token_declaration[2], token_id: token_declaration[1], tag: val[1], replace: true)
1640
1587
  }
@@ -1643,61 +1590,64 @@ module_eval(<<'.,.,', 'parser.y', 224)
1643
1590
  end
1644
1591
  .,.,
1645
1592
 
1646
- module_eval(<<'.,.,', 'parser.y', 229)
1647
- def _reduce_53(val, _values, result)
1648
- result = [val[0]]
1649
- result
1650
- end
1651
- .,.,
1593
+ # reduce 52 omitted
1594
+
1595
+ # reduce 53 omitted
1652
1596
 
1653
- module_eval(<<'.,.,', 'parser.y', 230)
1597
+ module_eval(<<'.,.,', 'parser.y', 177)
1654
1598
  def _reduce_54(val, _values, result)
1655
- result = val[0].append(val[1])
1599
+ result = val
1656
1600
  result
1657
1601
  end
1658
1602
  .,.,
1659
1603
 
1660
- module_eval(<<'.,.,', 'parser.y', 232)
1661
- def _reduce_55(val, _values, result)
1662
- result = val
1604
+ # reduce 55 omitted
1605
+
1606
+ # reduce 56 omitted
1607
+
1608
+ module_eval(<<'.,.,', 'parser.y', 181)
1609
+ def _reduce_57(val, _values, result)
1610
+ rule = Grammar::ParameterizingRule::Rule.new(val[1].s_value, val[3], val[7], tag: val[5])
1611
+ @grammar.add_parameterizing_rule(rule)
1612
+
1663
1613
  result
1664
1614
  end
1665
1615
  .,.,
1666
1616
 
1667
- module_eval(<<'.,.,', 'parser.y', 236)
1668
- def _reduce_56(val, _values, result)
1669
- rule = Grammar::ParameterizingRule::Rule.new(val[1].s_value, val[3], val[7], tag: val[5])
1617
+ module_eval(<<'.,.,', 'parser.y', 187)
1618
+ def _reduce_58(val, _values, result)
1619
+ rule = Grammar::ParameterizingRule::Rule.new(val[2].s_value, [], val[4], is_inline: true)
1670
1620
  @grammar.add_parameterizing_rule(rule)
1671
1621
 
1672
1622
  result
1673
1623
  end
1674
1624
  .,.,
1675
1625
 
1676
- module_eval(<<'.,.,', 'parser.y', 242)
1677
- def _reduce_57(val, _values, result)
1678
- rule = Grammar::ParameterizingRule::Rule.new(val[2].s_value, [], val[4], is_inline: true)
1626
+ module_eval(<<'.,.,', 'parser.y', 192)
1627
+ def _reduce_59(val, _values, result)
1628
+ rule = Grammar::ParameterizingRule::Rule.new(val[2].s_value, val[4], val[7], is_inline: true)
1679
1629
  @grammar.add_parameterizing_rule(rule)
1680
1630
 
1681
1631
  result
1682
1632
  end
1683
1633
  .,.,
1684
1634
 
1685
- module_eval(<<'.,.,', 'parser.y', 246)
1686
- def _reduce_58(val, _values, result)
1635
+ module_eval(<<'.,.,', 'parser.y', 196)
1636
+ def _reduce_60(val, _values, result)
1687
1637
  result = [val[0]]
1688
1638
  result
1689
1639
  end
1690
1640
  .,.,
1691
1641
 
1692
- module_eval(<<'.,.,', 'parser.y', 247)
1693
- def _reduce_59(val, _values, result)
1642
+ module_eval(<<'.,.,', 'parser.y', 197)
1643
+ def _reduce_61(val, _values, result)
1694
1644
  result = val[0].append(val[2])
1695
1645
  result
1696
1646
  end
1697
1647
  .,.,
1698
1648
 
1699
- module_eval(<<'.,.,', 'parser.y', 251)
1700
- def _reduce_60(val, _values, result)
1649
+ module_eval(<<'.,.,', 'parser.y', 201)
1650
+ def _reduce_62(val, _values, result)
1701
1651
  builder = val[0]
1702
1652
  result = [builder]
1703
1653
 
@@ -1705,8 +1655,8 @@ module_eval(<<'.,.,', 'parser.y', 251)
1705
1655
  end
1706
1656
  .,.,
1707
1657
 
1708
- module_eval(<<'.,.,', 'parser.y', 256)
1709
- def _reduce_61(val, _values, result)
1658
+ module_eval(<<'.,.,', 'parser.y', 206)
1659
+ def _reduce_63(val, _values, result)
1710
1660
  builder = val[2]
1711
1661
  result = val[0].append(builder)
1712
1662
 
@@ -1714,17 +1664,12 @@ module_eval(<<'.,.,', 'parser.y', 256)
1714
1664
  end
1715
1665
  .,.,
1716
1666
 
1717
- module_eval(<<'.,.,', 'parser.y', 262)
1718
- def _reduce_62(val, _values, result)
1719
- reset_precs
1720
- result = Grammar::ParameterizingRule::Rhs.new
1667
+ # reduce 64 omitted
1721
1668
 
1722
- result
1723
- end
1724
- .,.,
1669
+ # reduce 65 omitted
1725
1670
 
1726
- module_eval(<<'.,.,', 'parser.y', 267)
1727
- def _reduce_63(val, _values, result)
1671
+ module_eval(<<'.,.,', 'parser.y', 212)
1672
+ def _reduce_66(val, _values, result)
1728
1673
  reset_precs
1729
1674
  result = Grammar::ParameterizingRule::Rhs.new
1730
1675
 
@@ -1732,8 +1677,8 @@ module_eval(<<'.,.,', 'parser.y', 267)
1732
1677
  end
1733
1678
  .,.,
1734
1679
 
1735
- module_eval(<<'.,.,', 'parser.y', 272)
1736
- def _reduce_64(val, _values, result)
1680
+ module_eval(<<'.,.,', 'parser.y', 217)
1681
+ def _reduce_67(val, _values, result)
1737
1682
  token = val[1]
1738
1683
  token.alias_name = val[2]
1739
1684
  builder = val[0]
@@ -1744,8 +1689,8 @@ module_eval(<<'.,.,', 'parser.y', 272)
1744
1689
  end
1745
1690
  .,.,
1746
1691
 
1747
- module_eval(<<'.,.,', 'parser.y', 280)
1748
- def _reduce_65(val, _values, result)
1692
+ module_eval(<<'.,.,', 'parser.y', 225)
1693
+ def _reduce_68(val, _values, result)
1749
1694
  builder = val[0]
1750
1695
  builder.symbols << Lrama::Lexer::Token::InstantiateRule.new(s_value: val[2], location: @lexer.location, args: [val[1]])
1751
1696
  result = builder
@@ -1754,8 +1699,8 @@ module_eval(<<'.,.,', 'parser.y', 280)
1754
1699
  end
1755
1700
  .,.,
1756
1701
 
1757
- module_eval(<<'.,.,', 'parser.y', 286)
1758
- def _reduce_66(val, _values, result)
1702
+ module_eval(<<'.,.,', 'parser.y', 231)
1703
+ def _reduce_69(val, _values, result)
1759
1704
  builder = val[0]
1760
1705
  builder.symbols << Lrama::Lexer::Token::InstantiateRule.new(s_value: val[1].s_value, location: @lexer.location, args: val[3], lhs_tag: val[5])
1761
1706
  result = builder
@@ -1764,30 +1709,10 @@ module_eval(<<'.,.,', 'parser.y', 286)
1764
1709
  end
1765
1710
  .,.,
1766
1711
 
1767
- module_eval(<<'.,.,', 'parser.y', 292)
1768
- def _reduce_67(val, _values, result)
1769
- if @prec_seen
1770
- on_action_error("multiple User_code after %prec", val[0]) if @code_after_prec
1771
- @code_after_prec = true
1772
- end
1773
- begin_c_declaration("}")
1774
-
1775
- result
1776
- end
1777
- .,.,
1778
-
1779
- module_eval(<<'.,.,', 'parser.y', 300)
1780
- def _reduce_68(val, _values, result)
1781
- end_c_declaration
1782
-
1783
- result
1784
- end
1785
- .,.,
1786
-
1787
- module_eval(<<'.,.,', 'parser.y', 304)
1788
- def _reduce_69(val, _values, result)
1789
- user_code = val[3]
1790
- user_code.alias_name = val[6]
1712
+ module_eval(<<'.,.,', 'parser.y', 237)
1713
+ def _reduce_70(val, _values, result)
1714
+ user_code = val[1]
1715
+ user_code.alias_name = val[2]
1791
1716
  builder = val[0]
1792
1717
  builder.user_code = user_code
1793
1718
  result = builder
@@ -1796,8 +1721,8 @@ module_eval(<<'.,.,', 'parser.y', 304)
1796
1721
  end
1797
1722
  .,.,
1798
1723
 
1799
- module_eval(<<'.,.,', 'parser.y', 312)
1800
- def _reduce_70(val, _values, result)
1724
+ module_eval(<<'.,.,', 'parser.y', 245)
1725
+ def _reduce_71(val, _values, result)
1801
1726
  sym = @grammar.find_symbol_by_id!(val[2])
1802
1727
  @prec_seen = true
1803
1728
  builder = val[0]
@@ -1808,168 +1733,137 @@ module_eval(<<'.,.,', 'parser.y', 312)
1808
1733
  end
1809
1734
  .,.,
1810
1735
 
1811
- # reduce 71 omitted
1812
-
1813
1736
  # reduce 72 omitted
1814
1737
 
1815
- # reduce 73 omitted
1738
+ module_eval(<<'.,.,', 'parser.y', 253)
1739
+ def _reduce_73(val, _values, result)
1740
+ result = val[0].s_value
1741
+ result
1742
+ end
1743
+ .,.,
1816
1744
 
1817
- # reduce 74 omitted
1745
+ module_eval(<<'.,.,', 'parser.y', 260)
1746
+ def _reduce_74(val, _values, result)
1747
+ result = val[1] ? val[1].unshift(val[0]) : val
1748
+ result
1749
+ end
1750
+ .,.,
1818
1751
 
1819
- module_eval(<<'.,.,', 'parser.y', 327)
1752
+ module_eval(<<'.,.,', 'parser.y', 260)
1820
1753
  def _reduce_75(val, _values, result)
1821
- result = [{tag: nil, tokens: val[0]}]
1822
-
1754
+ result = val[1] ? val[1].unshift(val[0]) : val
1823
1755
  result
1824
1756
  end
1825
1757
  .,.,
1826
1758
 
1827
- module_eval(<<'.,.,', 'parser.y', 331)
1759
+ module_eval(<<'.,.,', 'parser.y', 255)
1828
1760
  def _reduce_76(val, _values, result)
1829
- result = [{tag: val[0], tokens: val[1]}]
1830
-
1761
+ result = [{tag: nil, tokens: val[0]}]
1831
1762
  result
1832
1763
  end
1833
1764
  .,.,
1834
1765
 
1835
- module_eval(<<'.,.,', 'parser.y', 335)
1766
+ module_eval(<<'.,.,', 'parser.y', 256)
1836
1767
  def _reduce_77(val, _values, result)
1837
- result = val[0].append({tag: val[1], tokens: val[2]})
1838
-
1768
+ result = [{tag: val[0], tokens: val[1]}]
1839
1769
  result
1840
1770
  end
1841
1771
  .,.,
1842
1772
 
1843
- module_eval(<<'.,.,', 'parser.y', 338)
1773
+ module_eval(<<'.,.,', 'parser.y', 257)
1844
1774
  def _reduce_78(val, _values, result)
1845
- result = [val[0]]
1775
+ result = val[0].append({tag: val[1], tokens: val[2]})
1846
1776
  result
1847
1777
  end
1848
1778
  .,.,
1849
1779
 
1850
- module_eval(<<'.,.,', 'parser.y', 339)
1851
- def _reduce_79(val, _values, result)
1852
- result = val[0].append(val[1])
1853
- result
1854
- end
1855
- .,.,
1780
+ # reduce 79 omitted
1856
1781
 
1857
1782
  # reduce 80 omitted
1858
1783
 
1859
- # reduce 81 omitted
1784
+ module_eval(<<'.,.,', 'parser.y', 263)
1785
+ def _reduce_81(val, _values, result)
1786
+ begin_c_declaration("}")
1787
+
1788
+ result
1789
+ end
1790
+ .,.,
1860
1791
 
1861
- module_eval(<<'.,.,', 'parser.y', 346)
1792
+ module_eval(<<'.,.,', 'parser.y', 267)
1862
1793
  def _reduce_82(val, _values, result)
1863
- begin_c_declaration("}")
1794
+ end_c_declaration
1864
1795
 
1865
1796
  result
1866
1797
  end
1867
1798
  .,.,
1868
1799
 
1869
- module_eval(<<'.,.,', 'parser.y', 350)
1800
+ module_eval(<<'.,.,', 'parser.y', 271)
1870
1801
  def _reduce_83(val, _values, result)
1871
- end_c_declaration
1802
+ result = val[2]
1872
1803
 
1873
1804
  result
1874
1805
  end
1875
1806
  .,.,
1876
1807
 
1877
- module_eval(<<'.,.,', 'parser.y', 354)
1808
+ module_eval(<<'.,.,', 'parser.y', 279)
1878
1809
  def _reduce_84(val, _values, result)
1879
- result = val[0].append(val[3])
1880
-
1810
+ result = val[1] ? val[1].unshift(val[0]) : val
1881
1811
  result
1882
1812
  end
1883
1813
  .,.,
1884
1814
 
1885
- module_eval(<<'.,.,', 'parser.y', 358)
1815
+ module_eval(<<'.,.,', 'parser.y', 279)
1886
1816
  def _reduce_85(val, _values, result)
1887
- begin_c_declaration("}")
1888
-
1817
+ result = val[1] ? val[1].unshift(val[0]) : val
1889
1818
  result
1890
1819
  end
1891
1820
  .,.,
1892
1821
 
1893
- module_eval(<<'.,.,', 'parser.y', 362)
1822
+ module_eval(<<'.,.,', 'parser.y', 274)
1894
1823
  def _reduce_86(val, _values, result)
1895
- end_c_declaration
1896
-
1824
+ result = [{tag: nil, tokens: val[0]}]
1897
1825
  result
1898
1826
  end
1899
1827
  .,.,
1900
1828
 
1901
- module_eval(<<'.,.,', 'parser.y', 366)
1829
+ module_eval(<<'.,.,', 'parser.y', 275)
1902
1830
  def _reduce_87(val, _values, result)
1903
- result = [val[2]]
1904
-
1831
+ result = [{tag: val[0], tokens: val[1]}]
1905
1832
  result
1906
1833
  end
1907
1834
  .,.,
1908
1835
 
1909
- module_eval(<<'.,.,', 'parser.y', 371)
1836
+ module_eval(<<'.,.,', 'parser.y', 276)
1910
1837
  def _reduce_88(val, _values, result)
1911
- result = [{tag: nil, tokens: val[0]}]
1912
-
1838
+ result = val[0].append({tag: val[1], tokens: val[2]})
1913
1839
  result
1914
1840
  end
1915
1841
  .,.,
1916
1842
 
1917
- module_eval(<<'.,.,', 'parser.y', 375)
1843
+ module_eval(<<'.,.,', 'parser.y', 278)
1918
1844
  def _reduce_89(val, _values, result)
1919
- result = [{tag: val[0], tokens: val[1]}]
1920
-
1845
+ on_action_error("ident after %prec", val[0]) if @prec_seen
1921
1846
  result
1922
1847
  end
1923
1848
  .,.,
1924
1849
 
1925
- module_eval(<<'.,.,', 'parser.y', 379)
1850
+ module_eval(<<'.,.,', 'parser.y', 279)
1926
1851
  def _reduce_90(val, _values, result)
1927
- result = val[0].append({tag: val[1], tokens: val[2]})
1928
-
1852
+ on_action_error("char after %prec", val[0]) if @prec_seen
1929
1853
  result
1930
1854
  end
1931
1855
  .,.,
1932
1856
 
1933
- module_eval(<<'.,.,', 'parser.y', 382)
1934
- def _reduce_91(val, _values, result)
1935
- result = [val[0]]
1936
- result
1937
- end
1938
- .,.,
1857
+ # reduce 91 omitted
1939
1858
 
1940
- module_eval(<<'.,.,', 'parser.y', 383)
1941
- def _reduce_92(val, _values, result)
1942
- result = val[0].append(val[1])
1943
- result
1944
- end
1945
- .,.,
1859
+ # reduce 92 omitted
1946
1860
 
1947
1861
  # reduce 93 omitted
1948
1862
 
1949
- module_eval(<<'.,.,', 'parser.y', 387)
1950
- def _reduce_94(val, _values, result)
1951
- on_action_error("ident after %prec", val[0]) if @prec_seen
1952
- result
1953
- end
1954
- .,.,
1863
+ # reduce 94 omitted
1955
1864
 
1956
- module_eval(<<'.,.,', 'parser.y', 388)
1865
+ module_eval(<<'.,.,', 'parser.y', 287)
1957
1866
  def _reduce_95(val, _values, result)
1958
- on_action_error("char after %prec", val[0]) if @prec_seen
1959
- result
1960
- end
1961
- .,.,
1962
-
1963
- # reduce 96 omitted
1964
-
1965
- # reduce 97 omitted
1966
-
1967
- # reduce 98 omitted
1968
-
1969
- # reduce 99 omitted
1970
-
1971
- module_eval(<<'.,.,', 'parser.y', 398)
1972
- def _reduce_100(val, _values, result)
1973
1867
  lhs = val[0]
1974
1868
  lhs.alias_name = val[1]
1975
1869
  val[3].each do |builder|
@@ -1982,8 +1876,8 @@ module_eval(<<'.,.,', 'parser.y', 398)
1982
1876
  end
1983
1877
  .,.,
1984
1878
 
1985
- module_eval(<<'.,.,', 'parser.y', 409)
1986
- def _reduce_101(val, _values, result)
1879
+ module_eval(<<'.,.,', 'parser.y', 298)
1880
+ def _reduce_96(val, _values, result)
1987
1881
  builder = val[0]
1988
1882
  if !builder.line
1989
1883
  builder.line = @lexer.line - 1
@@ -1994,8 +1888,8 @@ module_eval(<<'.,.,', 'parser.y', 409)
1994
1888
  end
1995
1889
  .,.,
1996
1890
 
1997
- module_eval(<<'.,.,', 'parser.y', 417)
1998
- def _reduce_102(val, _values, result)
1891
+ module_eval(<<'.,.,', 'parser.y', 306)
1892
+ def _reduce_97(val, _values, result)
1999
1893
  builder = val[2]
2000
1894
  if !builder.line
2001
1895
  builder.line = @lexer.line - 1
@@ -2006,28 +1900,17 @@ module_eval(<<'.,.,', 'parser.y', 417)
2006
1900
  end
2007
1901
  .,.,
2008
1902
 
2009
- # reduce 103 omitted
2010
-
2011
- module_eval(<<'.,.,', 'parser.y', 427)
2012
- def _reduce_104(val, _values, result)
2013
- reset_precs
2014
- result = Grammar::RuleBuilder.new(@rule_counter, @midrule_action_counter)
2015
-
2016
- result
2017
- end
2018
- .,.,
2019
-
2020
- module_eval(<<'.,.,', 'parser.y', 432)
2021
- def _reduce_105(val, _values, result)
1903
+ module_eval(<<'.,.,', 'parser.y', 315)
1904
+ def _reduce_98(val, _values, result)
2022
1905
  reset_precs
2023
- result = Grammar::RuleBuilder.new(@rule_counter, @midrule_action_counter)
1906
+ result = @grammar.create_rule_builder(@rule_counter, @midrule_action_counter)
2024
1907
 
2025
1908
  result
2026
1909
  end
2027
1910
  .,.,
2028
1911
 
2029
- module_eval(<<'.,.,', 'parser.y', 437)
2030
- def _reduce_106(val, _values, result)
1912
+ module_eval(<<'.,.,', 'parser.y', 320)
1913
+ def _reduce_99(val, _values, result)
2031
1914
  token = val[1]
2032
1915
  token.alias_name = val[2]
2033
1916
  builder = val[0]
@@ -2038,9 +1921,9 @@ module_eval(<<'.,.,', 'parser.y', 437)
2038
1921
  end
2039
1922
  .,.,
2040
1923
 
2041
- module_eval(<<'.,.,', 'parser.y', 445)
2042
- def _reduce_107(val, _values, result)
2043
- token = Lrama::Lexer::Token::InstantiateRule.new(s_value: val[2], location: @lexer.location, args: [val[1]], lhs_tag: val[3])
1924
+ module_eval(<<'.,.,', 'parser.y', 328)
1925
+ def _reduce_100(val, _values, result)
1926
+ token = Lrama::Lexer::Token::InstantiateRule.new(s_value: val[2], alias_name: val[3], location: @lexer.location, args: [val[1]], lhs_tag: val[4])
2044
1927
  builder = val[0]
2045
1928
  builder.add_rhs(token)
2046
1929
  builder.line = val[1].first_line
@@ -2050,9 +1933,9 @@ module_eval(<<'.,.,', 'parser.y', 445)
2050
1933
  end
2051
1934
  .,.,
2052
1935
 
2053
- module_eval(<<'.,.,', 'parser.y', 453)
2054
- def _reduce_108(val, _values, result)
2055
- token = Lrama::Lexer::Token::InstantiateRule.new(s_value: val[1].s_value, location: @lexer.location, args: val[3], lhs_tag: val[5])
1936
+ module_eval(<<'.,.,', 'parser.y', 336)
1937
+ def _reduce_101(val, _values, result)
1938
+ token = Lrama::Lexer::Token::InstantiateRule.new(s_value: val[1].s_value, alias_name: val[5], location: @lexer.location, args: val[3], lhs_tag: val[6])
2056
1939
  builder = val[0]
2057
1940
  builder.add_rhs(token)
2058
1941
  builder.line = val[1].first_line
@@ -2062,31 +1945,11 @@ module_eval(<<'.,.,', 'parser.y', 453)
2062
1945
  end
2063
1946
  .,.,
2064
1947
 
2065
- module_eval(<<'.,.,', 'parser.y', 461)
2066
- def _reduce_109(val, _values, result)
2067
- if @prec_seen
2068
- on_action_error("multiple User_code after %prec", val[0]) if @code_after_prec
2069
- @code_after_prec = true
2070
- end
2071
- begin_c_declaration("}")
2072
-
2073
- result
2074
- end
2075
- .,.,
2076
-
2077
- module_eval(<<'.,.,', 'parser.y', 469)
2078
- def _reduce_110(val, _values, result)
2079
- end_c_declaration
2080
-
2081
- result
2082
- end
2083
- .,.,
2084
-
2085
- module_eval(<<'.,.,', 'parser.y', 473)
2086
- def _reduce_111(val, _values, result)
2087
- user_code = val[3]
2088
- user_code.alias_name = val[6]
2089
- user_code.tag = val[7]
1948
+ module_eval(<<'.,.,', 'parser.y', 344)
1949
+ def _reduce_102(val, _values, result)
1950
+ user_code = val[1]
1951
+ user_code.alias_name = val[2]
1952
+ user_code.tag = val[3]
2090
1953
  builder = val[0]
2091
1954
  builder.user_code = user_code
2092
1955
  result = builder
@@ -2095,8 +1958,8 @@ module_eval(<<'.,.,', 'parser.y', 473)
2095
1958
  end
2096
1959
  .,.,
2097
1960
 
2098
- module_eval(<<'.,.,', 'parser.y', 482)
2099
- def _reduce_112(val, _values, result)
1961
+ module_eval(<<'.,.,', 'parser.y', 353)
1962
+ def _reduce_103(val, _values, result)
2100
1963
  sym = @grammar.find_symbol_by_id!(val[2])
2101
1964
  @prec_seen = true
2102
1965
  builder = val[0]
@@ -2107,125 +1970,133 @@ module_eval(<<'.,.,', 'parser.y', 482)
2107
1970
  end
2108
1971
  .,.,
2109
1972
 
2110
- module_eval(<<'.,.,', 'parser.y', 489)
2111
- def _reduce_113(val, _values, result)
1973
+ module_eval(<<'.,.,', 'parser.y', 360)
1974
+ def _reduce_104(val, _values, result)
2112
1975
  result = "option"
2113
1976
  result
2114
1977
  end
2115
1978
  .,.,
2116
1979
 
2117
- module_eval(<<'.,.,', 'parser.y', 490)
2118
- def _reduce_114(val, _values, result)
1980
+ module_eval(<<'.,.,', 'parser.y', 361)
1981
+ def _reduce_105(val, _values, result)
2119
1982
  result = "nonempty_list"
2120
1983
  result
2121
1984
  end
2122
1985
  .,.,
2123
1986
 
2124
- module_eval(<<'.,.,', 'parser.y', 491)
2125
- def _reduce_115(val, _values, result)
1987
+ module_eval(<<'.,.,', 'parser.y', 362)
1988
+ def _reduce_106(val, _values, result)
2126
1989
  result = "list"
2127
1990
  result
2128
1991
  end
2129
1992
  .,.,
2130
1993
 
2131
- module_eval(<<'.,.,', 'parser.y', 493)
2132
- def _reduce_116(val, _values, result)
1994
+ module_eval(<<'.,.,', 'parser.y', 364)
1995
+ def _reduce_107(val, _values, result)
2133
1996
  result = [val[0]]
2134
1997
  result
2135
1998
  end
2136
1999
  .,.,
2137
2000
 
2138
- module_eval(<<'.,.,', 'parser.y', 494)
2139
- def _reduce_117(val, _values, result)
2001
+ module_eval(<<'.,.,', 'parser.y', 365)
2002
+ def _reduce_108(val, _values, result)
2140
2003
  result = val[0].append(val[2])
2141
2004
  result
2142
2005
  end
2143
2006
  .,.,
2144
2007
 
2145
- module_eval(<<'.,.,', 'parser.y', 495)
2146
- def _reduce_118(val, _values, result)
2008
+ module_eval(<<'.,.,', 'parser.y', 366)
2009
+ def _reduce_109(val, _values, result)
2147
2010
  result = [Lrama::Lexer::Token::InstantiateRule.new(s_value: val[1].s_value, location: @lexer.location, args: val[0])]
2148
2011
  result
2149
2012
  end
2150
2013
  .,.,
2151
2014
 
2152
- module_eval(<<'.,.,', 'parser.y', 496)
2153
- def _reduce_119(val, _values, result)
2015
+ module_eval(<<'.,.,', 'parser.y', 367)
2016
+ def _reduce_110(val, _values, result)
2154
2017
  result = [Lrama::Lexer::Token::InstantiateRule.new(s_value: val[0].s_value, location: @lexer.location, args: val[2])]
2155
2018
  result
2156
2019
  end
2157
2020
  .,.,
2158
2021
 
2159
- # reduce 120 omitted
2022
+ module_eval(<<'.,.,', 'parser.y', 371)
2023
+ def _reduce_111(val, _values, result)
2024
+ if @prec_seen
2025
+ on_action_error("multiple User_code after %prec", val[0]) if @code_after_prec
2026
+ @code_after_prec = true
2027
+ end
2028
+ begin_c_declaration("}")
2160
2029
 
2161
- module_eval(<<'.,.,', 'parser.y', 499)
2162
- def _reduce_121(val, _values, result)
2163
- result = val[1].s_value
2164
2030
  result
2165
2031
  end
2166
2032
  .,.,
2167
2033
 
2168
- # reduce 122 omitted
2169
-
2170
- # reduce 123 omitted
2171
-
2172
- module_eval(<<'.,.,', 'parser.y', 506)
2173
- def _reduce_124(val, _values, result)
2174
- begin_c_declaration('\Z')
2175
- @grammar.epilogue_first_lineno = @lexer.line + 1
2034
+ module_eval(<<'.,.,', 'parser.y', 379)
2035
+ def _reduce_112(val, _values, result)
2036
+ end_c_declaration
2176
2037
 
2177
2038
  result
2178
2039
  end
2179
2040
  .,.,
2180
2041
 
2181
- module_eval(<<'.,.,', 'parser.y', 511)
2182
- def _reduce_125(val, _values, result)
2183
- end_c_declaration
2184
- @grammar.epilogue = val[2].s_value
2042
+ module_eval(<<'.,.,', 'parser.y', 383)
2043
+ def _reduce_113(val, _values, result)
2044
+ result = val[2]
2185
2045
 
2186
2046
  result
2187
2047
  end
2188
2048
  .,.,
2189
2049
 
2190
- # reduce 126 omitted
2191
-
2192
- # reduce 127 omitted
2193
-
2194
- # reduce 128 omitted
2195
-
2196
- # reduce 129 omitted
2050
+ module_eval(<<'.,.,', 'parser.y', 386)
2051
+ def _reduce_114(val, _values, result)
2052
+ result = val[1].s_value
2053
+ result
2054
+ end
2055
+ .,.,
2197
2056
 
2198
- # reduce 130 omitted
2057
+ module_eval(<<'.,.,', 'parser.y', 390)
2058
+ def _reduce_115(val, _values, result)
2059
+ begin_c_declaration('\Z')
2060
+ @grammar.epilogue_first_lineno = @lexer.line + 1
2199
2061
 
2200
- module_eval(<<'.,.,', 'parser.y', 522)
2201
- def _reduce_131(val, _values, result)
2202
- result = [val[0]]
2203
2062
  result
2204
2063
  end
2205
2064
  .,.,
2206
2065
 
2207
- module_eval(<<'.,.,', 'parser.y', 523)
2208
- def _reduce_132(val, _values, result)
2209
- result = val[0].append(val[1])
2066
+ module_eval(<<'.,.,', 'parser.y', 395)
2067
+ def _reduce_116(val, _values, result)
2068
+ end_c_declaration
2069
+ @grammar.epilogue = val[2].s_value
2070
+
2210
2071
  result
2211
2072
  end
2212
2073
  .,.,
2213
2074
 
2214
- # reduce 133 omitted
2075
+ # reduce 117 omitted
2076
+
2077
+ # reduce 118 omitted
2215
2078
 
2216
- # reduce 134 omitted
2079
+ # reduce 119 omitted
2217
2080
 
2218
- module_eval(<<'.,.,', 'parser.y', 528)
2219
- def _reduce_135(val, _values, result)
2081
+ # reduce 120 omitted
2082
+
2083
+ # reduce 121 omitted
2084
+
2085
+ # reduce 122 omitted
2086
+
2087
+ # reduce 123 omitted
2088
+
2089
+ # reduce 124 omitted
2090
+
2091
+ # reduce 125 omitted
2092
+
2093
+ module_eval(<<'.,.,', 'parser.y', 412)
2094
+ def _reduce_126(val, _values, result)
2220
2095
  result = Lrama::Lexer::Token::Ident.new(s_value: val[0])
2221
2096
  result
2222
2097
  end
2223
2098
  .,.,
2224
2099
 
2225
- # reduce 136 omitted
2226
-
2227
- # reduce 137 omitted
2228
-
2229
2100
  def _reduce_none(val, _values, result)
2230
2101
  val[0]
2231
2102
  end