From 8b1c270910fce13077864bf39d6e88971a6eb062 Mon Sep 17 00:00:00 2001 From: Miquel Sabaté Solà Date: Wed, 8 Jan 2025 12:34:47 +0100 Subject: Implement the .include statement MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This needed some heavy lifting when it comes to how files were located. This means that statements like .include/.incbin now take into consideration a new list made out of SourceInfo, which holds enough information to translate from which file a node comes from. This has also been added into errors, so they are more informative on what went wrong. In order to tests this, besides all the regular unit tests, a new e2e test has been added. Signed-off-by: Miquel Sabaté Solà --- lib/xixanta/src/lib.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'lib/xixanta/src/lib.rs') diff --git a/lib/xixanta/src/lib.rs b/lib/xixanta/src/lib.rs index 0ad901f..95ead9c 100644 --- a/lib/xixanta/src/lib.rs +++ b/lib/xixanta/src/lib.rs @@ -1,6 +1,21 @@ #[macro_use] extern crate lazy_static; +#[derive(Clone, Debug, PartialEq)] +pub struct SourceInfo { + pub working_directory: std::path::PathBuf, + pub name: String, +} + +impl Default for SourceInfo { + fn default() -> Self { + SourceInfo { + working_directory: std::env::current_dir().unwrap().to_path_buf(), + name: "".to_string(), + } + } +} + pub mod assembler; pub mod errors; pub mod node; -- cgit v1.2.3