diff options
author | Ben Bridle <bridle.benjamin@gmail.com> | 2025-02-14 09:34:48 +1300 |
---|---|---|
committer | Ben Bridle <bridle.benjamin@gmail.com> | 2025-02-14 09:34:48 +1300 |
commit | e39505931b05be321ee2b04c41a9739f00c19208 (patch) | |
tree | 529a4162ed2d34a7c283a928136808bd20750563 /src/main.rs | |
parent | 1995f8a8f2cb5ea810afc173fe8dfa2f5355f684 (diff) | |
download | torque-asm-e39505931b05be321ee2b04c41a9739f00c19208.zip |
Implement semantic parsing
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 17 |
1 files changed, 6 insertions, 11 deletions
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("<main>")); - // println!(); - // for t in parser { - // println!("{t:?}"); - // } - // Parse syntactic tokens from merged source code. let path = Some("<merged source>"); 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(); } |