aboutsummaryrefslogtreecommitdiff
path: root/macros.go
diff options
context:
space:
mode:
authorAstatin <[email protected]>2025-01-07 17:24:46 +0900
committerAstatin <[email protected]>2025-01-07 17:24:46 +0900
commitc2fb41b27cb4294520cd73aa3d81d51d0f969bf8 (patch)
tree187caf2f08e3e9625daa18146c0798ea491f84ac /macros.go
parentb5b9637ff2d222841632b8644b94835ec1c93359 (diff)
Add support for relative labels in parameters
Diffstat (limited to 'macros.go')
-rw-r--r--macros.go10
1 files changed, 6 insertions, 4 deletions
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])