lrama 0.5.7 → 0.5.9

Sign up to get free protection for your applications and to get access to all the features.
data/lib/lrama/parser.rb CHANGED
@@ -1,14 +1,13 @@
1
1
  #
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by Racc 1.7.1
4
- # from Racc grammar file "".
3
+ # This file is automatically generated by Racc 1.7.3
4
+ # from Racc grammar file "parser.y".
5
5
  #
6
6
 
7
7
  ###### racc/parser.rb begin
8
8
  unless $".find {|p| p.end_with?('/racc/parser.rb')}
9
9
  $".push "#{__dir__}/racc/parser.rb"
10
10
  self.class.module_eval(<<'...end racc/parser.rb/module_eval...', 'racc/parser.rb', 1)
11
- # frozen_string_literal: false
12
11
  #--
13
12
  # Copyright (c) 1999-2006 Minero Aoki
14
13
  #
@@ -22,20 +21,9 @@ self.class.module_eval(<<'...end racc/parser.rb/module_eval...', 'racc/parser.rb
22
21
 
23
22
  unless $".find {|p| p.end_with?('/racc/info.rb')}
24
23
  $".push "#{__dir__}/racc/info.rb"
25
- #--
26
- #
27
- #
28
- #
29
- # Copyright (c) 1999-2006 Minero Aoki
30
- #
31
- # This program is free software.
32
- # You can distribute/modify this program under the same terms of ruby.
33
- # see the file "COPYING".
34
- #
35
- #++
36
24
 
37
25
  module Racc
38
- VERSION = '1.7.1'
26
+ VERSION = '1.7.3'
39
27
  Version = VERSION
40
28
  Copyright = 'Copyright (c) 1999-2006 Minero Aoki'
41
29
  end
@@ -84,10 +72,12 @@ end
84
72
  # [-v, --verbose]
85
73
  # verbose mode. create +filename+.output file, like yacc's y.output file.
86
74
  # [-g, --debug]
87
- # add debug code to parser class. To display debuggin information,
75
+ # add debug code to parser class. To display debugging information,
88
76
  # use this '-g' option and set @yydebug true in parser class.
89
77
  # [-E, --embedded]
90
78
  # Output parser which doesn't need runtime files (racc/parser.rb).
79
+ # [-F, --frozen]
80
+ # Output parser which declares frozen_string_literals: true
91
81
  # [-C, --check-only]
92
82
  # Check syntax of racc grammar file and quit.
93
83
  # [-S, --output-status]
@@ -566,7 +556,7 @@ module Racc
566
556
  #
567
557
  # If this method returns, parsers enter "error recovering mode".
568
558
  def on_error(t, val, vstack)
569
- raise ParseError, sprintf("\nparse error on value %s (%s)",
559
+ raise ParseError, sprintf("parse error on value %s (%s)",
570
560
  val.inspect, token_to_str(t) || '?')
571
561
  end
572
562
 
@@ -668,12 +658,14 @@ end
668
658
  module Lrama
669
659
  class Parser < Racc::Parser
670
660
 
671
- module_eval(<<'...end parser.y/module_eval...', 'parser.y', 387)
661
+ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 383)
672
662
 
673
663
  include Lrama::Report::Duration
674
664
 
675
- def initialize(text)
665
+ def initialize(text, path, debug = false)
676
666
  @text = text
667
+ @path = path
668
+ @yydebug = debug
677
669
  end
678
670
 
679
671
  def parse
@@ -681,8 +673,8 @@ def parse
681
673
  @lexer = Lrama::Lexer.new(@text)
682
674
  @grammar = Lrama::Grammar.new
683
675
  @precedence_number = 0
676
+ reset_precs
684
677
  do_parse
685
- @grammar.extract_references
686
678
  @grammar.prepare
687
679
  @grammar.compute_nullable
688
680
  @grammar.compute_first_set
@@ -696,291 +688,334 @@ def next_token
696
688
  end
697
689
 
698
690
  def on_error(error_token_id, error_value, value_stack)
699
- raise ParseError, sprintf("\n%d:%d: parse error on value %s (%s)",
700
- @lexer.line, @lexer.column, error_value.inspect, token_to_str(error_token_id) || '?')
691
+ if error_value.respond_to?(:line) && error_value.respond_to?(:column)
692
+ line = error_value.line
693
+ first_column = error_value.column
694
+ else
695
+ line = @lexer.line
696
+ first_column = @lexer.head_column
697
+ end
698
+
699
+ raise ParseError, <<~ERROR
700
+ #{@path}:#{line}:#{first_column}: parse error on value #{error_value.inspect} (#{token_to_str(error_token_id) || '?'})
701
+ #{@text.split("\n")[line - 1]}
702
+ #{carrets(first_column)}
703
+ ERROR
704
+ end
705
+
706
+ private
707
+
708
+ def reset_precs
709
+ @prec_seen = false
710
+ @code_after_prec = false
711
+ end
712
+
713
+ def begin_c_declaration(end_symbol)
714
+ @lexer.status = :c_declaration
715
+ @lexer.end_symbol = end_symbol
716
+ end
717
+
718
+ def end_c_declaration
719
+ @lexer.status = :initial
720
+ @lexer.end_symbol = nil
721
+ end
722
+
723
+ def carrets(first_column)
724
+ ' ' * (first_column + 1) + '^' * (@lexer.column - first_column)
701
725
  end
702
726
  ...end parser.y/module_eval...
703
727
  ##### State transition tables begin ###
704
728
 
705
729
  racc_action_table = [
706
- 77, 6, 41, 42, 7, 83, 65, 56, 41, 42,
707
- 68, 41, 42, 3, 134, 8, 20, 22, 23, 24,
708
- 25, 26, 27, 28, 29, 30, 65, 82, 41, 42,
709
- 65, 132, 135, 32, 38, 84, 41, 42, 134, 68,
710
- 41, 42, 65, 68, 41, 42, 131, 61, 41, 42,
711
- 39, 9, 41, 42, 44, 14, 135, 12, 65, 13,
712
- 15, 16, 17, 18, 41, 42, 19, 20, 22, 23,
713
- 24, 25, 26, 27, 28, 29, 30, 65, 46, 65,
714
- 41, 42, 65, 46, 65, 41, 42, 65, 41, 42,
715
- 65, 41, 42, 65, 41, 42, 65, 41, 42, 41,
716
- 42, 41, 42, 65, 41, 42, 41, 42, 153, 41,
717
- 42, 153, 41, 42, 153, 41, 42, 153, 41, 42,
718
- 65, 68, 41, 42, 153, 41, 42, 20, 22, 23,
719
- 24, 25, 26, 27, 28, 29, 30, 41, 42, 41,
720
- 42, 153, 41, 42, 46, 38, 41, 42, 41, 42,
721
- 41, 42, 41, 42, 41, 42, 49, 50, 51, 52,
722
- 53, 74, 78, 80, 85, 85, 85, 92, 96, 97,
723
- 105, 106, 108, 109, 110, 111, 112, 113, 116, 118,
724
- 119, 122, 123, 124, 138, 139, 140, 141, 142, 143,
725
- 122, 80, 148, 149, 156, 160, 161, 80, 80 ]
730
+ 84, 137, 85, 3, 6, 43, 7, 42, 39, 67,
731
+ 43, 8, 42, 136, 67, 43, 43, 42, 42, 33,
732
+ 58, 142, 43, 43, 42, 42, 142, 21, 23, 24,
733
+ 25, 26, 27, 28, 29, 30, 31, 86, 139, 140,
734
+ 141, 143, 39, 139, 140, 141, 143, 79, 43, 43,
735
+ 42, 42, 67, 63, 70, 43, 43, 42, 42, 40,
736
+ 70, 21, 23, 24, 25, 26, 27, 28, 29, 30,
737
+ 31, 9, 45, 47, 14, 12, 13, 15, 16, 17,
738
+ 18, 47, 47, 19, 20, 21, 23, 24, 25, 26,
739
+ 27, 28, 29, 30, 31, 43, 43, 42, 42, 50,
740
+ 70, 70, 43, 43, 42, 42, 67, 161, 43, 43,
741
+ 42, 42, 67, 161, 43, 43, 42, 42, 67, 161,
742
+ 43, 43, 42, 42, 67, 161, 43, 43, 42, 42,
743
+ 67, 161, 43, 43, 42, 42, 67, 161, 43, 43,
744
+ 42, 42, 67, 67, 43, 43, 42, 42, 67, 67,
745
+ 43, 43, 42, 42, 67, 67, 43, 43, 42, 42,
746
+ 43, 43, 42, 42, 51, 52, 53, 54, 55, 76,
747
+ 80, 82, 87, 87, 87, 89, 95, 99, 100, 108,
748
+ 109, 111, 113, 114, 115, 116, 117, 120, 122, 123,
749
+ 126, 127, 128, 130, 145, 147, 148, 149, 150, 151,
750
+ 126, 82, 156, 157, 164, 167, 82 ]
726
751
 
