Some fixing, some cleanup, some node tree improvement (combined in a single PR because of the massive generated files), but features can be individually cherry-picked if so desired.
match-only (not substitution) regexes now allow the /g flag.
continue refactored, is now its own statement block and used rather than repeated all over.
if and unless refactored a little bit and they now have additional nodes wrapping the elsif and else conditions just like in the Python grammar, but I kept the field names the same as they were.
foreach in Perl is truly an alias of for, so these are now combined in the for nodes.
Tests for all these have been expanded in the individual commits.
(I don't think the large generated files should be committed, but I don't know what if anything would break if these are removed from the repo).
Some fixing, some cleanup, some node tree improvement (combined in a single PR because of the massive generated files), but features can be individually cherry-picked if so desired.
/g
flag.continue
refactored, is now its own statement block and used rather than repeated all over.if
andunless
refactored a little bit and they now have additional nodes wrapping theelsif
andelse
conditions just like in the Python grammar, but I kept the field names the same as they were.foreach
in Perl is truly an alias offor
, so these are now combined in the for nodes.Tests for all these have been expanded in the individual commits.
(I don't think the large generated files should be committed, but I don't know what if anything would break if these are removed from the repo).