summaryrefslogtreecommitdiff
path: root/oryxc/src/prelude.rs
diff options
context:
space:
mode:
Diffstat (limited to 'oryxc/src/prelude.rs')
-rw-r--r--oryxc/src/prelude.rs28
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);