727
752
  racc_action_check = [
728
- 33, 2, 13, 13, 2, 40, 121, 25, 25, 25,
729
- 27, 27, 27, 1, 121, 3, 33, 33, 33, 33,
730
- 33, 33, 33, 33, 33, 33, 26, 40, 121, 121,
731
- 144, 120, 121, 7, 33, 40, 55, 55, 144, 28,
732
- 28, 28, 60, 29, 29, 29, 120, 26, 26, 26,
733
- 12, 4, 144, 144, 14, 4, 144, 4, 61, 4,
734
- 4, 4, 4, 4, 60, 60, 4, 4, 4, 4,
735
- 4, 4, 4, 4, 4, 4, 4, 97, 15, 99,
736
- 61, 61, 117, 16, 135, 56, 56, 141, 66, 66,
737
- 142, 67, 67, 143, 68, 68, 150, 71, 71, 97,
738
- 97, 99, 99, 154, 117, 117, 135, 135, 141, 141,
739
- 141, 142, 142, 142, 143, 143, 143, 150, 150, 150,
740
- 155, 30, 30, 30, 154, 154, 154, 9, 9, 9,
741
- 9, 9, 9, 9, 9, 9, 9, 72, 72, 73,
742
- 73, 155, 155, 155, 17, 9, 92, 92, 94, 94,
743
- 100, 100, 102, 102, 114, 114, 18, 20, 22, 23,
744
- 24, 31, 36, 37, 45, 47, 48, 54, 58, 59,
745
- 79, 80, 86, 87, 88, 89, 90, 91, 95, 103,
746
- 104, 105, 106, 107, 125, 126, 127, 128, 129, 130,
747
- 131, 133, 136, 137, 146, 157, 159, 160, 161 ]
753
+ 41, 124, 41, 1, 2, 125, 2, 125, 9, 125,
754
+ 152, 3, 152, 124, 152, 26, 13, 26, 13, 7,
755
+ 26, 125, 57, 58, 57, 58, 152, 9, 9, 9,
756
+ 9, 9, 9, 9, 9, 9, 9, 41, 125, 125,
757
+ 125, 125, 34, 152, 152, 152, 152, 34, 27, 28,
758
+ 27, 28, 27, 27, 28, 29, 68, 29, 68, 12,
759
+ 29, 34, 34, 34, 34, 34, 34, 34, 34, 34,
760
+ 34, 4, 14, 15, 4, 4, 4, 4, 4, 4,
761
+ 4, 16, 17, 4, 4, 4, 4, 4, 4, 4,
762
+ 4, 4, 4, 4, 4, 30, 31, 30, 31, 18,
763
+ 30, 31, 149, 69, 149, 69, 149, 149, 150, 70,
764
+ 150, 70, 150, 150, 151, 73, 151, 73, 151, 151,
765
+ 158, 74, 158, 74, 158, 158, 162, 75, 162, 75,
766
+ 162, 162, 163, 95, 163, 95, 163, 163, 62, 63,
767
+ 62, 63, 62, 63, 100, 102, 100, 102, 100, 102,
768
+ 121, 143, 121, 143, 121, 143, 97, 103, 97, 103,
769
+ 105, 118, 105, 118, 19, 21, 23, 24, 25, 32,
770
+ 37, 38, 46, 48, 49, 50, 56, 60, 61, 81,
771
+ 82, 88, 90, 91, 92, 93, 94, 98, 106, 107,
772
+ 108, 109, 110, 112, 129, 131, 132, 133, 134, 135,
773
+ 136, 138, 144, 146, 154, 166, 167 ]
748
774
 
749
775
  racc_action_pointer = [
750
- nil, 13, -2, 15, 49, nil, nil, 26, nil, 109,
751
- nil, nil, 41, -27, 47, 63, 68, 129, 141, nil,
752
- 142, nil, 143, 144, 145, -21, 19, -18, 11, 15,
753
- 93, 157, nil, -2, nil, nil, 145, 129, nil, nil,
754
- -2, nil, nil, nil, nil, 149, nil, 150, 151, nil,
755
- nil, nil, nil, nil, 139, 7, 56, nil, 159, 141,
756
- 35, 51, nil, nil, nil, nil, 59, 62, 65, nil,
757
- nil, 68, 108, 110, nil, nil, nil, nil, nil, 139,
758
- 142, nil, nil, nil, nil, nil, 168, 169, 170, 171,
759
- 172, 173, 117, nil, 119, 171, nil, 70, nil, 72,
760
- 121, nil, 123, 174, 176, 166, 147, 179, nil, nil,
761
- nil, nil, nil, nil, 125, nil, nil, 75, nil, nil,
762
- 14, -1, nil, nil, nil, 168, 169, 170, 171, 172,
763
- 173, 175, nil, 157, nil, 77, 188, 177, nil, nil,
764
- nil, 80, 83, 86, 23, nil, 190, nil, nil, nil,
765
- 89, nil, nil, nil, 96, 113, nil, 179, nil, 180,
766
- 163, 164, nil, nil ]
776
+ nil, 3, -6, 11, 62, nil, nil, 12, nil, 4,
777
+ nil, nil, 53, 13, 65, 54, 62, 63, 94, 145,
778
+ nil, 146, nil, 147, 148, 149, 12, 45, 46, 52,
779
+ 92, 93, 167, nil, 38, nil, nil, 148, 131, nil,
780
+ nil, -5, nil, nil, nil, nil, 153, nil, 154, 155,
781
+ 156, nil, nil, nil, nil, nil, 168, 19, 20, nil,
782
+ 171, 170, 135, 136, nil, nil, nil, nil, 53, 100,
783
+ 106, nil, nil, 112, 118, 124, nil, nil, nil, nil,
784
+ nil, 146, 175, nil, nil, nil, nil, nil, 179, nil,
785
+ 180, 181, 182, 183, 184, 130, nil, 153, 180, nil,
786
+ 141, nil, 142, 154, nil, 157, 177, 187, 155, 150,
787
+ 190, nil, 191, nil, nil, nil, nil, nil, 158, nil,
788
+ nil, 147, nil, nil, -21, 2, nil, nil, nil, 174,
789
+ nil, 175, 176, 177, 178, 179, 165, nil, 161, nil,
790
+ nil, nil, nil, 148, 182, nil, 183, nil, nil, 99,
791
+ 105, 111, 7, nil, 202, nil, nil, nil, 117, nil,
792
+ nil, nil, 123, 129, nil, nil, 185, 166, nil ]
767
793
 
768
794
  racc_action_default = [
769
- -2, -104, -8, -104, -104, -3, -4, -104, 164, -104,
770
- -9, -10, -104, -104, -104, -104, -104, -104, -104, -20,
771
- -104, -24, -104, -104, -104, -104, -104, -104, -104, -104,
772
- -104, -104, -7, -91, -71, -73, -104, -88, -90, -11,
773
- -95, -69, -70, -94, -13, -14, -60, -15, -16, -17,
774
- -21, -25, -28, -31, -34, -40, -104, -43, -46, -35,
775
- -50, -104, -53, -55, -56, -103, -36, -63, -104, -66,
776
- -68, -37, -38, -39, -5, -1, -72, -92, -74, -104,
777
- -104, -12, -96, -97, -98, -57, -104, -104, -104, -104,
778
- -104, -104, -104, -44, -41, -48, -47, -104, -54, -51,
779
- -65, -67, -64, -104, -104, -79, -104, -104, -61, -18,
780
- -22, -26, -29, -32, -42, -45, -49, -52, -6, -93,
781
- -75, -76, -84, -89, -58, -104, -104, -104, -104, -104,
782
- -104, -79, -78, -88, -81, -104, -104, -104, -62, -19,
783
- -23, -104, -104, -104, -77, -80, -104, -87, -85, -59,
784
- -27, -99, -101, -102, -30, -33, -82, -104, -100, -104,
785
- -88, -88, -86, -83 ]
795
+ -2, -108, -8, -108, -108, -3, -4, -108, 169, -108,
796
+ -9, -10, -108, -108, -108, -108, -108, -108, -108, -108,
797
+ -23, -108, -27, -108, -108, -108, -108, -108, -108, -108,
798
+ -108, -108, -108, -7, -95, -74, -76, -108, -92, -94,
799
+ -11, -99, -72, -73, -98, -13, -14, -63, -15, -16,
800
+ -108, -20, -24, -28, -31, -34, -37, -43, -108, -46,
801
+ -49, -38, -53, -108, -56, -58, -59, -107, -39, -66,
802
+ -108, -69, -71, -40, -41, -42, -5, -1, -75, -96,
803
+ -77, -108, -108, -12, -100, -101, -102, -60, -108, -17,
804
+ -108, -108, -108, -108, -108, -108, -47, -44, -51, -50,
805
+ -108, -57, -54, -68, -70, -67, -108, -108, -82, -108,
806
+ -108, -64, -108, -21, -25, -29, -32, -35, -45, -48,
807
+ -52, -55, -6, -97, -78, -79, -83, -93, -61, -108,
808
+ -18, -108, -108, -108, -108, -108, -82, -81, -92, -85,
809
+ -86, -87, -88, -108, -108, -65, -108, -22, -26, -108,
810
+ -108, -108, -80, -84, -108, -91, -62, -19, -30, -103,
811
+ -105, -106, -33, -36, -89, -104, -108, -92, -90 ]
786
812
 
