[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]