Top level scope
This commit is contained in:
+1
-2
@@ -1,3 +1,2 @@
|
||||
pub mod scope;
|
||||
pub mod top_level;
|
||||
|
||||
pub struct Scope {}
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
use std::{
|
||||
collections::HashMap,
|
||||
sync::{Arc, Mutex},
|
||||
};
|
||||
|
||||
use crate::top_level;
|
||||
|
||||
pub enum Symbol {
|
||||
Function(top_level::FunctionSymbol),
|
||||
TypeSymbol(top_level::TypeSymbol),
|
||||
StructSymbol(top_level::StructSymbol),
|
||||
}
|
||||
|
||||
pub struct Scope {
|
||||
pub parent: Option<Arc<Scope>>,
|
||||
pub variables: Mutex<HashMap<String, Symbol>>,
|
||||
}
|
||||
|
||||
impl Scope {
|
||||
pub fn from_top_level() {}
|
||||
}
|
||||
@@ -1,18 +1,20 @@
|
||||
use std::collections::HashMap;
|
||||
|
||||
pub struct TypeSymbol {
|
||||
export: bool,
|
||||
name: String,
|
||||
pub export: bool,
|
||||
pub name: String,
|
||||
}
|
||||
|
||||
pub struct FunctionSymbol {
|
||||
export: bool,
|
||||
name: String,
|
||||
params: HashMap<String, TypeSymbol>,
|
||||
pub export: bool,
|
||||
pub name: String,
|
||||
pub params: HashMap<String, TypeSymbol>,
|
||||
}
|
||||
|
||||
pub struct StructSymbol {
|
||||
export: bool,
|
||||
name: String,
|
||||
fields: HashMap<String, TypeSymbol>,
|
||||
pub export: bool,
|
||||
pub name: String,
|
||||
pub fields: HashMap<String, TypeSymbol>,
|
||||
pub methods: HashMap<String, FunctionSymbol>,
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user