Skip to main content

code_moniker_core/lang/sdk/
mod.rs

1//! Shared extraction SDK for the target multi-pass language pipeline.
2//!
3//! This module defines the stable IR exchanged by language extraction phases:
4//! discover definitions and imports, elaborate unresolved references, resolve
5//! them locally, then emit the public `CodeGraph`.
6
7mod emit;
8mod imports;
9mod model;
10mod resolve;
11mod scope;
12mod types;
13
14pub use emit::{EmitError, GraphEmitter};
15pub use imports::{
16	ImportLeaf, ImportLeafKind, ImportTree, flatten_import_tree, import_leaf_binding_name,
17	importable_parent,
18};
19pub use model::{
20	DefIndex, DefNameKey, DiscoveredDef, DiscoveredFile, ImportKind, ImportTable, ImportTarget,
21	RefHints, ResolvedRef, TargetExpr, UnresolvedRef,
22};
23pub use resolve::{LangResolverStrategy, LocalResolver, Resolution};
24pub use scope::{Namespace, Rib, Scope, ScopeId, ScopeTree};
25pub use types::{TypeEnv, TypeExpr};
26
27use crate::core::moniker::MonikerBuilder;
28
29/// Starts a target owned by a language runtime or standard SDK.
30/// `sdk:<lang>` is the root; callers append every lexical namespace segment,
31/// including Java's repeated `path:java`.
32pub(crate) fn sdk_target_builder(project: &[u8], language: &[u8]) -> MonikerBuilder {
33	let mut builder = MonikerBuilder::new();
34	builder.project(project);
35	builder.segment(crate::lang::kinds::SDK, language);
36	builder
37}