| 1 | //! AST → IR lowering. |
| 2 | //! |
| 3 | //! Walks the typed AST and produces SSA IR. Handles variable allocation, |
| 4 | //! expression evaluation, assignments, and runtime calls for I/O. |
| 5 | //! |
| 6 | //! ## Module layout |
| 7 | //! |
| 8 | //! `lower` is undergoing a multi-sprint decomposition (see |
| 9 | //! `.docs/sprints/sprint-04-lower-phase1-extractions.md`). The |
| 10 | //! big body still lives in `core`; focused submodules peel off as |
| 11 | //! the sprint progresses (`ctx` lifted in step 2). Public re-exports |
| 12 | //! preserve the historical `crate::ir::lower::*` API. |
| 13 | |
| 14 | mod const_scalar; |
| 15 | mod core; |
| 16 | mod ctx; |
| 17 | mod helpers; |
| 18 | mod alloc; |
| 19 | mod init; |
| 20 | mod expr; |
| 21 | mod intrinsic; |
| 22 | mod intrinsic_sub; |
| 23 | mod stmt; |
| 24 | mod unit; |
| 25 | |
| 26 | pub use core::*; |
| 27 | pub(crate) use ctx::CharKind; |
| 28 |