Static copy
Copied from docs/en/architecture/compiler-frontend.md in https://github.com/poppy-team/aipo-lang (MIT). Pinned to revision ce47c4e070404fc41722ccd8e2b7b808b99062a8, blob ed0ddc149a6b683487bdef1238619aa19b93fa21. The source repository remains canonical; this copy is refreshed through a sync pull request, not live.
The Aipo frontend ingests raw UTF-8 source text and produces a validated semantic representation.
aipo-source is_char_boundary), ensuring strict MSRV compatibility (Rust 1.85+).aipo-lexer &str.1.e5 or 1._5), generating the diagnostic AIPO_LEX_INVALID_NUMBER.aipo-syntax & aipo-ast synchronize).async annotations in interface method contracts.val >= 0 and <= 100).if c then a else b).aipo-hir init and invariant).aipo-sema interface contracts via automatic structural subtyping (validating required methods, parameter arities, self vs var self receiver mutability, and type compatibility).AIPO_SEM_IMMUTABLE_FIELD_REASSIGN).AIPO_SEM_AWAIT_IN_SUBEXPRESSION, AIPO_SEM_FORGOTTEN_TASK, AIPO_SEM_NESTED_AWAIT_DO).