Skip to content

Commit

Permalink
Clean up lambda output from exyacc.rb
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
kddnewton authored and tenderlove committed Aug 26, 2021
1 parent 62bc4a9 commit f4b8895
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion sample/exyacc.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
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
Expand Down

0 comments on commit f4b8895

Please sign in to comment.