Compare commits

...

3 Commits

Author SHA1 Message Date
Jesse Brault
1d3a1593ee Organized module source files. 2025-02-03 11:03:25 -06:00
Jesse Brault
3906374866 Removed yaml format for namespace declaration. 2025-02-03 11:01:15 -06:00
Jesse Brault
5c75b7ab82 Remove unused import. 2025-02-03 10:39:05 -06:00
6 changed files with 22 additions and 9 deletions

View File

@ -0,0 +1 @@
decl pub ns core

View File

@ -1,4 +0,0 @@
ns
name: core
patch: false
vis: pub

View File

@ -1,4 +1,3 @@
use deimos::ast::build_ast;
use deimos::vm::dm_type::DmType;
use deimos::vm::lib::{DmConstant, DmLib};
use deimos::vm::object_type::{DmField, DmFn, DmImplementation, DmInterface, DmMethod};

View File

@ -1,8 +1,7 @@
use crate::ast::CompilationUnit;
use crate::parser::{DeimosParser, Rule};
use crate::vm::lib::DmLib;
use pest::Parser;
use crate::module::DmModule;
pub fn compile(src_unit: &str) -> DmLib {
let p = DeimosParser::parse(Rule::compilation_unit, src_unit).unwrap();
pub fn compile(module: &mut DmModule, compilation_unit: CompilationUnit) {
todo!()
}

View File

@ -4,3 +4,4 @@ pub mod parser;
mod util;
pub mod vm;
pub mod ast;
pub mod module;

17
src/module/mod.rs Normal file
View File

@ -0,0 +1,17 @@
pub struct DmModule {
pub namespace: DmNamespace,
}
pub enum NamespaceVisibility {
Public,
Partial {
visible_to_fqns: Vec<String>
},
Private
}
pub struct DmNamespace {
pub name: String,
pub dependencies: Vec<String>,
pub visibility: NamespaceVisibility
}