summaryrefslogtreecommitdiff
path: root/sample
diff options
context:
space:
mode:
authorKevin Newton <kddnewton@gmail.com>2021-08-25 09:32:10 -0400
committerAaron Patterson <aaron.patterson@gmail.com>2021-08-25 18:23:56 -0700
commitf4b88959d51e02d6253f0132833dc47cf915ffa2 (patch)
tree401ab73428b0afac6b81ae50d9ffaf821c6b53ed /sample
parent62bc4a9420fa5786d49391a713bd38b09b8db0ff (diff)
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.
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/4778
Diffstat (limited to 'sample')
-rw-r--r--sample/exyacc.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/sample/exyacc.rb b/sample/exyacc.rb
index 9a9435a0dc..cbcc18d58b 100644
--- a/sample/exyacc.rb
+++ b/sample/exyacc.rb
@@ -8,7 +8,7 @@ ARGF.each(nil) do |source|
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