feat: add Python and Java regex engines

This commit is contained in:
2026-07-27 02:02:21 +02:00
parent 4951c966d4
commit 7079cde15f
95 changed files with 8866 additions and 251 deletions

25
engines/java/README.md Normal file
View File

@@ -0,0 +1,25 @@
# TeaVM Java regular-expression engine
This project compiles a bounded bridge around TeaVM 0.15.0's
`java.util.regex.Pattern` and `Matcher` class-library implementation to a
minified ES2015 module.
The runtime is intentionally identified as `TeaVM java.util.regex 0.15.0`.
TeaVM supplies its own Apache Harmony-derived Java class-library subset; the
generated engine is not OpenJDK and must not be presented as exact OpenJDK
semantics.
The `U` application flag is a compatibility request. TeaVM 0.15.0 does not
implement OpenJDK's `Pattern.UNICODE_CHARACTER_CLASS`; the bridge implies
Unicode case folding but retains TeaVM's predefined-character-class and word
boundary behaviour. The TypeScript adapter reports this boundary.
Replacement is delegated to TeaVM 0.15.0's native `Matcher` implementation.
That implementation recognizes only a single decimal digit after `$` (`$0`
through `$9`, subject to the compiled group count). It does not implement
OpenJDK's `${name}` named-replacement syntax; the bridge returns a
`replacement-error` when such a replacement is attempted.
Maven builds `target/generated/java-regex.mjs`. The repository pack script
verifies the pinned source identity, bridge source hashes, licence/notice and
generated module before it can be installed under `public/engines/java`.