mirror of
https://github.com/open-simh/simtools.git
synced 2026-01-14 15:45:23 +00:00
Make trailing commas work in .BYTE and .WORD
16 000000 000123 state: .word 123 ; 1 word
17 000002 000000 .word ; 1 word
18 000004 000001 000000 .word 1, ; 2 words
19 000010 000000 000002 .word ,2 ; 2 words
20 000014 000000 000000 .word , ; 2 words
21 000020 000000 000000 000000 .word ,, ; 3 words
22 000026 000001 000000 000000 .word 1,, ; 3 words
23 000034 000000 000000 000003 .word ,,3 ; 3 words
24 000042 000001 000000 000003 .word 1,,3 ; 3 words
25 000050 000001 000002 000003 .word 1,2,3 ; 3 words
This commit is contained in:
parent
dbc3a55666
commit
59711f17f2
@ -637,6 +637,8 @@ int do_word(
|
||||
char *cp,
|
||||
int size)
|
||||
{
|
||||
int comma;
|
||||
|
||||
if (size == 2 && (DOT & 1)) {
|
||||
report(stack->top, ".WORD on odd boundary\n");
|
||||
store_word(stack->top, tr, 1, 0); /* Align it */
|
||||
@ -653,11 +655,16 @@ int do_word(
|
||||
|
||||
store_value(stack, tr, size, value);
|
||||
|
||||
cp = skipdelim(value->cp);
|
||||
cp = value->cp;
|
||||
|
||||
free_tree(value);
|
||||
}
|
||||
} while (cp = skipdelim(cp), !EOL(*cp));
|
||||
} while (cp = skipdelim_comma(cp, &comma), !EOL(*cp));
|
||||
|
||||
if (comma) {
|
||||
/* Trailing empty expressions count as 0 */
|
||||
store_word(stack->top, tr, size, 0);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user