Support more regex engines for testing
Is your feature request related to a problem? Please describe.
Currently, tests can only be executed with PCRE2. They should be executable with a regex engine for every flavor. Also, the --test <ENGINE> CLI interface is confusing.
Describe the solution you'd like
Extend the supported engines to include at least the following:
- [x]
pcre2 - [x]
rust - [ ]
onig - [ ]
python - [ ]
node - [ ]
deno - [ ]
java
Getting C# to work cross-platform is more tricky, which is why it isn't included in this list for now.
Strategies
- Rust, Oniguruma: Regex engine is statically linked in the executable
- Python:
python3 -c ...; fallback topythonexecutable if unavailable - Node:
node -e ... - Deno:
deno eval ... - Java:
javawith a temporary class file
Batch checking
A command that tests all pomsky expressions in a directory would be immensely helpful, e.g. for pre-commit hooks and CI. It should
- walk the provided directory recursively, respecting
.gitignoreand.pomskyignorefiles - follow symlinks ??
- compile and test all files with a
.pomskyextension - if not using a statically linked regex library, re-use the process that does the testing for all files (similarly to
regex-test) - provide a summary (number of succeeded/failed tests) and errors
any chance for RE2 support? (go and DuckDB for instance). I'm using pomsky to generate regexes (w/o the features RE2 lacks) so testing with PCRE is equivalent but having this checked off during tests would be nice.
Rust is now supported.