summaryrefslogtreecommitdiff
path: root/src/stages/semantic_tokens.rs
diff options
context:
space:
mode:
authorBen Bridle <ben@derelict.engineering>2025-07-04 21:39:00 +1200
committerBen Bridle <ben@derelict.engineering>2025-07-04 21:39:03 +1200
commitad276fffb31c77135d802db6f460e1e78aeef974 (patch)
tree4e8ec8b8c4e0a9670dc37606018b6be87be90a07 /src/stages/semantic_tokens.rs
parent99ad972395af9953e433b4a7c11bcfd6c4daad3f (diff)
downloadbedrock-asm-ad276fffb31c77135d802db6f460e1e78aeef974.zip
Raise error if an instruction name is redefined
Diffstat (limited to 'src/stages/semantic_tokens.rs')
-rw-r--r--src/stages/semantic_tokens.rs3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/stages/semantic_tokens.rs b/src/stages/semantic_tokens.rs
index fc454be..c735828 100644
--- a/src/stages/semantic_tokens.rs
+++ b/src/stages/semantic_tokens.rs
@@ -49,6 +49,7 @@ pub enum SemanticToken {
pub enum SemanticError {
InvocationBeforeDefinition,
+ ReservedIdentifier(String),
}
@@ -64,6 +65,8 @@ fn report_semantic_error(error: &Tracked<SemanticError>, source_code: &str) {
let message = match &error.value {
SemanticError::InvocationBeforeDefinition =>
"Macro cannot be invoked before it has been defined",
+ SemanticError::ReservedIdentifier(name) =>
+ &format!("Identifier '{name}' is reserved for a built-in instruction"),
};
report_source_issue(LogLevel::Error, &context, message);
}