787
813
  racc_goto_table = [
788
- 79, 43, 62, 60, 55, 121, 93, 101, 34, 66,
789
- 71, 72, 73, 58, 1, 70, 70, 70, 70, 100,
790
- 2, 102, 4, 158, 100, 100, 100, 158, 158, 33,
791
- 75, 144, 76, 5, 31, 94, 98, 62, 99, 103,
792
- 101, 10, 101, 58, 58, 93, 45, 47, 48, 150,
793
- 154, 155, 11, 40, 70, 70, 70, 81, 87, 70,
794
- 70, 70, 126, 88, 127, 93, 89, 128, 90, 129,
795
- 91, 114, 130, 62, 117, 98, 54, 59, 95, 115,
796
- 58, 107, 58, 137, 86, 125, 120, 146, 70, 159,
797
- 70, 136, 157, 98, 104, nil, 145, 133, nil, nil,
798
- nil, nil, 58, nil, nil, nil, nil, nil, nil, nil,
799
- nil, 147, nil, nil, nil, nil, nil, nil, nil, nil,
800
- 133, nil, nil, 162, 163 ]
814
+ 81, 64, 44, 57, 62, 96, 125, 104, 35, 165,
815
+ 46, 48, 49, 165, 165, 60, 1, 72, 72, 72,
816
+ 72, 103, 2, 105, 4, 34, 103, 103, 103, 68,
817
+ 73, 74, 75, 78, 152, 97, 101, 64, 77, 5,
818
+ 102, 104, 32, 104, 106, 96, 60, 60, 158, 162,
819
+ 163, 10, 11, 41, 83, 112, 146, 72, 72, 72,
820
+ 90, 131, 72, 72, 72, 91, 96, 132, 92, 133,
821
+ 93, 134, 118, 94, 64, 135, 101, 121, 56, 61,
822
+ 98, 119, 110, 144, 60, 88, 60, 129, 124, 154,
823
+ 166, 107, 72, nil, 72, 101, nil, nil, nil, 138,
824
+ 153, nil, nil, nil, nil, nil, nil, 60, nil, nil,
825
+ nil, nil, nil, nil, nil, nil, nil, 155, nil, nil,
826
+ nil, nil, nil, nil, nil, nil, 138, nil, nil, 168 ]
801
827
 
802
828
  racc_goto_check = [
803
- 46, 31, 35, 34, 29, 48, 30, 42, 43, 28,
804
- 28, 28, 28, 31, 1, 31, 31, 31, 31, 41,
805
- 2, 41, 3, 54, 41, 41, 41, 54, 54, 4,
806
- 5, 48, 43, 6, 7, 29, 35, 35, 34, 8,
807
- 42, 9, 42, 31, 31, 30, 13, 13, 13, 17,
808
- 17, 17, 10, 11, 31, 31, 31, 12, 14, 31,
809
- 31, 31, 15, 18, 19, 30, 20, 21, 22, 23,
810
- 24, 29, 25, 35, 34, 35, 26, 27, 32, 33,
811
- 31, 37, 31, 38, 39, 40, 47, 49, 31, 50,
812
- 31, 51, 52, 35, 53, nil, 46, 35, nil, nil,
813
- nil, nil, 31, nil, nil, nil, nil, nil, nil, nil,
814
- nil, 35, nil, nil, nil, nil, nil, nil, nil, nil,
815
- 35, nil, nil, 46, 46 ]
829
+ 48, 37, 33, 31, 36, 32, 50, 44, 45, 54,
830
+ 13, 13, 13, 54, 54, 33, 1, 33, 33, 33,
831
+ 33, 43, 2, 43, 3, 4, 43, 43, 43, 30,
832
+ 30, 30, 30, 45, 50, 31, 37, 37, 5, 6,
833
+ 36, 44, 7, 44, 8, 32, 33, 33, 19, 19,
834
+ 19, 9, 10, 11, 12, 14, 15, 33, 33, 33,
835
+ 16, 17, 33, 33, 33, 20, 32, 21, 22, 23,
836
+ 24, 25, 31, 26, 37, 27, 37, 36, 28, 29,
837
+ 34, 35, 39, 40, 33, 41, 33, 42, 49, 51,
838
+ 52, 53, 33, nil, 33, 37, nil, nil, nil, 37,
839
+ 48, nil, nil, nil, nil, nil, nil, 33, nil, nil,
840
+ nil, nil, nil, nil, nil, nil, nil, 37, nil, nil,
841
+ nil, nil, nil, nil, nil, nil, 37, nil, nil, 48 ]
816
842
 
817
843
  racc_goto_pointer = [
818
- nil, 14, 20, 20, 20, -3, 31, 28, -35, 37,
819
- 48, 40, 17, 31, 9, -47, nil, -92, 13, -46,
820
- 15, -44, 16, -43, 17, -41, 51, 51, -18, -21,
821
- -49, -12, 20, -16, -23, -24, nil, -4, -41, 38,
822
- -23, -47, -60, -1, nil, nil, -37, -19, -100, -47,
823
- -67, -31, -56, 17, -127 ]
844
+ nil, 16, 22, 22, 16, 4, 37, 36, -32, 47,
845
+ 48, 40, 13, -5, -34, -74, 9, -52, nil, -101,
846
+ 13, -47, 15, -46, 16, -45, 18, -42, 52, 52,
847
+ 1, -23, -52, -11, 20, -17, -23, -26, nil, -5,
848
+ -45, 38, -24, -47, -62, -1, nil, nil, -38, -20,
849
+ -102, -53, -74, 12, -149 ]
824
850
 
825
851
  racc_goto_default = [
826
852
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
827
- 36, nil, nil, nil, nil, nil, 21, nil, nil, nil,
853
+ 37, nil, nil, nil, nil, nil, nil, nil, 22, nil,
828
854
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
829
- 57, 63, nil, nil, nil, 152, 64, nil, nil, nil,
830
- nil, 67, 69, nil, 35, 37, nil, nil, nil, nil,
831
- nil, nil, nil, nil, 151 ]
855
+ nil, nil, 59, 65, nil, nil, nil, 160, 66, nil,
856
+ nil, nil, nil, 69, 71, nil, 36, 38, nil, nil,
857
+ nil, nil, nil, nil, 159 ]
832
858
 
