From c2fb41b27cb4294520cd73aa3d81d51d0f969bf8 Mon Sep 17 00:00:00 2001 From: Astatin Date: Tue, 7 Jan 2025 17:24:46 +0900 Subject: Add support for relative labels in parameters --- macros.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'macros.go') diff --git a/macros.go b/macros.go index 5daf3c9..bf91eaa 100644 --- a/macros.go +++ b/macros.go @@ -87,6 +87,7 @@ func MacroParse( lineNb *int, isFirstPass bool, offset uint, + LastAbsoluteLabel string, ) error { words := strings.Split(line, " ") if len(words) == 0 { @@ -102,6 +103,7 @@ func MacroParse( state.IsMacro, isFirstPass, uint16(uint(len(*result))+offset), + LastAbsoluteLabel, line, ) if err != nil { @@ -149,13 +151,13 @@ func MacroParse( } var definedValue any - if v, err := Raw8Indirect(&state.Labels, &state.Defs, words[2]); err == nil { + if v, err := Raw8Indirect(&state.Labels, LastAbsoluteLabel, &state.Defs, words[2]); err == nil { definedValue = Indirect8b(v) - } else if v, err := Raw16Indirect(&state.Labels, &state.Defs, words[2]); err == nil { + } else if v, err := Raw16Indirect(&state.Labels, LastAbsoluteLabel, &state.Defs, words[2]); err == nil { definedValue = Indirect16b(v) - } else if v, err := Raw8(&state.Labels, &state.Defs, words[2]); err == nil { + } else if v, err := Raw8(&state.Labels, LastAbsoluteLabel, &state.Defs, words[2]); err == nil { definedValue = Raw8b(v) - } else if v, err := Raw16(&state.Labels, &state.Defs, words[2]); err == nil { + } else if v, err := Raw16(&state.Labels, LastAbsoluteLabel, &state.Defs, words[2]); err == nil { definedValue = Raw16b(v) } else { return fmt.Errorf("\"%s\" could not be parsed as a .DEFINE argument", words[2]) -- cgit v1.2.3-70-g09d2