diff options
| author | Thomas Voss <mail@thomasvoss.com> | 2026-03-05 21:46:09 +0100 |
|---|---|---|
| committer | Thomas Voss <mail@thomasvoss.com> | 2026-03-05 21:46:09 +0100 |
| commit | 4f723801d751d520263ce0f14b2cf409f60ac77e (patch) | |
| tree | 2139dea317cbf9662ebf15d60fe54d88781b1b86 /oryxc/src/prelude.rs | |
| parent | 723fb5031a1f59f8df5d0a0dbf5dc0a54420e15f (diff) | |
Continue work on types and static analysis
Diffstat (limited to 'oryxc/src/prelude.rs')
| -rw-r--r-- | oryxc/src/prelude.rs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/oryxc/src/prelude.rs b/oryxc/src/prelude.rs index 9c91116..4fe1413 100644 --- a/oryxc/src/prelude.rs +++ b/oryxc/src/prelude.rs @@ -11,6 +11,34 @@ pub struct FileId(pub usize); #[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)] pub struct SymbolId(pub u32); +#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)] +pub struct ScopeId(pub usize); + +impl ScopeId { + pub const GLOBAL: Self = Self(0); +} + +#[derive(Default)] +pub enum ResolutionState { + #[default] + Unresolved, + Resolving, + Resolved, + Poisoned, +} + +#[derive(Default)] +pub struct Symbol { + pub state: ResolutionState, + pub r#type: u32, +} + +pub enum OryxType { + Integer { bits: usize, signed: bool }, + Pointer { base: u32 }, + Function { args: Vec<u32>, rets: Vec<u32> }, +} + #[derive(Clone, Copy)] pub struct SubNodes(pub u32, pub u32); |