The standalone OverPy-compatible .opy implementation (opy-rs).
Owns the OPY source-language surface of the opy-rs repository: a lexer,
an indentation-aware CST/parser with structured diagnostics and recovery,
token-level preprocessing (includes and #!define macros), semantic
resolution, and lowering into the opy-rs-owned Opy HIR contract
([hir::Program]). Everything from source through the Opy HIR semantic
model is Workshop-independent: source analysis never depends on workshop-rs,
OverPy, or Node. The bounded source-to-Workshop compiler is exposed from
this same crate behind the explicit [Compiler] API.
Pipeline: [lexer::lex] → [preprocess::preprocess] →
[parser::parse] → [lower::lower] → Opy HIR ([hir]).
OverPy-compatible __script__("…") macros execute at compile time through
the bounded embedded macro runtime: script macros expand
during preprocessing with the reference's argument-injection ABI, and
resource limits mirror the pinned reference constants
(macro_js::Limits::default()). Script-macro expansion is
compile-time behavior and is source-supported.
#!postCompileHook is recognized, parsed, validated, and recorded only
(see [preprocess] and [CompileOutcome::post_compile_hook]): the
The source implementation never executes the hook. Real hook execution
receives the final Workshop text produced by lowering and is
lowering-dependent (workshop-rs emission, issue #8); source analysis never
fabricates a Workshop payload.
This crate owns the OverPy source-language implementation, its bounded compiler, Workshop→OPY reconstruction, and the isolated differential harness entry points.