833
859
  racc_reduce_table = [
834
860
  0, 0, :racc_error,
835
- 5, 39, :_reduce_none,
836
- 0, 40, :_reduce_none,
837
- 2, 40, :_reduce_none,
838
- 0, 45, :_reduce_4,
839
- 0, 46, :_reduce_5,
840
- 5, 44, :_reduce_6,
841
- 2, 44, :_reduce_none,
842
- 0, 41, :_reduce_8,
843
- 2, 41, :_reduce_none,
844
- 1, 47, :_reduce_none,
845
- 2, 47, :_reduce_11,
846
- 3, 47, :_reduce_none,
847
- 2, 47, :_reduce_none,
848
- 2, 47, :_reduce_none,
849
- 2, 47, :_reduce_15,
850
- 2, 47, :_reduce_16,
851
- 0, 52, :_reduce_17,
852
- 0, 53, :_reduce_18,
853
- 6, 47, :_reduce_19,
854
- 1, 47, :_reduce_none,
855
- 0, 56, :_reduce_21,
856
- 0, 57, :_reduce_22,
857
- 6, 48, :_reduce_23,
858
- 1, 48, :_reduce_none,
859
- 0, 58, :_reduce_25,
860
- 0, 59, :_reduce_26,
861
- 7, 48, :_reduce_none,
862
- 0, 60, :_reduce_28,
863
- 0, 61, :_reduce_29,
864
- 7, 48, :_reduce_30,
865
- 0, 62, :_reduce_31,
866
- 0, 63, :_reduce_32,
867
- 7, 48, :_reduce_33,
868
- 2, 54, :_reduce_none,
869
- 2, 54, :_reduce_35,
870
- 2, 54, :_reduce_36,
871
- 2, 54, :_reduce_37,
872
- 2, 54, :_reduce_38,
873
- 2, 54, :_reduce_39,
874
- 1, 64, :_reduce_40,
875
- 2, 64, :_reduce_41,
876
- 3, 64, :_reduce_42,
877
- 1, 67, :_reduce_43,
878
- 2, 67, :_reduce_44,
879
- 3, 68, :_reduce_45,
880
- 0, 70, :_reduce_none,
881
- 1, 70, :_reduce_none,
882
- 0, 71, :_reduce_none,
883
- 1, 71, :_reduce_none,
884
- 1, 65, :_reduce_50,
885
- 2, 65, :_reduce_51,
886
- 3, 65, :_reduce_52,
861
+ 5, 44, :_reduce_none,
862
+ 0, 45, :_reduce_none,
863
+ 2, 45, :_reduce_none,
864
+ 0, 50, :_reduce_4,
865
+ 0, 51, :_reduce_5,
866
+ 5, 49, :_reduce_6,
867
+ 2, 49, :_reduce_none,
868
+ 0, 46, :_reduce_8,
869
+ 2, 46, :_reduce_none,
870
+ 1, 52, :_reduce_none,
871
+ 2, 52, :_reduce_11,
872
+ 3, 52, :_reduce_none,
873
+ 2, 52, :_reduce_none,
874
+ 2, 52, :_reduce_none,
875
+ 2, 52, :_reduce_15,
876
+ 2, 52, :_reduce_16,
877
+ 0, 57, :_reduce_17,
878
+ 0, 58, :_reduce_18,
879
+ 7, 52, :_reduce_19,
880
+ 0, 59, :_reduce_20,
881
+ 0, 60, :_reduce_21,
882
+ 6, 52, :_reduce_22,
883
+ 1, 52, :_reduce_none,
884
+ 0, 63, :_reduce_24,
885
+ 0, 64, :_reduce_25,
886
+ 6, 53, :_reduce_26,
887
+ 1, 53, :_reduce_none,
888
+ 0, 65, :_reduce_28,
889
+ 0, 66, :_reduce_29,
890
+ 7, 53, :_reduce_none,
891
+ 0, 67, :_reduce_31,
892
+ 0, 68, :_reduce_32,
893
+ 7, 53, :_reduce_33,
894
+ 0, 69, :_reduce_34,
895
+ 0, 70, :_reduce_35,
896
+ 7, 53, :_reduce_36,
897
+ 2, 61, :_reduce_none,
898
+ 2, 61, :_reduce_38,
899
+ 2, 61, :_reduce_39,
900
+ 2, 61, :_reduce_40,
901
+ 2, 61, :_reduce_41,
902
+ 2, 61, :_reduce_42,
903
+ 1, 71, :_reduce_43,
904
+ 2, 71, :_reduce_44,
905
+ 3, 71, :_reduce_45,
906
+ 1, 74, :_reduce_46,
907
+ 2, 74, :_reduce_47,
908
+ 3, 75, :_reduce_48,
909
+ 0, 77, :_reduce_none,
910
+ 1, 77, :_reduce_none,
911
+ 0, 78, :_reduce_none,
912
+ 1, 78, :_reduce_none,
887
913
  1, 72, :_reduce_53,
888
914
  2, 72, :_reduce_54,
889
- 1, 73, :_reduce_none,
890
- 1, 73, :_reduce_none,
891
- 0, 75, :_reduce_57,
892
- 0, 76, :_reduce_58,
893
- 6, 51, :_reduce_59,
894
- 0, 77, :_reduce_60,
895
- 0, 78, :_reduce_61,
896
- 5, 51, :_reduce_62,
897
- 1, 66, :_reduce_63,
898
- 2, 66, :_reduce_64,
899
- 2, 66, :_reduce_65,
900
- 1, 79, :_reduce_66,
901
- 2, 79, :_reduce_67,
915
+ 3, 72, :_reduce_55,
916
+ 1, 79, :_reduce_56,
917
+ 2, 79, :_reduce_57,
918
+ 1, 80, :_reduce_none,
902
919
  1, 80, :_reduce_none,
903
- 1, 69, :_reduce_69,
904
- 1, 69, :_reduce_70,
905
- 1, 42, :_reduce_none,
906
- 2, 42, :_reduce_none,
907
- 1, 81, :_reduce_none,
908
- 2, 81, :_reduce_none,
909
- 4, 82, :_reduce_75,
910
- 1, 85, :_reduce_76,
911
- 3, 85, :_reduce_77,
912
- 2, 85, :_reduce_none,
913
- 0, 86, :_reduce_79,
914
- 3, 86, :_reduce_80,
915
- 0, 87, :_reduce_81,
916
- 0, 88, :_reduce_82,
917
- 7, 86, :_reduce_83,
918
- 0, 89, :_reduce_84,
919
- 0, 90, :_reduce_85,
920
- 6, 86, :_reduce_86,
921
- 3, 86, :_reduce_87,
922
- 0, 84, :_reduce_none,
923
- 3, 84, :_reduce_89,
924
- 1, 83, :_reduce_none,
925
- 0, 43, :_reduce_none,
926
- 0, 91, :_reduce_92,
927
- 3, 43, :_reduce_93,
928
- 1, 49, :_reduce_none,
929
- 0, 50, :_reduce_none,
930
- 1, 50, :_reduce_none,
931
- 1, 50, :_reduce_none,
932
- 1, 50, :_reduce_none,
933
- 1, 55, :_reduce_99,
934
- 2, 55, :_reduce_100,
935
- 1, 92, :_reduce_none,
936
- 1, 92, :_reduce_none,
937
- 1, 74, :_reduce_103 ]
938
-
939
- racc_reduce_n = 104
940
-
941
- racc_shift_n = 164
920
+ 0, 82, :_reduce_60,
921
+ 0, 83, :_reduce_61,
922
+ 6, 56, :_reduce_62,
923
+ 0, 84, :_reduce_63,
924
+ 0, 85, :_reduce_64,
925
+ 5, 56, :_reduce_65,
926
+ 1, 73, :_reduce_66,
927
+ 2, 73, :_reduce_67,
928
+ 2, 73, :_reduce_68,
929
+ 1, 86, :_reduce_69,
930
+ 2, 86, :_reduce_70,
931
+ 1, 87, :_reduce_none,
932
+ 1, 76, :_reduce_72,
933
+ 1, 76, :_reduce_73,
934
+ 1, 47, :_reduce_none,
935
+ 2, 47, :_reduce_none,
936
+ 1, 88, :_reduce_none,
937
+ 2, 88, :_reduce_none,
938
+ 4, 89, :_reduce_78,
939
+ 1, 92, :_reduce_79,
940
+ 3, 92, :_reduce_80,
941
+ 2, 92, :_reduce_none,
942
+ 0, 93, :_reduce_82,
943
+ 1, 93, :_reduce_83,
944
+ 3, 93, :_reduce_84,
945
+ 2, 93, :_reduce_85,
946
+ 2, 93, :_reduce_86,
947
+ 2, 93, :_reduce_87,
948
+ 0, 94, :_reduce_88,
949
+ 0, 95, :_reduce_89,
950
+ 7, 93, :_reduce_90,
951
+ 3, 93, :_reduce_91,
952
+ 0, 91, :_reduce_none,
953
+ 3, 91, :_reduce_93,
954
+ 1, 90, :_reduce_none,
955
+ 0, 48, :_reduce_none,
956
+ 0, 96, :_reduce_96,
957
+ 3, 48, :_reduce_97,
958
+ 1, 54, :_reduce_none,
959
+ 0, 55, :_reduce_none,
960
+ 1, 55, :_reduce_none,
961
+ 1, 55, :_reduce_none,
962
+ 1, 55, :_reduce_none,
963
+ 1, 62, :_reduce_103,
964
+ 2, 62, :_reduce_104,
965
+ 1, 97, :_reduce_none,
966
+ 1, 97, :_reduce_none,
967
+ 1, 81, :_reduce_107 ]
968
+
969
+ racc_reduce_n = 108
970
+
971
+ racc_shift_n = 169
942
972
 
943
973
  racc_token_table = {
944
974
  false => 0,
945
975
  :error => 1,
946
- "%%" => 2,
947
- "%{" => 3,
948
- :C_DECLARATION => 4,
949
- "%}" => 5,
950
- "%require" => 6,
976
+ :C_DECLARATION => 2,
977
+ :CHARACTER => 3,
978
+ :IDENT_COLON => 4,
979
+ :IDENTIFIER => 5,
980
+ :INTEGER => 6,
951
981
  :STRING => 7,
952
- "%expect" => 8,
953
- :INTEGER => 9,
954
- "%define" => 10,
955
- "%param" => 11,
956
- "%lex-param" => 12,
957
- "%parse-param" => 13,
958
- "%initial-action" => 14,
959
- "{" => 15,
960
- "}" => 16,
961
- ";" => 17,
962
- "%union" => 18,
963
- "%destructor" => 19,
964
- "%printer" => 20,
965
- "%error-token" => 21,
966
- "%token" => 22,
967
- "%type" => 23,
968
- "%left" => 24,
969
- "%right" => 25,
970
- "%precedence" => 26,
971
- "%nonassoc" => 27,
972
- :TAG => 28,
973
- :IDENTIFIER => 29,
974
- :CHARACTER => 30,
975
- ":" => 31,
976
- "|" => 32,
977
- "%prec" => 33,
978
- "[" => 34,
979
- "]" => 35,
980
- :IDENT_COLON => 36,
981
- "{...}" => 37 }
982
-
983
- racc_nt_base = 38
982
+ :TAG => 8,
983
+ "%%" => 9,
984
+ "%{" => 10,
985
+ "%}" => 11,
986
+ "%require" => 12,
987
+ "%expect" => 13,
988
+ "%define" => 14,
989
+ "%param" => 15,
990
+ "%lex-param" => 16,
991
+ "%parse-param" => 17,
992
+ "%code" => 18,
993
+ "{" => 19,
994
+ "}" => 20,
995
+ "%initial-action" => 21,
996
+ ";" => 22,
997
+ "%union" => 23,
998
+ "%destructor" => 24,
999
+ "%printer" => 25,
1000
+ "%error-token" => 26,
1001
+ "%token" => 27,
1002
+ "%type" => 28,
1003
+ "%left" => 29,
1004
+ "%right" => 30,
1005
+ "%precedence" => 31,
1006
+ "%nonassoc" => 32,
1007
+ ":" => 33,
1008
+ "|" => 34,
1009
+ "%empty" => 35,
1010
+ "?" => 36,
1011
+ "+" => 37,
1012
+ "*" => 38,
1013
+ "%prec" => 39,
1014
+ "[" => 40,
1015
+ "]" => 41,
1016
+ "{...}" => 42 }
1017
+
1018
+ racc_nt_base = 43
984
1019
 
985
1020
  racc_use_result_var = true
986
1021
 
