ruby-changes:67250
From: Kevin <ko1@a...>
Date: Thu, 26 Aug 2021 10:24:20 +0900 (JST)
Subject: [ruby-changes:67250] f4b88959d5 (master): Clean up lambda output from exyacc.rb
https://git.ruby-lang.org/ruby.git/commit/?id=f4b88959d5 From f4b88959d51e02d6253f0132833dc47cf915ffa2 Mon Sep 17 00:00:00 2001 From: Kevin Newton <kddnewton@g...> Date: Wed, 25 Aug 2021 09:32:10 -0400 Subject: Clean up lambda output from exyacc.rb The `lambda_body` grammar rule has a `"}"`, which is throwing off the `exyacc.rb` regular expressions. This changes the regular expression to account for `"}"` as well, which makes the output of `ruby sample/exyacc.rb < parse.y` change by the following diff: ```diff 632,634d631 < ", &@3); < $$ = $2; < } ``` Which makes it closer to a valid EBNF. --- sample/exyacc.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sample/exyacc.rb b/sample/exyacc.rb index 9a9435a..cbcc18d 100644 --- a/sample/exyacc.rb +++ b/sample/exyacc.rb @@ -8,7 +8,7 @@ ARGF.each(nil) do |source| https://github.com/ruby/ruby/blob/trunk/sample/exyacc.rb#L8 grammar = source[sbeg, send-sbeg] grammar.sub!(/.*\n/, "") grammar.gsub!(/'\{'/, "'\001'") - grammar.gsub!(/'\}'/, "'\002'") + grammar.gsub!(/["']\}["']/, "'\002'") grammar.gsub!(%r{\*/}, "\003\003") grammar.gsub!(%r{/\*[^\003]*\003\003}, '') while grammar.gsub!(/\{[^{}]*\}/, ''); end -- cgit v1.1 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/