From f4b88959d51e02d6253f0132833dc47cf915ffa2 Mon Sep 17 00:00:00 2001 From: Kevin Newton 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(-) (limited to 'sample') 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 -- cgit v1.2.3