aboutsummaryrefslogtreecommitdiffstats
path: root/tool
diff options
context:
space:
mode:
authoryui-knk <spiketeika@gmail.com>2023-10-26 07:54:47 +0900
committerYuichiro Kaneko <spiketeika@gmail.com>2023-10-26 17:15:38 +0900
commit7d159a87873d72027a8230d9cb63698d1f3c5cac (patch)
treefa02f6944a48c68d4299e3c290f72d3791bfa2ed /tool
parentc8d162c889008028b148437d02f36f4edaa749fd (diff)
downloadruby-7d159a87873d72027a8230d9cb63698d1f3c5cac.tar.gz
Lrama v0.5.8
Diffstat (limited to 'tool')
-rw-r--r--tool/lrama/lib/lrama/command.rb2
-rw-r--r--tool/lrama/lib/lrama/grammar.rb155
-rw-r--r--tool/lrama/lib/lrama/option_parser.rb3
-rw-r--r--tool/lrama/lib/lrama/parser.rb331
-rw-r--r--tool/lrama/lib/lrama/version.rb2
5 files changed, 210 insertions, 283 deletions
diff --git a/tool/lrama/lib/lrama/command.rb b/tool/lrama/lib/lrama/command.rb
index 5d8957da8f..afaecda506 100644
--- a/tool/lrama/lib/lrama/command.rb
+++ b/tool/lrama/lib/lrama/command.rb
@@ -8,7 +8,7 @@ module Lrama
warning = Lrama::Warning.new
text = options.y.read
options.y.close if options.y != STDIN
- grammar = Lrama::Parser.new(text).parse
+ grammar = Lrama::Parser.new(text, options.grammar_file).parse
states = Lrama::States.new(grammar, warning, trace_state: (options.trace_opts[:automaton] || options.trace_opts[:closure]))
states.compute
context = Lrama::Context.new(states)
diff --git a/tool/lrama/lib/lrama/grammar.rb b/tool/lrama/lib/lrama/grammar.rb
index 91685530a0..012202adbc 100644
--- a/tool/lrama/lib/lrama/grammar.rb
+++ b/tool/lrama/lib/lrama/grammar.rb
@@ -308,39 +308,45 @@ module Lrama
@nterms ||= @symbols.select(&:nterm?)
end
+ def scan_reference(scanner)
+ start = scanner.pos
+ case
+ # $ references
+ # It need to wrap an identifier with brackets to use ".-" for identifiers
+ when scanner.scan(/\$(<[a-zA-Z0-9_]+>)?\$/) # $$, $<long>$
+ tag = scanner[1] ? Lrama::Lexer::Token.new(type: Lrama::Lexer::Token::Tag, s_value: scanner[1]) : nil
+ return [:dollar, "$", tag, start, scanner.pos - 1]
+ when scanner.scan(/\$(<[a-zA-Z0-9_]+>)?(\d+)/) # $1, $2, $<long>1
+ tag = scanner[1] ? Lrama::Lexer::Token.new(type: Lrama::Lexer::Token::Tag, s_value: scanner[1]) : nil
+ return [:dollar, Integer(scanner[2]), tag, start, scanner.pos - 1]
+ when scanner.scan(/\$(<[a-zA-Z0-9_]+>)?([a-zA-Z_][a-zA-Z0-9_]*)/) # $foo, $expr, $<long>program (named reference without brackets)
+ tag = scanner[1] ? Lrama::Lexer::Token.new(type: Lrama::Lexer::Token::Tag, s_value: scanner[1]) : nil
+ return [:dollar, scanner[2], tag, start, scanner.pos - 1]
+ when scanner.scan(/\$(<[a-zA-Z0-9_]+>)?\[([a-zA-Z_.][-a-zA-Z0-9_.]*)\]/) # $expr.right, $expr-right, $<long>program (named reference with brackets)
+ tag = scanner[1] ? Lrama::Lexer::Token.new(type: Lrama::Lexer::Token::Tag, s_value: scanner[1]) : nil
+ return [:dollar, scanner[2], tag, start, scanner.pos - 1]
+
+ # @ references
+ # It need to wrap an identifier with brackets to use ".-" for identifiers
+ when scanner.scan(/@\$/) # @$
+ return [:at, "$", nil, start, scanner.pos - 1]
+ when scanner.scan(/@(\d+)/) # @1
+ return [:at, Integer(scanner[1]), nil, start, scanner.pos - 1]
+ when scanner.scan(/@([a-zA-Z][a-zA-Z0-9_]*)/) # @foo, @expr (named reference without brackets)
+ return [:at, scanner[1], nil, start, scanner.pos - 1]
+ when scanner.scan(/@\[([a-zA-Z_.][-a-zA-Z0-9_.]*)\]/) # @expr.right, @expr-right (named reference with brackets)
+ return [:at, scanner[1], nil, start, scanner.pos - 1]
+ end
+ end
+
def extract_references
unless initial_action.nil?
scanner = StringScanner.new(initial_action.s_value)
references = []
while !scanner.eos? do
- start = scanner.pos
- case
- # $ references
- # It need to wrap an identifier with brackets to use ".-" for identifiers
- when scanner.scan(/\$(<[a-zA-Z0-9_]+>)?\$/) # $$, $<long>$
- tag = scanner[1] ? Lrama::Lexer::Token.new(type: Lrama::Lexer::Token::Tag, s_value: scanner[1]) : nil
- references << [:dollar, "$", tag, start, scanner.pos - 1]
- when scanner.scan(/\$(<[a-zA-Z0-9_]+>)?(\d+)/) # $1, $2, $<long>1
- tag = scanner[1] ? Lrama::Lexer::Token.new(type: Lrama::Lexer::Token::Tag, s_value: scanner[1]) : nil
- references << [:dollar, Integer(scanner[2]), tag, start, scanner.pos - 1]
- when scanner.scan(/\$(<[a-zA-Z0-9_]+>)?([a-zA-Z_][a-zA-Z0-9_]*)/) # $foo, $expr, $<long>program (named reference without brackets)
- tag = scanner[1] ? Lrama::Lexer::Token.new(type: Lrama::Lexer::Token::Tag, s_value: scanner[1]) : nil
- references << [:dollar, scanner[2], tag, start, scanner.pos - 1]
- when scanner.scan(/\$(<[a-zA-Z0-9_]+>)?\[([a-zA-Z_.][-a-zA-Z0-9_.]*)\]/) # $expr.right, $expr-right, $<long>program (named reference with brackets)
- tag = scanner[1] ? Lrama::Lexer::Token.new(type: Lrama::Lexer::Token::Tag, s_value: scanner[1]) : nil
- references << [:dollar, scanner[2], tag, start, scanner.pos - 1]
-
- # @ references
- # It need to wrap an identifier with brackets to use ".-" for identifiers
- when scanner.scan(/@\$/) # @$
- references << [:at, "$", nil, start, scanner.pos - 1]
- when scanner.scan(/@(\d+)/) # @1
- references << [:at, Integer(scanner[1]), nil, start, scanner.pos - 1]
- when scanner.scan(/@([a-zA-Z][a-zA-Z0-9_]*)/) # @foo, @expr (named reference without brackets)
- references << [:at, scanner[1], nil, start, scanner.pos - 1]
- when scanner.scan(/@\[([a-zA-Z_.][-a-zA-Z0-9_.]*)\]/) # @expr.right, @expr-right (named reference with brackets)
- references << [:at, scanner[1], nil, start, scanner.pos - 1]
+ if reference = scan_reference(scanner)
+ references << reference
else
scanner.getch
end
@@ -355,33 +361,8 @@ module Lrama
references = []
while !scanner.eos? do
- start = scanner.pos
- case
- # $ references
- # It need to wrap an identifier with brackets to use ".-" for identifiers
- when scanner.scan(/\$(<[a-zA-Z0-9_]+>)?\$/) # $$, $<long>$
- tag = scanner[1] ? Lrama::Lexer::Token.new(type: Lrama::Lexer::Token::Tag, s_value: scanner[1]) : nil
- references << [:dollar, "$", tag, start, scanner.pos - 1]
- when scanner.scan(/\$(<[a-zA-Z0-9_]+>)?(\d+)/) # $1, $2, $<long>1
- tag = scanner[1] ? Lrama::Lexer::Token.new(type: Lrama::Lexer::Token::Tag, s_value: scanner[1]) : nil
- references << [:dollar, Integer(scanner[2]), tag, start, scanner.pos - 1]
- when scanner.scan(/\$(<[a-zA-Z0-9_]+>)?([a-zA-Z_][a-zA-Z0-9_]*)/) # $foo, $expr, $<long>program (named reference without brackets)
- tag = scanner[1] ? Lrama::Lexer::Token.new(type: Lrama::Lexer::Token::Tag, s_value: scanner[1]) : nil
- references << [:dollar, scanner[2], tag, start, scanner.pos - 1]
- when scanner.scan(/\$(<[a-zA-Z0-9_]+>)?\[([a-zA-Z_.][-a-zA-Z0-9_.]*)\]/) # $expr.right, $expr-right, $<long>program (named reference with brackets)
- tag = scanner[1] ? Lrama::Lexer::Token.new(type: Lrama::Lexer::Token::Tag, s_value: scanner[1]) : nil
- references << [:dollar, scanner[2], tag, start, scanner.pos - 1]
-
- # @ references
- # It need to wrap an identifier with brackets to use ".-" for identifiers
- when scanner.scan(/@\$/) # @$
- references << [:at, "$", nil, start, scanner.pos - 1]
- when scanner.scan(/@(\d+)/) # @1
- references << [:at, Integer(scanner[1]), nil, start, scanner.pos - 1]
- when scanner.scan(/@([a-zA-Z][a-zA-Z0-9_]*)/) # @foo, @expr (named reference without brackets)
- references << [:at, scanner[1], nil, start, scanner.pos - 1]
- when scanner.scan(/@\[([a-zA-Z_.][-a-zA-Z0-9_.]*)\]/) # @expr.right, @expr-right (named reference with brackets)
- references << [:at, scanner[1], nil, start, scanner.pos - 1]
+ if reference = scan_reference(scanner)
+ references << reference
else
scanner.getch
end
@@ -396,33 +377,8 @@ module Lrama
references = []
while !scanner.eos? do
- start = scanner.pos
- case
- # $ references
- # It need to wrap an identifier with brackets to use ".-" for identifiers
- when scanner.scan(/\$(<[a-zA-Z0-9_]+>)?\$/) # $$, $<long>$
- tag = scanner[1] ? Lrama::Lexer::Token.new(type: Lrama::Lexer::Token::Tag, s_value: scanner[1]) : nil
- references << [:dollar, "$", tag, start, scanner.pos - 1]
- when scanner.scan(/\$(<[a-zA-Z0-9_]+>)?(\d+)/) # $1, $2, $<long>1
- tag = scanner[1] ? Lrama::Lexer::Token.new(type: Lrama::Lexer::Token::Tag, s_value: scanner[1]) : nil
- references << [:dollar, Integer(scanner[2]), tag, start, scanner.pos - 1]
- when scanner.scan(/\$(<[a-zA-Z0-9_]+>)?([a-zA-Z_][a-zA-Z0-9_]*)/) # $foo, $expr, $<long>program (named reference without brackets)
- tag = scanner[1] ? Lrama::Lexer::Token.new(type: Lrama::Lexer::Token::Tag, s_value: scanner[1]) : nil
- references << [:dollar, scanner[2], tag, start, scanner.pos - 1]
- when scanner.scan(/\$(<[a-zA-Z0-9_]+>)?\[([a-zA-Z_.][-a-zA-Z0-9_.]*)\]/) # $expr.right, $expr-right, $<long>program (named reference with brackets)
- tag = scanner[1] ? Lrama::Lexer::Token.new(type: Lrama::Lexer::Token::Tag, s_value: scanner[1]) : nil
- references << [:dollar, scanner[2], tag, start, scanner.pos - 1]
-
- # @ references
- # It need to wrap an identifier with brackets to use ".-" for identifiers
- when scanner.scan(/@\$/) # @$
- references << [:at, "$", nil, start, scanner.pos - 1]
- when scanner.scan(/@(\d+)/) # @1
- references << [:at, Integer(scanner[1]), nil, start, scanner.pos - 1]
- when scanner.scan(/@([a-zA-Z][a-zA-Z0-9_]*)/) # @foo, @expr (named reference without brackets)
- references << [:at, scanner[1], nil, start, scanner.pos - 1]
- when scanner.scan(/@\[([a-zA-Z_.][-a-zA-Z0-9_.]*)\]/) # @expr.right, @expr-right (named reference with brackets)
- references << [:at, scanner[1], nil, start, scanner.pos - 1]
+ if reference = scan_reference(scanner)
+ references << reference
else
scanner.getch
end
@@ -440,34 +396,9 @@ module Lrama
references = []
while !scanner.eos? do
- start = scanner.pos
case
- # $ references
- # It need to wrap an identifier with brackets to use ".-" for identifiers
- when scanner.scan(/\$(<[a-zA-Z0-9_]+>)?\$/) # $$, $<long>$
- tag = scanner[1] ? Lrama::Lexer::Token.new(type: Lrama::Lexer::Token::Tag, s_value: scanner[1]) : nil
- references << [:dollar, "$", tag, start, scanner.pos - 1]
- when scanner.scan(/\$(<[a-zA-Z0-9_]+>)?(\d+)/) # $1, $2, $<long>1
- tag = scanner[1] ? Lrama::Lexer::Token.new(type: Lrama::Lexer::Token::Tag, s_value: scanner[1]) : nil
- references << [:dollar, Integer(scanner[2]), tag, start, scanner.pos - 1]
- when scanner.scan(/\$(<[a-zA-Z0-9_]+>)?([a-zA-Z_][a-zA-Z0-9_]*)/) # $foo, $expr, $<long>program (named reference without brackets)
- tag = scanner[1] ? Lrama::Lexer::Token.new(type: Lrama::Lexer::Token::Tag, s_value: scanner[1]) : nil
- references << [:dollar, scanner[2], tag, start, scanner.pos - 1]
- when scanner.scan(/\$(<[a-zA-Z0-9_]+>)?\[([a-zA-Z_.][-a-zA-Z0-9_.]*)\]/) # $expr.right, $expr-right, $<long>program (named reference with brackets)
- tag = scanner[1] ? Lrama::Lexer::Token.new(type: Lrama::Lexer::Token::Tag, s_value: scanner[1]) : nil
- references << [:dollar, scanner[2], tag, start, scanner.pos - 1]
-
- # @ references
- # It need to wrap an identifier with brackets to use ".-" for identifiers
- when scanner.scan(/@\$/) # @$
- references << [:at, "$", nil, start, scanner.pos - 1]
- when scanner.scan(/@(\d+)/) # @1
- references << [:at, Integer(scanner[1]), nil, start, scanner.pos - 1]
- when scanner.scan(/@([a-zA-Z][a-zA-Z0-9_]*)/) # @foo, @expr (named reference without brackets)
- references << [:at, scanner[1], nil, start, scanner.pos - 1]
- when scanner.scan(/@\[([a-zA-Z_.][-a-zA-Z0-9_.]*)\]/) # @expr.right, @expr-right (named reference with brackets)
- references << [:at, scanner[1], nil, start, scanner.pos - 1]
-
+ when reference = scan_reference(scanner)
+ references << reference
when scanner.scan(/\/\*/)
scanner.scan_until(/\*\//)
else
@@ -482,14 +413,6 @@ module Lrama
end
end
- def create_token(type, s_value, line, column)
- t = Token.new(type: type, s_value: s_value)
- t.line = line
- t.column = column
-
- return t
- end
-
private
def find_nterm_by_id!(id)
diff --git a/tool/lrama/lib/lrama/option_parser.rb b/tool/lrama/lib/lrama/option_parser.rb
index 86e482912b..b0415cdf97 100644
--- a/tool/lrama/lib/lrama/option_parser.rb
+++ b/tool/lrama/lib/lrama/option_parser.rb
@@ -61,7 +61,6 @@ module Lrama
o.separator ''
o.separator 'Output:'
o.on('-H', '--header=[FILE]', 'also produce a header file named FILE') {|v| @options.header = true; @options.header_file = v }
- o.on('-h=[FILE]', 'also produce a header file named FILE (deprecated)') {|v| @options.header = true; @options.header_file = v }
o.on('-d', 'also produce a header file') { @options.header = true }
o.on('-r', '--report=THINGS', Array, 'also produce details on the automaton') {|v| @report = v }
o.on('--report-file=FILE', 'also produce details on the automaton output to a file named FILE') {|v| @options.report_file = v }
@@ -74,7 +73,7 @@ module Lrama
o.separator ''
o.separator 'Other options:'
o.on('-V', '--version', "output version information and exit") {|v| puts "lrama #{Lrama::VERSION}"; exit 0 }
- o.on('--help', "display this help and exit") {|v| puts o; exit 0 }
+ o.on('-h', '--help', "display this help and exit") {|v| puts o; exit 0 }
o.separator ''
o.parse!(argv)
end
diff --git a/tool/lrama/lib/lrama/parser.rb b/tool/lrama/lib/lrama/parser.rb
index 82bd90c32c..96d0bd4626 100644
--- a/tool/lrama/lib/lrama/parser.rb
+++ b/tool/lrama/lib/lrama/parser.rb
@@ -668,12 +668,13 @@ end
module Lrama
class Parser < Racc::Parser
-module_eval(<<'...end parser.y/module_eval...', 'parser.y', 387)
+module_eval(<<'...end parser.y/module_eval...', 'parser.y', 388)
include Lrama::Report::Duration
-def initialize(text)
+def initialize(text, path)
@text = text
+ @path = path
end
def parse
@@ -696,74 +697,78 @@ def next_token
end
def on_error(error_token_id, error_value, value_stack)
- raise ParseError, sprintf("\n%d:%d: parse error on value %s (%s)",
- @lexer.line, @lexer.column, error_value.inspect, token_to_str(error_token_id) || '?')
+ source = @text.split("\n")[error_value.line - 1]
+ raise ParseError, <<~ERROR
+ #{@path}:#{@lexer.line}:#{@lexer.column}: parse error on value #{error_value.inspect} (#{token_to_str(error_token_id) || '?'})
+ #{source}
+ #{' ' * @lexer.column}^
+ ERROR
end
...end parser.y/module_eval...
##### State transition tables begin ###
racc_action_table = [
- 77, 6, 41, 42, 7, 83, 65, 56, 41, 42,
- 68, 41, 42, 3, 134, 8, 20, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 65, 82, 41, 42,
- 65, 132, 135, 32, 38, 84, 41, 42, 134, 68,
- 41, 42, 65, 68, 41, 42, 131, 61, 41, 42,
- 39, 9, 41, 42, 44, 14, 135, 12, 65, 13,
- 15, 16, 17, 18, 41, 42, 19, 20, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 65, 46, 65,
- 41, 42, 65, 46, 65, 41, 42, 65, 41, 42,
- 65, 41, 42, 65, 41, 42, 65, 41, 42, 41,
- 42, 41, 42, 65, 41, 42, 41, 42, 153, 41,
- 42, 153, 41, 42, 153, 41, 42, 153, 41, 42,
- 65, 68, 41, 42, 153, 41, 42, 20, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 41, 42, 41,
- 42, 153, 41, 42, 46, 38, 41, 42, 41, 42,
- 41, 42, 41, 42, 41, 42, 49, 50, 51, 52,
+ 82, 132, 83, 42, 42, 41, 41, 65, 65, 42,
+ 42, 41, 41, 131, 56, 68, 3, 8, 38, 134,
+ 134, 42, 42, 41, 41, 65, 61, 68, 38, 6,
+ 32, 7, 84, 77, 135, 135, 20, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 20, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 9, 39, 44, 14,
+ 12, 13, 15, 16, 17, 18, 46, 46, 19, 20,
+ 22, 23, 24, 25, 26, 27, 28, 29, 30, 42,
+ 42, 41, 41, 46, 68, 68, 42, 42, 41, 41,
+ 65, 153, 42, 42, 41, 41, 65, 153, 42, 42,
+ 41, 41, 65, 153, 42, 42, 41, 41, 65, 153,
+ 42, 42, 41, 41, 65, 153, 42, 42, 41, 41,
+ 65, 153, 42, 42, 41, 41, 65, 65, 42, 42,
+ 41, 41, 65, 65, 42, 42, 41, 41, 65, 65,
+ 42, 42, 41, 41, 42, 42, 41, 41, 42, 42,
+ 41, 41, 42, 42, 41, 41, 49, 50, 51, 52,
53, 74, 78, 80, 85, 85, 85, 92, 96, 97,
105, 106, 108, 109, 110, 111, 112, 113, 116, 118,
119, 122, 123, 124, 138, 139, 140, 141, 142, 143,
122, 80, 148, 149, 156, 160, 161, 80, 80 ]
racc_action_check = [
- 33, 2, 13, 13, 2, 40, 121, 25, 25, 25,
- 27, 27, 27, 1, 121, 3, 33, 33, 33, 33,
- 33, 33, 33, 33, 33, 33, 26, 40, 121, 121,
- 144, 120, 121, 7, 33, 40, 55, 55, 144, 28,
- 28, 28, 60, 29, 29, 29, 120, 26, 26, 26,
- 12, 4, 144, 144, 14, 4, 144, 4, 61, 4,
- 4, 4, 4, 4, 60, 60, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 97, 15, 99,
- 61, 61, 117, 16, 135, 56, 56, 141, 66, 66,
- 142, 67, 67, 143, 68, 68, 150, 71, 71, 97,
- 97, 99, 99, 154, 117, 117, 135, 135, 141, 141,
- 141, 142, 142, 142, 143, 143, 143, 150, 150, 150,
- 155, 30, 30, 30, 154, 154, 154, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 72, 72, 73,
- 73, 155, 155, 155, 17, 9, 92, 92, 94, 94,
- 100, 100, 102, 102, 114, 114, 18, 20, 22, 23,
+ 40, 120, 40, 121, 144, 121, 144, 121, 144, 25,
+ 27, 25, 27, 120, 25, 27, 1, 3, 9, 121,
+ 144, 26, 28, 26, 28, 26, 26, 28, 33, 2,
+ 7, 2, 40, 33, 121, 144, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 4, 12, 14, 4,
+ 4, 4, 4, 4, 4, 4, 15, 16, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 29,
+ 30, 29, 30, 17, 29, 30, 141, 13, 141, 13,
+ 141, 141, 142, 55, 142, 55, 142, 142, 143, 56,
+ 143, 56, 143, 143, 150, 66, 150, 66, 150, 150,
+ 154, 67, 154, 67, 154, 154, 155, 68, 155, 68,
+ 155, 155, 60, 61, 60, 61, 60, 61, 97, 99,
+ 97, 99, 97, 99, 117, 135, 117, 135, 117, 135,
+ 71, 72, 71, 72, 73, 92, 73, 92, 94, 100,
+ 94, 100, 102, 114, 102, 114, 18, 20, 22, 23,
24, 31, 36, 37, 45, 47, 48, 54, 58, 59,
79, 80, 86, 87, 88, 89, 90, 91, 95, 103,
104, 105, 106, 107, 125, 126, 127, 128, 129, 130,
131, 133, 136, 137, 146, 157, 159, 160, 161 ]
racc_action_pointer = [
- nil, 13, -2, 15, 49, nil, nil, 26, nil, 109,
- nil, nil, 41, -27, 47, 63, 68, 129, 141, nil,
- 142, nil, 143, 144, 145, -21, 19, -18, 11, 15,
- 93, 157, nil, -2, nil, nil, 145, 129, nil, nil,
- -2, nil, nil, nil, nil, 149, nil, 150, 151, nil,
- nil, nil, nil, nil, 139, 7, 56, nil, 159, 141,
- 35, 51, nil, nil, nil, nil, 59, 62, 65, nil,
- nil, 68, 108, 110, nil, nil, nil, nil, nil, 139,
- 142, nil, nil, nil, nil, nil, 168, 169, 170, 171,
- 172, 173, 117, nil, 119, 171, nil, 70, nil, 72,
- 121, nil, 123, 174, 176, 166, 147, 179, nil, nil,
- nil, nil, nil, nil, 125, nil, nil, 75, nil, nil,
- 14, -1, nil, nil, nil, 168, 169, 170, 171, 172,
- 173, 175, nil, 157, nil, 77, 188, 177, nil, nil,
- nil, 80, 83, 86, 23, nil, 190, nil, nil, nil,
- 89, nil, nil, nil, 96, 113, nil, 179, nil, 180,
- 163, 164, nil, nil ]
+ nil, 16, 19, 17, 47, nil, nil, 23, nil, 14,
+ nil, nil, 51, 84, 51, 47, 48, 64, 137, nil,
+ 138, nil, 139, 140, 141, 6, 18, 7, 19, 76,
+ 77, 159, nil, 24, nil, nil, 141, 128, nil, nil,
+ -5, nil, nil, nil, nil, 145, nil, 146, 147, nil,
+ nil, nil, nil, nil, 159, 90, 96, nil, 162, 161,
+ 119, 120, nil, nil, nil, nil, 102, 108, 114, nil,
+ nil, 137, 138, 141, nil, nil, nil, nil, nil, 138,
+ 166, nil, nil, nil, nil, nil, 170, 171, 172, 173,
+ 174, 175, 142, nil, 145, 171, nil, 125, nil, 126,
+ 146, nil, 149, 168, 178, 162, 146, 181, nil, nil,
+ nil, nil, nil, nil, 150, nil, nil, 131, nil, nil,
+ -20, 0, nil, nil, nil, 164, 165, 166, 167, 168,
+ 169, 171, nil, 156, nil, 132, 190, 173, nil, nil,
+ nil, 83, 89, 95, 1, nil, 192, nil, nil, nil,
+ 101, nil, nil, nil, 107, 113, nil, 175, nil, 176,
+ 162, 163, nil, nil ]
racc_action_default = [
-2, -104, -8, -104, -104, -3, -4, -104, 164, -104,
@@ -943,41 +948,41 @@ racc_shift_n = 164
racc_token_table = {
false => 0,
:error => 1,
- "%%" => 2,
- "%{" => 3,
- :C_DECLARATION => 4,
- "%}" => 5,
- "%require" => 6,
+ :C_DECLARATION => 2,
+ :CHARACTER => 3,
+ :IDENT_COLON => 4,
+ :IDENTIFIER => 5,
+ :INTEGER => 6,
:STRING => 7,
- "%expect" => 8,
- :INTEGER => 9,
- "%define" => 10,
- "%param" => 11,
- "%lex-param" => 12,
- "%parse-param" => 13,
- "%initial-action" => 14,
- "{" => 15,
- "}" => 16,
- ";" => 17,
- "%union" => 18,
- "%destructor" => 19,
- "%printer" => 20,
- "%error-token" => 21,
- "%token" => 22,
- "%type" => 23,
- "%left" => 24,
- "%right" => 25,
- "%precedence" => 26,
- "%nonassoc" => 27,
- :TAG => 28,
- :IDENTIFIER => 29,
- :CHARACTER => 30,
- ":" => 31,
- "|" => 32,
- "%prec" => 33,
- "[" => 34,
- "]" => 35,
- :IDENT_COLON => 36,
+ :TAG => 8,
+ "%%" => 9,
+ "%{" => 10,
+ "%}" => 11,
+ "%require" => 12,
+ "%expect" => 13,
+ "%define" => 14,
+ "%param" => 15,
+ "%lex-param" => 16,
+ "%parse-param" => 17,
+ "%initial-action" => 18,
+ "{" => 19,
+ "}" => 20,
+ ";" => 21,
+ "%union" => 22,
+ "%destructor" => 23,
+ "%printer" => 24,
+ "%error-token" => 25,
+ "%token" => 26,
+ "%type" => 27,
+ "%left" => 28,
+ "%right" => 29,
+ "%precedence" => 30,
+ "%nonassoc" => 31,
+ ":" => 32,
+ "|" => 33,
+ "%prec" => 34,
+ "[" => 35,
+ "]" => 36,
"{...}" => 37 }
racc_nt_base = 38
@@ -1004,14 +1009,18 @@ Ractor.make_shareable(Racc_arg) if defined?(Ractor)
Racc_token_to_s_table = [
"$end",
"error",
+ "C_DECLARATION",
+ "CHARACTER",
+ "IDENT_COLON",
+ "IDENTIFIER",
+ "INTEGER",
+ "STRING",
+ "TAG",
"\"%%\"",
"\"%{\"",
- "C_DECLARATION",
"\"%}\"",
"\"%require\"",
- "STRING",
"\"%expect\"",
- "INTEGER",
"\"%define\"",
"\"%param\"",
"\"%lex-param\"",
@@ -1030,15 +1039,11 @@ Racc_token_to_s_table = [
"\"%right\"",
"\"%precedence\"",
"\"%nonassoc\"",
- "TAG",
- "IDENTIFIER",
- "CHARACTER",
"\":\"",
"\"|\"",
"\"%prec\"",
"\"[\"",
"\"]\"",
- "IDENT_COLON",
"\"{...}\"",
"$start",
"input",
@@ -1109,7 +1114,7 @@ Racc_debug_parser = false
# reduce 3 omitted
-module_eval(<<'.,.,', 'parser.y', 9)
+module_eval(<<'.,.,', 'parser.y', 10)
def _reduce_4(val, _values, result)
@lexer.status = :c_declaration
@lexer.end_symbol = '%}'
@@ -1119,7 +1124,7 @@ module_eval(<<'.,.,', 'parser.y', 9)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 15)
+module_eval(<<'.,.,', 'parser.y', 16)
def _reduce_5(val, _values, result)
@lexer.status = :initial
@lexer.end_symbol = nil
@@ -1128,7 +1133,7 @@ module_eval(<<'.,.,', 'parser.y', 15)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 20)
+module_eval(<<'.,.,', 'parser.y', 21)
def _reduce_6(val, _values, result)
@grammar.prologue = val[2].s_value
@@ -1138,7 +1143,7 @@ module_eval(<<'.,.,', 'parser.y', 20)
# reduce 7 omitted
-module_eval(<<'.,.,', 'parser.y', 24)
+module_eval(<<'.,.,', 'parser.y', 25)
def _reduce_8(val, _values, result)
result = ""
result
@@ -1149,7 +1154,7 @@ module_eval(<<'.,.,', 'parser.y', 24)
# reduce 10 omitted
-module_eval(<<'.,.,', 'parser.y', 28)
+module_eval(<<'.,.,', 'parser.y', 29)
def _reduce_11(val, _values, result)
@grammar.expect = val[1]
result
@@ -1162,7 +1167,7 @@ module_eval(<<'.,.,', 'parser.y', 28)
# reduce 14 omitted
-module_eval(<<'.,.,', 'parser.y', 34)
+module_eval(<<'.,.,', 'parser.y', 35)
def _reduce_15(val, _values, result)
val[1].each {|token|
token.references = []
@@ -1173,7 +1178,7 @@ module_eval(<<'.,.,', 'parser.y', 34)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 41)
+module_eval(<<'.,.,', 'parser.y', 42)
def _reduce_16(val, _values, result)
val[1].each {|token|
token.references = []
@@ -1184,7 +1189,7 @@ module_eval(<<'.,.,', 'parser.y', 41)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 48)
+module_eval(<<'.,.,', 'parser.y', 49)
def _reduce_17(val, _values, result)
@lexer.status = :c_declaration
@lexer.end_symbol = '}'
@@ -1193,7 +1198,7 @@ module_eval(<<'.,.,', 'parser.y', 48)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 53)
+module_eval(<<'.,.,', 'parser.y', 54)
def _reduce_18(val, _values, result)
@lexer.status = :initial
@lexer.end_symbol = nil
@@ -1202,7 +1207,7 @@ module_eval(<<'.,.,', 'parser.y', 53)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 58)
+module_eval(<<'.,.,', 'parser.y', 59)
def _reduce_19(val, _values, result)
@grammar.initial_action = @grammar.build_code(:initial_action, val[3])
@@ -1212,7 +1217,7 @@ module_eval(<<'.,.,', 'parser.y', 58)
# reduce 20 omitted
-module_eval(<<'.,.,', 'parser.y', 64)
+module_eval(<<'.,.,', 'parser.y', 65)
def _reduce_21(val, _values, result)
@lexer.status = :c_declaration
@lexer.end_symbol = '}'
@@ -1221,7 +1226,7 @@ module_eval(<<'.,.,', 'parser.y', 64)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 69)
+module_eval(<<'.,.,', 'parser.y', 70)
def _reduce_22(val, _values, result)
@lexer.status = :initial
@lexer.end_symbol = nil
@@ -1230,7 +1235,7 @@ module_eval(<<'.,.,', 'parser.y', 69)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 74)
+module_eval(<<'.,.,', 'parser.y', 75)
def _reduce_23(val, _values, result)
@grammar.set_union(@grammar.build_code(:union, val[3]), val[3].line)
@@ -1240,7 +1245,7 @@ module_eval(<<'.,.,', 'parser.y', 74)
# reduce 24 omitted
-module_eval(<<'.,.,', 'parser.y', 79)
+module_eval(<<'.,.,', 'parser.y', 80)
def _reduce_25(val, _values, result)
@lexer.status = :c_declaration
@lexer.end_symbol = '}'
@@ -1249,7 +1254,7 @@ module_eval(<<'.,.,', 'parser.y', 79)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 84)
+module_eval(<<'.,.,', 'parser.y', 85)
def _reduce_26(val, _values, result)
@lexer.status = :initial
@lexer.end_symbol = nil
@@ -1260,7 +1265,7 @@ module_eval(<<'.,.,', 'parser.y', 84)
# reduce 27 omitted
-module_eval(<<'.,.,', 'parser.y', 90)
+module_eval(<<'.,.,', 'parser.y', 91)
def _reduce_28(val, _values, result)
@lexer.status = :c_declaration
@lexer.end_symbol = '}'
@@ -1269,7 +1274,7 @@ module_eval(<<'.,.,', 'parser.y', 90)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 95)
+module_eval(<<'.,.,', 'parser.y', 96)
def _reduce_29(val, _values, result)
@lexer.status = :initial
@lexer.end_symbol = nil
@@ -1278,7 +1283,7 @@ module_eval(<<'.,.,', 'parser.y', 95)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 100)
+module_eval(<<'.,.,', 'parser.y', 101)
def _reduce_30(val, _values, result)
@grammar.add_printer(ident_or_tags: val[6], code: @grammar.build_code(:printer, val[3]), lineno: val[3].line)
@@ -1286,7 +1291,7 @@ module_eval(<<'.,.,', 'parser.y', 100)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 104)
+module_eval(<<'.,.,', 'parser.y', 105)
def _reduce_31(val, _values, result)
@lexer.status = :c_declaration
@lexer.end_symbol = '}'
@@ -1295,7 +1300,7 @@ module_eval(<<'.,.,', 'parser.y', 104)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 109)
+module_eval(<<'.,.,', 'parser.y', 110)
def _reduce_32(val, _values, result)
@lexer.status = :initial
@lexer.end_symbol = nil
@@ -1304,7 +1309,7 @@ module_eval(<<'.,.,', 'parser.y', 109)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 114)
+module_eval(<<'.,.,', 'parser.y', 115)
def _reduce_33(val, _values, result)
@grammar.add_error_token(ident_or_tags: val[6], code: @grammar.build_code(:error_token, val[3]), lineno: val[3].line)
@@ -1314,7 +1319,7 @@ module_eval(<<'.,.,', 'parser.y', 114)
# reduce 34 omitted
-module_eval(<<'.,.,', 'parser.y', 120)
+module_eval(<<'.,.,', 'parser.y', 121)
def _reduce_35(val, _values, result)
val[1].each {|hash|
hash[:tokens].each {|id|
@@ -1326,7 +1331,7 @@ module_eval(<<'.,.,', 'parser.y', 120)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 128)
+module_eval(<<'.,.,', 'parser.y', 129)
def _reduce_36(val, _values, result)
val[1].each {|hash|
hash[:tokens].each {|id|
@@ -1340,7 +1345,7 @@ module_eval(<<'.,.,', 'parser.y', 128)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 138)
+module_eval(<<'.,.,', 'parser.y', 139)
def _reduce_37(val, _values, result)
val[1].each {|hash|
hash[:tokens].each {|id|
@@ -1354,7 +1359,7 @@ module_eval(<<'.,.,', 'parser.y', 138)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 148)
+module_eval(<<'.,.,', 'parser.y', 149)
def _reduce_38(val, _values, result)
val[1].each {|hash|
hash[:tokens].each {|id|
@@ -1368,7 +1373,7 @@ module_eval(<<'.,.,', 'parser.y', 148)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 158)
+module_eval(<<'.,.,', 'parser.y', 159)
def _reduce_39(val, _values, result)
val[1].each {|hash|
hash[:tokens].each {|id|
@@ -1382,7 +1387,7 @@ module_eval(<<'.,.,', 'parser.y', 158)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 169)
+module_eval(<<'.,.,', 'parser.y', 170)
def _reduce_40(val, _values, result)
val[0].each {|token_declaration|
@grammar.add_term(id: token_declaration[0], alias_name: token_declaration[2], token_id: token_declaration[1], tag: nil, replace: true)
@@ -1392,7 +1397,7 @@ module_eval(<<'.,.,', 'parser.y', 169)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 175)
+module_eval(<<'.,.,', 'parser.y', 176)
def _reduce_41(val, _values, result)
val[1].each {|token_declaration|
@grammar.add_term(id: token_declaration[0], alias_name: token_declaration[2], token_id: token_declaration[1], tag: val[0], replace: true)
@@ -1402,7 +1407,7 @@ module_eval(<<'.,.,', 'parser.y', 175)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 181)
+module_eval(<<'.,.,', 'parser.y', 182)
def _reduce_42(val, _values, result)
val[2].each {|token_declaration|
@grammar.add_term(id: token_declaration[0], alias_name: token_declaration[2], token_id: token_declaration[1], tag: val[1], replace: true)
@@ -1412,21 +1417,21 @@ module_eval(<<'.,.,', 'parser.y', 181)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 186)
+module_eval(<<'.,.,', 'parser.y', 187)
def _reduce_43(val, _values, result)
result = [val[0]]
result
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 187)
+module_eval(<<'.,.,', 'parser.y', 188)
def _reduce_44(val, _values, result)
result = val[0].append(val[1])
result
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 189)
+module_eval(<<'.,.,', 'parser.y', 190)
def _reduce_45(val, _values, result)
result = val
result
@@ -1441,7 +1446,7 @@ module_eval(<<'.,.,', 'parser.y', 189)
# reduce 49 omitted
-module_eval(<<'.,.,', 'parser.y', 199)
+module_eval(<<'.,.,', 'parser.y', 200)
def _reduce_50(val, _values, result)
result = [{tag: nil, tokens: val[0]}]
@@ -1449,7 +1454,7 @@ module_eval(<<'.,.,', 'parser.y', 199)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 203)
+module_eval(<<'.,.,', 'parser.y', 204)
def _reduce_51(val, _values, result)
result = [{tag: val[0], tokens: val[1]}]
@@ -1457,7 +1462,7 @@ module_eval(<<'.,.,', 'parser.y', 203)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 207)
+module_eval(<<'.,.,', 'parser.y', 208)
def _reduce_52(val, _values, result)
result = val[0].append({tag: val[1], tokens: val[2]})
@@ -1465,14 +1470,14 @@ module_eval(<<'.,.,', 'parser.y', 207)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 210)
+module_eval(<<'.,.,', 'parser.y', 211)
def _reduce_53(val, _values, result)
result = [val[0]]
result
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 211)
+module_eval(<<'.,.,', 'parser.y', 212)
def _reduce_54(val, _values, result)
result = val[0].append(val[1])
result
@@ -1483,7 +1488,7 @@ module_eval(<<'.,.,', 'parser.y', 211)
# reduce 56 omitted
-module_eval(<<'.,.,', 'parser.y', 218)
+module_eval(<<'.,.,', 'parser.y', 219)
def _reduce_57(val, _values, result)
@lexer.status = :c_declaration
@lexer.end_symbol = '}'
@@ -1492,7 +1497,7 @@ module_eval(<<'.,.,', 'parser.y', 218)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 223)
+module_eval(<<'.,.,', 'parser.y', 224)
def _reduce_58(val, _values, result)
@lexer.status = :initial
@lexer.end_symbol = nil
@@ -1501,7 +1506,7 @@ module_eval(<<'.,.,', 'parser.y', 223)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 228)
+module_eval(<<'.,.,', 'parser.y', 229)
def _reduce_59(val, _values, result)
result = val[0].append(val[3])
@@ -1509,7 +1514,7 @@ module_eval(<<'.,.,', 'parser.y', 228)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 232)
+module_eval(<<'.,.,', 'parser.y', 233)
def _reduce_60(val, _values, result)
@lexer.status = :c_declaration
@lexer.end_symbol = '}'
@@ -1518,7 +1523,7 @@ module_eval(<<'.,.,', 'parser.y', 232)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 237)
+module_eval(<<'.,.,', 'parser.y', 238)
def _reduce_61(val, _values, result)
@lexer.status = :initial
@lexer.end_symbol = nil
@@ -1527,7 +1532,7 @@ module_eval(<<'.,.,', 'parser.y', 237)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 242)
+module_eval(<<'.,.,', 'parser.y', 243)
def _reduce_62(val, _values, result)
result = [val[2]]
@@ -1535,7 +1540,7 @@ module_eval(<<'.,.,', 'parser.y', 242)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 247)
+module_eval(<<'.,.,', 'parser.y', 248)
def _reduce_63(val, _values, result)
result = [{tag: nil, tokens: val[0]}]
@@ -1543,7 +1548,7 @@ module_eval(<<'.,.,', 'parser.y', 247)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 251)
+module_eval(<<'.,.,', 'parser.y', 252)
def _reduce_64(val, _values, result)
result = [{tag: val[0], tokens: val[1]}]
@@ -1551,7 +1556,7 @@ module_eval(<<'.,.,', 'parser.y', 251)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 255)
+module_eval(<<'.,.,', 'parser.y', 256)
def _reduce_65(val, _values, result)
result = val[0].append({tag: nil, tokens: val[1]})
@@ -1559,14 +1564,14 @@ module_eval(<<'.,.,', 'parser.y', 255)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 258)
+module_eval(<<'.,.,', 'parser.y', 259)
def _reduce_66(val, _values, result)
result = [val[0]]
result
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 259)
+module_eval(<<'.,.,', 'parser.y', 260)
def _reduce_67(val, _values, result)
result = val[0].append(val[1])
result
@@ -1575,14 +1580,14 @@ module_eval(<<'.,.,', 'parser.y', 259)
# reduce 68 omitted
-module_eval(<<'.,.,', 'parser.y', 263)
+module_eval(<<'.,.,', 'parser.y', 264)
def _reduce_69(val, _values, result)
raise "Ident after %prec" if @prec_seen
result
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 264)
+module_eval(<<'.,.,', 'parser.y', 265)
def _reduce_70(val, _values, result)
raise "Char after %prec" if @prec_seen
result
@@ -1597,7 +1602,7 @@ module_eval(<<'.,.,', 'parser.y', 264)
# reduce 74 omitted
-module_eval(<<'.,.,', 'parser.y', 274)
+module_eval(<<'.,.,', 'parser.y', 275)
def _reduce_75(val, _values, result)
lhs = val[0]
lhs.alias = val[1]
@@ -1609,7 +1614,7 @@ module_eval(<<'.,.,', 'parser.y', 274)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 283)
+module_eval(<<'.,.,', 'parser.y', 284)
def _reduce_76(val, _values, result)
result = [{rhs: val[0], lineno: val[0].first&.line || @lexer.line - 1}]
@@ -1617,7 +1622,7 @@ module_eval(<<'.,.,', 'parser.y', 283)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 287)
+module_eval(<<'.,.,', 'parser.y', 288)
def _reduce_77(val, _values, result)
result = val[0].append({rhs: val[2], lineno: val[2].first&.line || @lexer.line - 1})
@@ -1627,7 +1632,7 @@ module_eval(<<'.,.,', 'parser.y', 287)
# reduce 78 omitted
-module_eval(<<'.,.,', 'parser.y', 293)
+module_eval(<<'.,.,', 'parser.y', 294)
def _reduce_79(val, _values, result)
result = []
@prec_seen = false
@@ -1637,17 +1642,17 @@ module_eval(<<'.,.,', 'parser.y', 293)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 299)
+module_eval(<<'.,.,', 'parser.y', 300)
def _reduce_80(val, _values, result)
token = val[1]
- val[1].alias = val[2]
+ token.alias = val[2]
result = val[0].append(token)
result
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 305)
+module_eval(<<'.,.,', 'parser.y', 306)
def _reduce_81(val, _values, result)
if @prec_seen
raise "Multiple User_code after %prec" if @code_after_prec
@@ -1660,7 +1665,7 @@ module_eval(<<'.,.,', 'parser.y', 305)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 314)
+module_eval(<<'.,.,', 'parser.y', 315)
def _reduce_82(val, _values, result)
@lexer.status = :initial
@lexer.end_symbol = nil
@@ -1669,7 +1674,7 @@ module_eval(<<'.,.,', 'parser.y', 314)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 319)
+module_eval(<<'.,.,', 'parser.y', 320)
def _reduce_83(val, _values, result)
token = val[3]
token.alias = val[6]
@@ -1679,7 +1684,7 @@ module_eval(<<'.,.,', 'parser.y', 319)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 325)
+module_eval(<<'.,.,', 'parser.y', 326)
def _reduce_84(val, _values, result)
if @prec_seen
raise "Multiple User_code after %prec" if @code_after_prec
@@ -1692,7 +1697,7 @@ module_eval(<<'.,.,', 'parser.y', 325)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 334)
+module_eval(<<'.,.,', 'parser.y', 335)
def _reduce_85(val, _values, result)
@lexer.status = :initial
@lexer.end_symbol = nil
@@ -1701,7 +1706,7 @@ module_eval(<<'.,.,', 'parser.y', 334)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 339)
+module_eval(<<'.,.,', 'parser.y', 340)
def _reduce_86(val, _values, result)
token = val[2]
token.alias = val[5]
@@ -1711,7 +1716,7 @@ module_eval(<<'.,.,', 'parser.y', 339)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 345)
+module_eval(<<'.,.,', 'parser.y', 346)
def _reduce_87(val, _values, result)
sym = @grammar.find_symbol_by_id!(val[2])
result = val[0].append(sym)
@@ -1723,7 +1728,7 @@ module_eval(<<'.,.,', 'parser.y', 345)
# reduce 88 omitted
-module_eval(<<'.,.,', 'parser.y', 351)
+module_eval(<<'.,.,', 'parser.y', 352)
def _reduce_89(val, _values, result)
result = val[1].s_value
result
@@ -1734,7 +1739,7 @@ module_eval(<<'.,.,', 'parser.y', 351)
# reduce 91 omitted
-module_eval(<<'.,.,', 'parser.y', 358)
+module_eval(<<'.,.,', 'parser.y', 359)
def _reduce_92(val, _values, result)
@lexer.status = :c_declaration
@lexer.end_symbol = '\Z'
@@ -1744,7 +1749,7 @@ module_eval(<<'.,.,', 'parser.y', 358)
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 364)
+module_eval(<<'.,.,', 'parser.y', 365)
def _reduce_93(val, _values, result)
@lexer.status = :initial
@lexer.end_symbol = nil
@@ -1764,14 +1769,14 @@ module_eval(<<'.,.,', 'parser.y', 364)
# reduce 98 omitted
-module_eval(<<'.,.,', 'parser.y', 376)
+module_eval(<<'.,.,', 'parser.y', 377)
def _reduce_99(val, _values, result)
result = [val[0]]
result
end
.,.,
-module_eval(<<'.,.,', 'parser.y', 377)
+module_eval(<<'.,.,', 'parser.y', 378)
def _reduce_100(val, _values, result)
result = val[0].append(val[1])
result
@@ -1782,7 +1787,7 @@ module_eval(<<'.,.,', 'parser.y', 377)
# reduce 102 omitted
-module_eval(<<'.,.,', 'parser.y', 382)
+module_eval(<<'.,.,', 'parser.y', 383)
def _reduce_103(val, _values, result)
result = Lrama::Lexer::Token.new(type: Lrama::Lexer::Token::Ident, s_value: val[0])
result
diff --git a/tool/lrama/lib/lrama/version.rb b/tool/lrama/lib/lrama/version.rb
index bb4422bb97..79d6ce74fe 100644
--- a/tool/lrama/lib/lrama/version.rb
+++ b/tool/lrama/lib/lrama/version.rb
@@ -1,3 +1,3 @@
module Lrama
- VERSION = "0.5.7".freeze
+ VERSION = "0.5.8".freeze
end