diff options
author | Ben Bridle <ben@derelict.engineering> | 2025-07-04 21:17:30 +1200 |
---|---|---|
committer | Ben Bridle <ben@derelict.engineering> | 2025-07-04 21:17:30 +1200 |
commit | 99ad972395af9953e433b4a7c11bcfd6c4daad3f (patch) | |
tree | 78e6b2c8f3dcc4acc0a3d7bc3e22fbfbc2d973ad /src/stages/semantic.rs | |
parent | f454238e433792fda0f66f807f7ec12d3e560fa2 (diff) | |
download | bedrock-asm-99ad972395af9953e433b4a7c11bcfd6c4daad3f.zip |
Fix sort order of generated symbols file
The symbols file was not being generated in ascending address order.
This was because the assembler was using unordered HashMaps, which have
now been replaced with ordered IndexMaps.
Diffstat (limited to 'src/stages/semantic.rs')
-rw-r--r-- | src/stages/semantic.rs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/stages/semantic.rs b/src/stages/semantic.rs index f2774a4..909659d 100644 --- a/src/stages/semantic.rs +++ b/src/stages/semantic.rs @@ -1,12 +1,12 @@ use crate::*; -use std::collections::{HashMap, HashSet}; +use indexmap::{IndexMap, IndexSet}; pub fn parse_semantic(syntactic: Vec<Tracked<SyntacticToken>>) -> Result<Program, Vec<Tracked<SemanticError>>> { // Record all label definitions and macro names up front. - let mut definitions = HashMap::new(); - let mut macro_names = HashSet::new(); + let mut definitions = IndexMap::new(); + let mut macro_names = IndexSet::new(); for token in &syntactic { match &token.value { SyntacticToken::LabelDefinition(name) => { |