You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implement the Wright-owned OSTW semantic resolution and HIR lowering required by the accepted protect-ban project entry-point reachable graph, without expanding semantic support merely because other .ostw/.del files exist in the repository/corpus.
Context
#115 established protect-ban as the first accepted reference project under pinned OSTW v3.4.0. #117 owns project loading and syntax. Pinned-reference inspection during #117 acceptance clarified an important boundary: ds.toml.entry_point is the main file for analysis/compilation, and upstream Importer.FromEntryPoint(...) recursively includes only files reached through imports.
Therefore the first semantic/compile support claim is defined by the ds.toml.entry_point reachable import graph. Other committed protect-ban sources remain licensed parser/corpus evidence and may justify later semantic expansion, but they do not automatically become compilation inputs.
The accepted reachable graph still provides the concrete semantics this issue must inventory and implement; any additional construct is added only when it is actually reachable from the pinned entry point or separately reference/corpus justified.
Build OSTW scopes/name resolution for declarations and rule/function contexts exercised by the reachable protect-ban graph.
Support the core types actually exercised by that graph, including primitive Workshop-facing types, arrays, enum types, union/null forms, and other evidenced type forms.
Resolve typed globalvar / playervar, constants/define-like declarations, initializers, explicit variable IDs where present, and player-variable receiver access where reachable/evidenced.
Resolve enums and enum members used by the accepted graph.
Resolve function/macro declarations and calls, parameters/returns, and compile-time/value semantics required by the accepted graph.
Lower accepted expressions such as literals, arrays, indexing, unary/binary operators, casts, ternaries, calls, named arguments, and member access where evidenced.
Lower accepted control flow and rule structure such as rules/events/conditions, if/else, while, foreach, switch/fallthrough, break, continue, and return where evidenced.
Resolve Workshop actions/values through Wright-owned canonical Workshop catalog/signature semantics rather than importing OSTW game-derived tables.
Lower the accepted semantic surface into existing Wright HIR so downstream analyzer/IR services remain frontend-neutral.
Preserve structured, source-located semantic diagnostics and cross-file provenance.
Add focused pinned-reference probes/fixtures where observable behavior needs clarification, plus semantic regression coverage for the complete reachable graph.
Keep a separate inventory of syntax-parsed but semantically unsupported/unreachable protect-ban constructs so future expansion is evidence-driven rather than accidental.
Non-goals
Treating every source file under the project root as a semantic/compilation root.
Classes, inheritance, heap semantics, generics, lambdas, pattern matching, or other advanced OSTW categories unless they are demonstrated by the accepted reachable graph or separately approved evidence.
Making MOBAwatch compile successfully; the pinned reference itself currently rejects that project.
Upstream implementation parity or copying source/data from the unlicensed OSTW compiler.
Acceptance criteria
The complete ds.toml.entry_point reachable graph of pinned protect-ban resolves semantically through Wright's native OSTW frontend and lowers to valid Wright HIR under a documented support boundary.
Unreachable project files do not affect semantic success/failure merely because they exist under the project root.
Cross-file imports/names, variables, enums, functions/macros, rules, control flow, arrays, Workshop calls, and player-variable access actually exercised by the accepted graph resolve consistently with pinned reference behavior.
Unsupported/invalid reachable semantic forms fail with deterministic structured source-located diagnostics rather than being deferred to Workshop emission.
Workshop call/value semantics reuse Wright-owned canonical catalog/signature data; no OSTW-specific duplicate game-content table is introduced.
HIR produced by the OSTW frontend is consumable by existing Wright semantic/analyzer services without language-specific branches in HIR/WIR.
Parser robustness over additional committed protect-ban sources remains a separate test/evidence layer and does not silently expand the semantic support claim.
Advanced categories remain explicitly unsupported unless new corpus/reference evidence is added.
Current tests, compatibility gates, and CI remain green.
Parent: #90
Depends on: #117
Goal
Implement the Wright-owned OSTW semantic resolution and HIR lowering required by the accepted
protect-banproject entry-point reachable graph, without expanding semantic support merely because other.ostw/.delfiles exist in the repository/corpus.Context
#115 established
protect-banas the first accepted reference project under pinned OSTW v3.4.0. #117 owns project loading and syntax. Pinned-reference inspection during #117 acceptance clarified an important boundary:ds.toml.entry_pointis the main file for analysis/compilation, and upstreamImporter.FromEntryPoint(...)recursively includes only files reached through imports.Therefore the first semantic/compile support claim is defined by the
ds.toml.entry_pointreachable import graph. Other committed protect-ban sources remain licensed parser/corpus evidence and may justify later semantic expansion, but they do not automatically become compilation inputs.The accepted reachable graph still provides the concrete semantics this issue must inventory and implement; any additional construct is added only when it is actually reachable from the pinned entry point or separately reference/corpus justified.
Scope
globalvar/playervar, constants/define-like declarations, initializers, explicit variable IDs where present, and player-variable receiver access where reachable/evidenced.if/else,while,foreach,switch/fallthrough,break,continue, andreturnwhere evidenced.Non-goals
Acceptance criteria
ds.toml.entry_pointreachable graph of pinnedprotect-banresolves semantically through Wright's native OSTW frontend and lowers to valid Wright HIR under a documented support boundary.Relationships