diff options
| author | Miquel Sabaté Solà <mikisabate@gmail.com> | 2025-01-08 12:34:47 +0100 |
|---|---|---|
| committer | Miquel Sabaté Solà <mikisabate@gmail.com> | 2025-01-09 16:01:39 +0100 |
| commit | 8b1c270910fce13077864bf39d6e88971a6eb062 (patch) | |
| tree | 2a441b58d46905f680749c1c074e9b55a27f0d6e /lib/xixanta/src/lib.rs | |
| parent | 4f5710aa516ab149d132cdb5863db08f08c10563 (diff) | |
| download | tools.nes-8b1c270910fce13077864bf39d6e88971a6eb062.tar.gz tools.nes-8b1c270910fce13077864bf39d6e88971a6eb062.zip | |
Implement the .include statement
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à <mikisabate@gmail.com>
Diffstat (limited to 'lib/xixanta/src/lib.rs')
| -rw-r--r-- | lib/xixanta/src/lib.rs | 15 |
1 files changed, 15 insertions, 0 deletions
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; |
