From 4f723801d751d520263ce0f14b2cf409f60ac77e Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Thu, 5 Mar 2026 21:46:09 +0100 Subject: Continue work on types and static analysis --- oryxc/src/prelude.rs | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'oryxc/src/prelude.rs') 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, rets: Vec }, +} + #[derive(Clone, Copy)] pub struct SubNodes(pub u32, pub u32); -- cgit v1.2.3