From e39505931b05be321ee2b04c41a9739f00c19208 Mon Sep 17 00:00:00 2001 From: Ben Bridle Date: Fri, 14 Feb 2025 09:34:48 +1300 Subject: Implement semantic parsing --- src/main.rs | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index 32f4f5d..342057d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -8,6 +8,7 @@ pub use environment::*; pub use parsers::*; pub use tokens::*; + pub use assembler::*; use log::{info, fatal}; use switchboard::{Switchboard, SwitchQuery}; @@ -85,6 +86,9 @@ fn main() { error.report(); std::process::exit(1); } + + compiler.resolver.unused().report(); + let merged_source = compiler.get_compiled_source().unwrap_or_else( |error| { error.report(); std::process::exit(1); } ); @@ -94,23 +98,14 @@ fn main() { // ----------------------------------------------------------------------- - - // // TODO: Remove this block - // let code = &compiler.resolver.source_units[0].source_unit.main.source_code; - // let parser = SyntacticParser::from_source_code(code, Some("
")); - // println!(); - // for t in parser { - // println!("{t:?}"); - // } - // Parse syntactic tokens from merged source code. let path = Some(""); let parser = SyntacticParser::from_source_code(&merged_source, path); let syntactic_tokens: Vec<_> = parser.collect(); report_syntactic_errors(&syntactic_tokens, &merged_source); - // let mut semantic_parser = SemanticParser::new(syntactic_tokens); - // semantic_parser.parse(); + let program = ProgramParser::new(syntactic_tokens).parse(); + program.print_definitions(); } -- cgit v1.2.3-70-g09d2