@@ -1004,21 +1039,26 @@ Ractor.make_shareable(Racc_arg) if defined?(Ractor)
1004
1039
  Racc_token_to_s_table = [
1005
1040
  "$end",
1006
1041
  "error",
1042
+ "C_DECLARATION",
1043
+ "CHARACTER",
1044
+ "IDENT_COLON",
1045
+ "IDENTIFIER",
1046
+ "INTEGER",
1047
+ "STRING",
1048
+ "TAG",
1007
1049
  "\"%%\"",
1008
1050
  "\"%{\"",
1009
- "C_DECLARATION",
1010
1051
  "\"%}\"",
1011
1052
  "\"%require\"",
1012
- "STRING",
1013
1053
  "\"%expect\"",
1014
- "INTEGER",
1015
1054
  "\"%define\"",
1016
1055
  "\"%param\"",
1017
1056
  "\"%lex-param\"",
1018
1057
  "\"%parse-param\"",
1019
- "\"%initial-action\"",
1058
+ "\"%code\"",
1020
1059
  "\"{\"",
1021
1060
  "\"}\"",
1061
+ "\"%initial-action\"",
1022
1062
  "\";\"",
1023
1063
  "\"%union\"",
1024
1064
  "\"%destructor\"",
@@ -1030,15 +1070,15 @@ Racc_token_to_s_table = [
1030
1070
  "\"%right\"",
1031
1071
  "\"%precedence\"",
1032
1072
  "\"%nonassoc\"",
1033
- "TAG",
1034
- "IDENTIFIER",
1035
- "CHARACTER",
1036
1073
  "\":\"",
1037
1074
  "\"|\"",
1075
+ "\"%empty\"",
1076
+ "\"?\"",
1077
+ "\"+\"",
1078
+ "\"*\"",
1038
1079
  "\"%prec\"",
1039
1080
  "\"[\"",
1040
1081
  "\"]\"",
1041
- "IDENT_COLON",
1042
1082
  "\"{...}\"",
1043
1083
  "$start",
1044
1084
  "input",
@@ -1056,16 +1096,18 @@ Racc_token_to_s_table = [
1056
1096
  "params",
1057
1097
  "@3",
1058
1098
  "@4",
1059
- "symbol_declaration",
1060
- "generic_symlist",
1061
1099
  "@5",
1062
1100
  "@6",
1101
+ "symbol_declaration",
1102
+ "generic_symlist",
1063
1103
  "@7",
1064
1104
  "@8",
1065
1105
  "@9",
1066
1106
  "@10",
1067
1107
  "@11",
1068
1108
  "@12",
1109
+ "@13",
1110
+ "@14",
1069
1111
  "token_declarations",
1070
1112
  "symbol_declarations",
1071
1113
  "token_declarations_for_precedence",
@@ -1077,10 +1119,10 @@ Racc_token_to_s_table = [
1077
1119
  "symbol_declaration_list",
1078
1120
  "symbol",
1079
1121
  "string_as_id",
1080
- "@13",
1081
- "@14",
1082
1122
  "@15",
1083
1123
  "@16",
1124
+ "@17",
1125
+ "@18",
1084
1126
  "token_declaration_list_for_precedence",
1085
1127
  "token_declaration_for_precedence",
1086
1128
  "rules_or_grammar_declaration",
@@ -1089,15 +1131,13 @@ Racc_token_to_s_table = [
1089
1131
  "named_ref_opt",
1090
1132
  "rhs_list",
1091
1133
  "rhs",
1092
- "@17",
1093
- "@18",
1094
1134
  "@19",
1095
1135
  "@20",
1096
1136
  "@21",
1097
1137
  "generic_symlist_item" ]
1098
1138
  Ractor.make_shareable(Racc_token_to_s_table) if defined?(Ractor)
1099
1139
 
1100
- Racc_debug_parser = false
1140
+ Racc_debug_parser = true
1101
1141
 
1102
1142
  ##### State transition tables end #####
1103
1143
 
@@ -1109,26 +1149,24 @@ Racc_debug_parser = false
1109
1149
 
1110
1150
  # reduce 3 omitted
1111
1151
 
1112
- module_eval(<<'.,.,', 'parser.y', 9)
1152
+ module_eval(<<'.,.,', 'parser.y', 14)
1113
1153
  def _reduce_4(val, _values, result)
1114
- @lexer.status = :c_declaration
1115
- @lexer.end_symbol = '%}'
1154
+ begin_c_declaration("%}")
1116
1155
  @grammar.prologue_first_lineno = @lexer.line
1117
1156
 
1118
1157
  result
1119
1158
  end
1120
1159
  .,.,
1121
1160
 
1122
- module_eval(<<'.,.,', 'parser.y', 15)
1161
+ module_eval(<<'.,.,', 'parser.y', 19)
1123
1162
  def _reduce_5(val, _values, result)
1124
- @lexer.status = :initial
1125
- @lexer.end_symbol = nil
1163
+ end_c_declaration
1126
1164
 
1127
1165
  result
1128
1166
  end
1129
1167
  .,.,
1130
1168
 
1131
- module_eval(<<'.,.,', 'parser.y', 20)
1169
+ module_eval(<<'.,.,', 'parser.y', 23)
1132
1170
  def _reduce_6(val, _values, result)
1133
1171
  @grammar.prologue = val[2].s_value
1134
1172
 
@@ -1138,7 +1176,7 @@ module_eval(<<'.,.,', 'parser.y', 20)
1138
1176
 
1139
1177
  # reduce 7 omitted
1140
1178
 
1141
- module_eval(<<'.,.,', 'parser.y', 24)
1179
+ module_eval(<<'.,.,', 'parser.y', 27)
1142
1180
  def _reduce_8(val, _values, result)
1143
1181
  result = ""
1144
1182
  result
@@ -1149,7 +1187,7 @@ module_eval(<<'.,.,', 'parser.y', 24)
1149
1187
 
1150
1188
  # reduce 10 omitted
1151
1189
 
1152
- module_eval(<<'.,.,', 'parser.y', 28)
1190
+ module_eval(<<'.,.,', 'parser.y', 31)
1153
1191
  def _reduce_11(val, _values, result)
1154
1192
  @grammar.expect = val[1]
1155
1193
  result
@@ -1162,7 +1200,7 @@ module_eval(<<'.,.,', 'parser.y', 28)
1162
1200
 
1163
1201
  # reduce 14 omitted
1164
1202
 
1165
- module_eval(<<'.,.,', 'parser.y', 34)
1203
+ module_eval(<<'.,.,', 'parser.y', 37)
1166
1204
  def _reduce_15(val, _values, result)
1167
1205
  val[1].each {|token|
1168
1206
  token.references = []
@@ -1173,7 +1211,7 @@ module_eval(<<'.,.,', 'parser.y', 34)
1173
1211
  end
1174
1212
  .,.,
1175
1213
 
1176
- module_eval(<<'.,.,', 'parser.y', 41)
1214
+ module_eval(<<'.,.,', 'parser.y', 44)
1177
1215
  def _reduce_16(val, _values, result)
1178
1216
  val[1].each {|token|
1179
1217
  token.references = []
@@ -1184,75 +1222,75 @@ module_eval(<<'.,.,', 'parser.y', 41)
1184
1222
  end
1185
1223
  .,.,
1186
1224
 
1187
- module_eval(<<'.,.,', 'parser.y', 48)
1225
+ module_eval(<<'.,.,', 'parser.y', 51)
1188
1226
  def _reduce_17(val, _values, result)
1189
- @lexer.status = :c_declaration
1190
- @lexer.end_symbol = '}'
1227
+ begin_c_declaration("}")
1191
1228
 
1192
1229
  result
1193
1230
  end
1194
1231
  .,.,
1195
1232
 
1196
- module_eval(<<'.,.,', 'parser.y', 53)
1233
+ module_eval(<<'.,.,', 'parser.y', 55)
1197
1234
  def _reduce_18(val, _values, result)
1198
- @lexer.status = :initial
1199
- @lexer.end_symbol = nil
1235
+ end_c_declaration
1200
1236
 
1201
1237
  result
1202
1238
  end
1203
1239
  .,.,
1204
1240
 
1205
- module_eval(<<'.,.,', 'parser.y', 58)
1241
+ module_eval(<<'.,.,', 'parser.y', 59)
1206
1242
  def _reduce_19(val, _values, result)
1207
- @grammar.initial_action = @grammar.build_code(:initial_action, val[3])
1243
+ @grammar.add_percent_code(id: val[1], code: val[4])
1208
1244
 
1209
1245
  result
1210
1246
  end
1211
1247
  .,.,
1212
1248
 
1213
- # reduce 20 omitted
1249
+ module_eval(<<'.,.,', 'parser.y', 63)
1250
+ def _reduce_20(val, _values, result)
1251
+ begin_c_declaration("}")
1252
+
1253
+ result
1254
+ end
1255
+ .,.,
1214
1256
 
1215
- module_eval(<<'.,.,', 'parser.y', 64)
1257
+ module_eval(<<'.,.,', 'parser.y', 67)
1216
1258
  def _reduce_21(val, _values, result)
1217
- @lexer.status = :c_declaration
1218
- @lexer.end_symbol = '}'
1259
+ end_c_declaration
1219
1260
 
1220
1261
  result
1221
1262
  end
1222
1263
  .,.,
1223
1264
 
1224
- module_eval(<<'.,.,', 'parser.y', 69)
1265
+ module_eval(<<'.,.,', 'parser.y', 71)
1225
1266
  def _reduce_22(val, _values, result)
1226
- @lexer.status = :initial
1227
- @lexer.end_symbol = nil
1267
+ @grammar.initial_action = @grammar.build_code(:initial_action, val[3])
1228
1268
 
1229
1269
  result
1230
1270
  end
1231
1271
  .,.,
1232
1272
 
1233
- module_eval(<<'.,.,', 'parser.y', 74)
1234
- def _reduce_23(val, _values, result)
1235
- @grammar.set_union(@grammar.build_code(:union, val[3]), val[3].line)
1273
+ # reduce 23 omitted
1274
+
1275
+ module_eval(<<'.,.,', 'parser.y', 77)
1276
+ def _reduce_24(val, _values, result)
1277
+ begin_c_declaration("}")
1236
1278
 
1237
1279
  result
1238
1280
  end
1239
1281
  .,.,
1240
1282
 
1241
- # reduce 24 omitted
1242
-
1243
- module_eval(<<'.,.,', 'parser.y', 79)
1283
+ module_eval(<<'.,.,', 'parser.y', 81)
1244
1284
  def _reduce_25(val, _values, result)
1245
- @lexer.status = :c_declaration
1246
- @lexer.end_symbol = '}'
1285
+ end_c_declaration
1247
1286
 
1248
1287
  result
1249
1288
  end
1250
1289
  .,.,
1251
1290
 
1252
- module_eval(<<'.,.,', 'parser.y', 84)
1291
+ module_eval(<<'.,.,', 'parser.y', 85)
1253
1292
  def _reduce_26(val, _values, result)
1254
- @lexer.status = :initial
1255
- @lexer.end_symbol = nil
1293
+ @grammar.set_union(@grammar.build_code(:union, val[3]), val[3].line)
1256
1294
 
1257
1295
  result
1258
1296
  end
@@ -1262,60 +1300,74 @@ module_eval(<<'.,.,', 'parser.y', 84)
1262
1300
 
1263
1301
  module_eval(<<'.,.,', 'parser.y', 90)
1264
1302
  def _reduce_28(val, _values, result)
1265
- @lexer.status = :c_declaration
1266
- @lexer.end_symbol = '}'
1303
+ begin_c_declaration("}")
1267
1304
 
1268
1305
  result
1269
1306
  end
1270
1307
  .,.,
1271
1308
 
1272
- module_eval(<<'.,.,', 'parser.y', 95)
1309
+ module_eval(<<'.,.,', 'parser.y', 94)
1273
1310
  def _reduce_29(val, _values, result)
1274
- @lexer.status = :initial
1275
- @lexer.end_symbol = nil
1311
+ end_c_declaration
1312
+
1313
+ result
1314
+ end
1315
+ .,.,
1316
+
1317
+ # reduce 30 omitted
1318
+
1319
+ module_eval(<<'.,.,', 'parser.y', 99)
1320
+ def _reduce_31(val, _values, result)
1321
+ begin_c_declaration("}")
1322
+
1323
+ result
1324
+ end
1325
+ .,.,
1326
+
1327
+ module_eval(<<'.,.,', 'parser.y', 103)
1328
+ def _reduce_32(val, _values, result)
1329
+ end_c_declaration
1276
1330
 
1277
1331
  result
1278
1332
  end
1279
1333
  .,.,
1280
1334
 
1281
- module_eval(<<'.,.,', 'parser.y', 100)
1282
- def _reduce_30(val, _values, result)
1335
+ module_eval(<<'.,.,', 'parser.y', 107)
1336
+ def _reduce_33(val, _values, result)
1283
1337
  @grammar.add_printer(ident_or_tags: val[6], code: @grammar.build_code(:printer, val[3]), lineno: val[3].line)
1284
1338
 
1285
1339
  result
1286
1340
  end
1287
1341
  .,.,
1288
1342
 
1289
- module_eval(<<'.,.,', 'parser.y', 104)
1290
- def _reduce_31(val, _values, result)
1291
- @lexer.status = :c_declaration
1292
- @lexer.end_symbol = '}'
1343
+ module_eval(<<'.,.,', 'parser.y', 111)
1344
+ def _reduce_34(val, _values, result)
1345
+ begin_c_declaration("}")
1293
1346
 
1294
1347
  result
1295
1348
  end
1296
1349
  .,.,
1297
1350
 
1298
- module_eval(<<'.,.,', 'parser.y', 109)
1299
- def _reduce_32(val, _values, result)
1300
- @lexer.status = :initial
1301
- @lexer.end_symbol = nil
1351
+ module_eval(<<'.,.,', 'parser.y', 115)
1352
+ def _reduce_35(val, _values, result)
1353
+ end_c_declaration
1302
1354
 
1303
1355
  result
1304
1356
  end
1305
1357
  .,.,
1306
1358
 
1307
- module_eval(<<'.,.,', 'parser.y', 114)
1308
- def _reduce_33(val, _values, result)
1359
+ module_eval(<<'.,.,', 'parser.y', 119)
1360
+ def _reduce_36(val, _values, result)
1309
1361
  @grammar.add_error_token(ident_or_tags: val[6], code: @grammar.build_code(:error_token, val[3]), lineno: val[3].line)
1310
1362
 
1311
1363
  result
1312
1364
  end
1313
1365
  .,.,
1314
1366
 
1315
- # reduce 34 omitted
1367
+ # reduce 37 omitted
1316
1368
 
1317
- module_eval(<<'.,.,', 'parser.y', 120)
1318
- def _reduce_35(val, _values, result)
1369
+ module_eval(<<'.,.,', 'parser.y', 125)
1370
+ def _reduce_38(val, _values, result)
1319
1371
  val[1].each {|hash|
1320
1372
  hash[:tokens].each {|id|
1321
1373
  @grammar.add_type(id: id, tag: hash[:tag])
@@ -1326,8 +1378,8 @@ module_eval(<<'.,.,', 'parser.y', 120)
1326
1378
  end
1327
1379
  .,.,
1328
1380
 
1329
- module_eval(<<'.,.,', 'parser.y', 128)
1330
- def _reduce_36(val, _values, result)
1381
+ module_eval(<<'.,.,', 'parser.y', 133)
1382
+ def _reduce_39(val, _values, result)
1331
1383
  val[1].each {|hash|
1332
1384
  hash[:tokens].each {|id|
1333
1385
  sym = @grammar.add_term(id: id)
@@ -1340,8 +1392,8 @@ module_eval(<<'.,.,', 'parser.y', 128)
1340
1392
  end
1341
1393
  .,.,
1342
1394
 
1343
- module_eval(<<'.,.,', 'parser.y', 138)
1344
- def _reduce_37(val, _values, result)
1395
+ module_eval(<<'.,.,', 'parser.y', 143)
1396
+ def _reduce_40(val, _values, result)
1345
1397
  val[1].each {|hash|
1346
1398
  hash[:tokens].each {|id|
1347
1399
  sym = @grammar.add_term(id: id)
@@ -1354,8 +1406,8 @@ module_eval(<<'.,.,', 'parser.y', 138)
1354
1406
  end
1355
1407
  .,.,
1356
1408
 
1357
- module_eval(<<'.,.,', 'parser.y', 148)
1358
- def _reduce_38(val, _values, result)
1409
+ module_eval(<<'.,.,', 'parser.y', 153)
1410
+ def _reduce_41(val, _values, result)
1359
1411
  val[1].each {|hash|
1360
1412
  hash[:tokens].each {|id|
1361
1413
  sym = @grammar.add_term(id: id)
@@ -1368,8 +1420,8 @@ module_eval(<<'.,.,', 'parser.y', 148)
1368
1420
  end
1369
1421
  .,.,
1370
1422
 
1371
- module_eval(<<'.,.,', 'parser.y', 158)
1372
- def _reduce_39(val, _values, result)
1423
+ module_eval(<<'.,.,', 'parser.y', 163)
1424
+ def _reduce_42(val, _values, result)
1373
1425
  val[1].each {|hash|
1374
1426
  hash[:tokens].each {|id|
1375
1427
  sym = @grammar.add_term(id: id)
@@ -1382,8 +1434,8 @@ module_eval(<<'.,.,', 'parser.y', 158)
1382
1434
  end
1383
1435
  .,.,
1384
1436
 
1385
- module_eval(<<'.,.,', 'parser.y', 169)
1386
- def _reduce_40(val, _values, result)
1437
+ module_eval(<<'.,.,', 'parser.y', 174)
1438
+ def _reduce_43(val, _values, result)
1387
1439
  val[0].each {|token_declaration|
1388
1440
  @grammar.add_term(id: token_declaration[0], alias_name: token_declaration[2], token_id: token_declaration[1], tag: nil, replace: true)
1389
1441
  }
@@ -1392,8 +1444,8 @@ module_eval(<<'.,.,', 'parser.y', 169)
1392
1444
  end
1393
1445
  .,.,
1394
1446
 
1395
- module_eval(<<'.,.,', 'parser.y', 175)
1396
- def _reduce_41(val, _values, result)
1447
+ module_eval(<<'.,.,', 'parser.y', 180)
1448
+ def _reduce_44(val, _values, result)
1397
1449
  val[1].each {|token_declaration|
1398
1450
  @grammar.add_term(id: token_declaration[0], alias_name: token_declaration[2], token_id: token_declaration[1], tag: val[0], replace: true)
1399
1451
  }
@@ -1402,8 +1454,8 @@ module_eval(<<'.,.,', 'parser.y', 175)
1402
1454
  end
1403
1455
  .,.,
1404
1456
 
1405
- module_eval(<<'.,.,', 'parser.y', 181)
1406
- def _reduce_42(val, _values, result)
1457
+ module_eval(<<'.,.,', 'parser.y', 186)
1458
+ def _reduce_45(val, _values, result)
1407
1459
  val[2].each {|token_declaration|
1408
1460
  @grammar.add_term(id: token_declaration[0], alias_name: token_declaration[2], token_id: token_declaration[1], tag: val[1], replace: true)
1409
1461
  }
@@ -1412,195 +1464,191 @@ module_eval(<<'.,.,', 'parser.y', 181)
1412
1464
  end
1413
1465
  .,.,
1414
1466
 
1415
- module_eval(<<'.,.,', 'parser.y', 186)
1416
- def _reduce_43(val, _values, result)
1467
+ module_eval(<<'.,.,', 'parser.y', 191)
1468
+ def _reduce_46(val, _values, result)
1417
1469
  result = [val[0]]
1418
1470
  result
1419
1471
  end
1420
1472
  .,.,
1421
1473
 
1422
- module_eval(<<'.,.,', 'parser.y', 187)
1423
- def _reduce_44(val, _values, result)
1474
+ module_eval(<<'.,.,', 'parser.y', 192)
1475
+ def _reduce_47(val, _values, result)
1424
1476
  result = val[0].append(val[1])
1425
1477
  result
1426
1478
  end
1427
1479
  .,.,
1428
1480
 
1429
- module_eval(<<'.,.,', 'parser.y', 189)
1430
- def _reduce_45(val, _values, result)
1481
+ module_eval(<<'.,.,', 'parser.y', 194)
1482
+ def _reduce_48(val, _values, result)
1431
1483
  result = val
1432
1484
  result
1433
1485
  end
1434
1486
  .,.,
1435
1487
 
1436
- # reduce 46 omitted
1488
+ # reduce 49 omitted
1437
1489
 
1438
- # reduce 47 omitted
1490
+ # reduce 50 omitted
1439
1491
 
1440
- # reduce 48 omitted
1492
+ # reduce 51 omitted
1441
1493
 
1442
- # reduce 49 omitted
1494
+ # reduce 52 omitted
1443
1495
 
1444
- module_eval(<<'.,.,', 'parser.y', 199)
1445
- def _reduce_50(val, _values, result)
1496
+ module_eval(<<'.,.,', 'parser.y', 204)
1497
+ def _reduce_53(val, _values, result)
1446
1498
  result = [{tag: nil, tokens: val[0]}]
1447
1499
 
1448
1500
  result
1449
1501
  end
1450
1502
  .,.,
1451
1503
 
1452
- module_eval(<<'.,.,', 'parser.y', 203)
1453
- def _reduce_51(val, _values, result)
1504
+ module_eval(<<'.,.,', 'parser.y', 208)
1505
+ def _reduce_54(val, _values, result)
1454
1506
  result = [{tag: val[0], tokens: val[1]}]
1455
1507
 
1456
1508
  result
1457
1509
  end
1458
1510
  .,.,
1459
1511
 
1460
- module_eval(<<'.,.,', 'parser.y', 207)
1461
- def _reduce_52(val, _values, result)
1512
+ module_eval(<<'.,.,', 'parser.y', 212)
1513
+ def _reduce_55(val, _values, result)
1462
1514
  result = val[0].append({tag: val[1], tokens: val[2]})
1463
1515
 
1464
1516
  result
1465
1517
  end
1466
1518
  .,.,
1467
1519
 
1468
- module_eval(<<'.,.,', 'parser.y', 210)
1469
- def _reduce_53(val, _values, result)
1520
+ module_eval(<<'.,.,', 'parser.y', 215)
1521
+ def _reduce_56(val, _values, result)
1470
1522
  result = [val[0]]
1471
1523
  result
1472
1524
  end
1473
1525
  .,.,
1474
1526
 
1475
- module_eval(<<'.,.,', 'parser.y', 211)
1476
- def _reduce_54(val, _values, result)
1527
+ module_eval(<<'.,.,', 'parser.y', 216)
1528
+ def _reduce_57(val, _values, result)
1477
1529
  result = val[0].append(val[1])
1478
1530
  result
1479
1531
  end
1480
1532
  .,.,
1481
1533
 
1482
- # reduce 55 omitted
1534
+ # reduce 58 omitted
1483
1535
 
1484
- # reduce 56 omitted
1536
+ # reduce 59 omitted
1485
1537
 
1486
- module_eval(<<'.,.,', 'parser.y', 218)
1487
- def _reduce_57(val, _values, result)
1488
- @lexer.status = :c_declaration
1489
- @lexer.end_symbol = '}'
1538
+ module_eval(<<'.,.,', 'parser.y', 223)
1539
+ def _reduce_60(val, _values, result)
1540
+ begin_c_declaration("}")
1490
1541
 
1491
1542
  result
1492
1543
  end
1493
1544
  .,.,
1494
1545
 
1495
- module_eval(<<'.,.,', 'parser.y', 223)
1496
- def _reduce_58(val, _values, result)
1497
- @lexer.status = :initial
1498
- @lexer.end_symbol = nil
1546
+ module_eval(<<'.,.,', 'parser.y', 227)
1547
+ def _reduce_61(val, _values, result)
1548
+ end_c_declaration
1499
1549
 
1500
1550
  result
1501
1551
  end
1502
1552
  .,.,
1503
1553
 
1504
- module_eval(<<'.,.,', 'parser.y', 228)
1505
- def _reduce_59(val, _values, result)
1554
+ module_eval(<<'.,.,', 'parser.y', 231)
1555
+ def _reduce_62(val, _values, result)
1506
1556
  result = val[0].append(val[3])
1507
1557
 
1508
1558
  result
1509
1559
  end
1510
1560
  .,.,
1511
1561
 
1512
- module_eval(<<'.,.,', 'parser.y', 232)
1513
- def _reduce_60(val, _values, result)
1514
- @lexer.status = :c_declaration
1515
- @lexer.end_symbol = '}'
1562
+ module_eval(<<'.,.,', 'parser.y', 235)
1563
+ def _reduce_63(val, _values, result)
1564
+ begin_c_declaration("}")
1516
1565
 
1517
1566
  result
1518
1567
  end
1519
1568
  .,.,
1520
1569
 
1521
- module_eval(<<'.,.,', 'parser.y', 237)
1522
- def _reduce_61(val, _values, result)
1523
- @lexer.status = :initial
1524
- @lexer.end_symbol = nil
1570
+ module_eval(<<'.,.,', 'parser.y', 239)
1571
+ def _reduce_64(val, _values, result)
1572
+ end_c_declaration
1525
1573
 
1526
1574
  result
1527
1575
  end
1528
1576
  .,.,
1529
1577
 
1530
- module_eval(<<'.,.,', 'parser.y', 242)
1531
- def _reduce_62(val, _values, result)
1578
+ module_eval(<<'.,.,', 'parser.y', 243)
1579
+ def _reduce_65(val, _values, result)
1532
1580
  result = [val[2]]
1533
1581
 
1534
1582
  result
1535
1583
  end
1536
1584
  .,.,
1537
1585
 
1538
- module_eval(<<'.,.,', 'parser.y', 247)
1539
- def _reduce_63(val, _values, result)
1586
+ module_eval(<<'.,.,', 'parser.y', 248)
1587
+ def _reduce_66(val, _values, result)
1540
1588
  result = [{tag: nil, tokens: val[0]}]
1541
1589
 
1542
1590
  result
1543
1591
  end
1544
1592
  .,.,
1545
1593
 
1546
- module_eval(<<'.,.,', 'parser.y', 251)
1547
- def _reduce_64(val, _values, result)
1594
+ module_eval(<<'.,.,', 'parser.y', 252)
1595
+ def _reduce_67(val, _values, result)
1548
1596
  result = [{tag: val[0], tokens: val[1]}]
1549
1597
 
1550
1598
  result
1551
1599
  end
1552
1600
  .,.,
1553
1601
 
1554
- module_eval(<<'.,.,', 'parser.y', 255)
1555
- def _reduce_65(val, _values, result)
1602
+ module_eval(<<'.,.,', 'parser.y', 256)
1603
+ def _reduce_68(val, _values, result)
1556
1604
  result = val[0].append({tag: nil, tokens: val[1]})
1557
1605
 
1558
1606
  result
1559
1607
  end
1560
1608
  .,.,
1561
1609
 
1562
- module_eval(<<'.,.,', 'parser.y', 258)
1563
- def _reduce_66(val, _values, result)
1610
+ module_eval(<<'.,.,', 'parser.y', 259)
1611
+ def _reduce_69(val, _values, result)
1564
1612
  result = [val[0]]
1565
1613
  result
1566
1614
  end
1567
1615
  .,.,
1568
1616
 
1569
- module_eval(<<'.,.,', 'parser.y', 259)
1570
- def _reduce_67(val, _values, result)
1617
+ module_eval(<<'.,.,', 'parser.y', 260)
1618
+ def _reduce_70(val, _values, result)
1571
1619
  result = val[0].append(val[1])
1572
1620
  result
1573
1621
  end
1574
1622
  .,.,
1575
1623
 
1576
- # reduce 68 omitted
1624
+ # reduce 71 omitted
1577
1625
 
1578
- module_eval(<<'.,.,', 'parser.y', 263)
1579
- def _reduce_69(val, _values, result)
1626
+ module_eval(<<'.,.,', 'parser.y', 264)
1627
+ def _reduce_72(val, _values, result)
1580
1628
  raise "Ident after %prec" if @prec_seen
1581
1629
  result
1582
1630
  end
1583
1631
  .,.,
1584
1632
 
1585
- module_eval(<<'.,.,', 'parser.y', 264)
1586
- def _reduce_70(val, _values, result)
1633
+ module_eval(<<'.,.,', 'parser.y', 265)
1634
+ def _reduce_73(val, _values, result)
1587
1635
  raise "Char after %prec" if @prec_seen
1588
1636
  result
1589
1637
  end
1590
1638
  .,.,
1591
1639
 
1592
- # reduce 71 omitted
1640
+ # reduce 74 omitted
1593
1641
 
1594
- # reduce 72 omitted
1642
+ # reduce 75 omitted
1595
1643
 
1596
- # reduce 73 omitted
1644
+ # reduce 76 omitted
1597
1645
 
1598
- # reduce 74 omitted
1646
+ # reduce 77 omitted
1599
1647
 
1600
- module_eval(<<'.,.,', 'parser.y', 274)
1601
- def _reduce_75(val, _values, result)
1648
+ module_eval(<<'.,.,', 'parser.y', 275)
1649
+ def _reduce_78(val, _values, result)
1602
1650
  lhs = val[0]
1603
- lhs.alias = val[1]
1651
+ lhs.alias_name = val[1]
1604
1652
  val[3].each {|hash|
1605
1653
  @grammar.add_rule(lhs: lhs, rhs: hash[:rhs], lineno: hash[:lineno])
1606
1654
  }
@@ -1609,110 +1657,111 @@ module_eval(<<'.,.,', 'parser.y', 274)
1609
1657
  end
1610
1658
  .,.,
1611
1659
 
1612
- module_eval(<<'.,.,', 'parser.y', 283)
1613
- def _reduce_76(val, _values, result)
1660
+ module_eval(<<'.,.,', 'parser.y', 284)
1661
+ def _reduce_79(val, _values, result)
1614
1662
  result = [{rhs: val[0], lineno: val[0].first&.line || @lexer.line - 1}]
1615
1663
 
1616
1664
  result
1617
1665
  end
1618
1666
  .,.,
1619
1667
 
1620
- module_eval(<<'.,.,', 'parser.y', 287)
1621
- def _reduce_77(val, _values, result)
1668
+ module_eval(<<'.,.,', 'parser.y', 288)
1669
+ def _reduce_80(val, _values, result)
1622
1670
  result = val[0].append({rhs: val[2], lineno: val[2].first&.line || @lexer.line - 1})
1623
1671
 
1624
1672
  result
1625
1673
  end
1626
1674
  .,.,
1627
1675
 
1628
- # reduce 78 omitted
1676
+ # reduce 81 omitted
1629
1677
 
1630
- module_eval(<<'.,.,', 'parser.y', 293)
1631
- def _reduce_79(val, _values, result)
1632
- result = []
1633
- @prec_seen = false
1634
- @code_after_prec = false
1678
+ module_eval(<<'.,.,', 'parser.y', 294)
1679
+ def _reduce_82(val, _values, result)
1680
+ reset_precs
1681
+ result = []
1635
1682
 
1636
1683
  result
1637
1684
  end
1638
1685
  .,.,
1639
1686
 
1640
1687
  module_eval(<<'.,.,', 'parser.y', 299)
1641
- def _reduce_80(val, _values, result)
1688
+ def _reduce_83(val, _values, result)
1689
+ reset_precs
1690
+ result = []
1691
+
1692
+ result
1693
+ end
1694
+ .,.,
1695
+
1696
+ module_eval(<<'.,.,', 'parser.y', 304)
1697
+ def _reduce_84(val, _values, result)
1642
1698
  token = val[1]
1643
- val[1].alias = val[2]
1699
+ token.alias_name = val[2]
1644
1700
  result = val[0].append(token)
1645
1701
 
1646
1702
  result
1647
1703
  end
1648
1704
  .,.,
1649
1705
 
1650
- module_eval(<<'.,.,', 'parser.y', 305)
1651
- def _reduce_81(val, _values, result)
1652
- if @prec_seen
1653
- raise "Multiple User_code after %prec" if @code_after_prec
1654
- @code_after_prec = true
1655
- end
1656
- @lexer.status = :c_declaration
1657
- @lexer.end_symbol = '}'
1706
+ module_eval(<<'.,.,', 'parser.y', 310)
1707
+ def _reduce_85(val, _values, result)
1708
+ token = Lrama::Lexer::Token::Parameterizing.new(s_value: val[1])
1709
+ result = val[0].append(token)
1658
1710
 
1659
1711
  result
1660
1712
  end
1661
1713
  .,.,
1662
1714
 
1663
- module_eval(<<'.,.,', 'parser.y', 314)
1664
- def _reduce_82(val, _values, result)
1665
- @lexer.status = :initial
1666
- @lexer.end_symbol = nil
1715
+ module_eval(<<'.,.,', 'parser.y', 315)
1716
+ def _reduce_86(val, _values, result)
1717
+ token = Lrama::Lexer::Token::Parameterizing.new(s_value: val[1])
1718
+ result = val[0].append(token)
1667
1719
 
1668
1720
  result
1669
1721
  end
1670
1722
  .,.,
1671
1723
 
1672
- module_eval(<<'.,.,', 'parser.y', 319)
1673
- def _reduce_83(val, _values, result)
1674
- token = val[3]
1675
- token.alias = val[6]
1676
- result = val[0].append(token)
1724
+ module_eval(<<'.,.,', 'parser.y', 320)
1725
+ def _reduce_87(val, _values, result)
1726
+ token = Lrama::Lexer::Token::Parameterizing.new(s_value: val[1])
1727
+ result = val[0].append(token)
1677
1728
 
1678
1729
  result
1679
1730
  end
1680
1731
  .,.,
1681
1732
 
1682
1733
  module_eval(<<'.,.,', 'parser.y', 325)
1683
- def _reduce_84(val, _values, result)
1734
+ def _reduce_88(val, _values, result)
1684
1735
  if @prec_seen
1685
1736
  raise "Multiple User_code after %prec" if @code_after_prec
1686
1737
  @code_after_prec = true
1687
1738
  end
1688
- @lexer.status = :c_declaration
1689
- @lexer.end_symbol = '}'
1739
+ begin_c_declaration("}")
1690
1740
 
1691
1741
  result
1692
1742
  end
1693
1743
  .,.,
1694
1744
 
1695
- module_eval(<<'.,.,', 'parser.y', 334)
1696
- def _reduce_85(val, _values, result)
1697
- @lexer.status = :initial
1698
- @lexer.end_symbol = nil
1745
+ module_eval(<<'.,.,', 'parser.y', 333)
1746
+ def _reduce_89(val, _values, result)
1747
+ end_c_declaration
1699
1748
 
1700
1749
  result
1701
1750
  end
1702
1751
  .,.,
1703
1752
 
1704
- module_eval(<<'.,.,', 'parser.y', 339)
1705
- def _reduce_86(val, _values, result)
1706
- token = val[2]
1707
- token.alias = val[5]
1708
- result = [token]
1753
+ module_eval(<<'.,.,', 'parser.y', 337)
1754
+ def _reduce_90(val, _values, result)
1755
+ token = val[3]
1756
+ token.alias_name = val[6]
1757
+ result = val[0].append(token)
1709
1758
 
1710
1759
  result
1711
1760
  end
1712
1761
  .,.,
1713
1762
 
1714
- module_eval(<<'.,.,', 'parser.y', 345)
1715
- def _reduce_87(val, _values, result)
1763
+ module_eval(<<'.,.,', 'parser.y', 343)
1764
+ def _reduce_91(val, _values, result)
1716
1765
  sym = @grammar.find_symbol_by_id!(val[2])
1717
1766
  result = val[0].append(sym)
1718
1767
  @prec_seen = true
@@ -1721,70 +1770,68 @@ module_eval(<<'.,.,', 'parser.y', 345)
1721
1770
  end
1722
1771
  .,.,
1723
1772
 
1724
- # reduce 88 omitted
1773
+ # reduce 92 omitted
1725
1774
 
1726
- module_eval(<<'.,.,', 'parser.y', 351)
1727
- def _reduce_89(val, _values, result)
1775
+ module_eval(<<'.,.,', 'parser.y', 349)
1776
+ def _reduce_93(val, _values, result)
1728
1777
  result = val[1].s_value
1729
1778
  result
1730
1779
  end
1731
1780
  .,.,
1732
1781
 
1733
- # reduce 90 omitted
1782
+ # reduce 94 omitted
1734
1783
 
1735
- # reduce 91 omitted
1784
+ # reduce 95 omitted
1736
1785
 
1737
- module_eval(<<'.,.,', 'parser.y', 358)
1738
- def _reduce_92(val, _values, result)
1739
- @lexer.status = :c_declaration
1740
- @lexer.end_symbol = '\Z'
1786
+ module_eval(<<'.,.,', 'parser.y', 356)
1787
+ def _reduce_96(val, _values, result)
1788
+ begin_c_declaration('\Z')
1741
1789
  @grammar.epilogue_first_lineno = @lexer.line + 1
1742
1790
 
1743
1791
  result
1744
1792
  end
1745
1793
  .,.,
1746
1794
 
1747
- module_eval(<<'.,.,', 'parser.y', 364)
1748
- def _reduce_93(val, _values, result)
1749
- @lexer.status = :initial
1750
- @lexer.end_symbol = nil
1795
+ module_eval(<<'.,.,', 'parser.y', 361)
1796
+ def _reduce_97(val, _values, result)
1797
+ end_c_declaration
1751
1798
  @grammar.epilogue = val[2].s_value
1752
1799
 
1753
1800
  result
1754
1801
  end
1755
1802
  .,.,
1756
1803
 
1757
- # reduce 94 omitted
1804
+ # reduce 98 omitted
1758
1805
 
1759
- # reduce 95 omitted
1806
+ # reduce 99 omitted
1760
1807
 
1761
- # reduce 96 omitted
1808
+ # reduce 100 omitted
1762
1809
 
1763
- # reduce 97 omitted
1810
+ # reduce 101 omitted
1764
1811
 
1765
- # reduce 98 omitted
1812
+ # reduce 102 omitted
1766
1813
 
1767
- module_eval(<<'.,.,', 'parser.y', 376)
1768
- def _reduce_99(val, _values, result)
1814
+ module_eval(<<'.,.,', 'parser.y', 372)
1815
+ def _reduce_103(val, _values, result)
1769
1816
  result = [val[0]]
1770
1817
  result
1771
1818
  end
1772
1819
  .,.,
1773
1820
 
1774
- module_eval(<<'.,.,', 'parser.y', 377)
1775
- def _reduce_100(val, _values, result)
1821
+ module_eval(<<'.,.,', 'parser.y', 373)
1822
+ def _reduce_104(val, _values, result)
1776
1823
  result = val[0].append(val[1])
1777
1824
  result
1778
1825
  end
1779
1826
  .,.,
1780
1827
 
1781
- # reduce 101 omitted
1828
+ # reduce 105 omitted
1782
1829
 
1783
- # reduce 102 omitted
1830
+ # reduce 106 omitted
1784
1831
 
1785
- module_eval(<<'.,.,', 'parser.y', 382)
1786
- def _reduce_103(val, _values, result)
1787
- result = Lrama::Lexer::Token.new(type: Lrama::Lexer::Token::Ident, s_value: val[0])
1832
+ module_eval(<<'.,.,', 'parser.y', 378)
1833
+ def _reduce_107(val, _values, result)
1834
+ result = Lrama::Lexer::Token::Ident.new(s_value: val[0])
1788
1835
  result
1789
1836
  end
1790
1837
  .,.,