Support symbols in .at address field

This commit is contained in:
2026-03-15 21:27:48 +00:00
parent c21b3c79c7
commit 02ee4c3c88

16
asm.js
View File

@@ -550,15 +550,10 @@ class Parser {
token_at_addr(token) { token_at_addr(token) {
const value = this.integer(token); const value = this.integer(token);
if (value == null) { if (value != null)
console.error( this.at.addr = value;
`ERROR: Unexpected token ${token} in .mem: ` else
+ "expected address"); this.at.addr_symbol = token;
this.at = undefined;
return;
}
this.at.addr = value;
const action = { type: Action.AT, at: this.at }; const action = { type: Action.AT, at: this.at };
this.at = undefined; this.at = undefined;
this.state = State.TOP; this.state = State.TOP;
@@ -998,7 +993,8 @@ export class Assembler {
return; return;
} }
this.pos.mem = mem; this.pos.mem = mem;
this.pos.addr = action.at.addr; this.pos.addr = action.at.addr
?? this.lookup_def(action.at.addr_symbol);
this.data.push({ loc: { ...this.pos }, data: [] }) this.data.push({ loc: { ...this.pos }, data: [] })
} }