Allow trailing commas in bare lists

This applies to macro arguments, DB, DW, DL, DS,
PRINT, PRINTLN, EXPORT, PURGE, and OPT.

It also removes support for empty entries in DB/DW/DL.
(Deprecating it would require keeping parser support,
which is ambiguous with trailing commas.)

Fixes #753
This commit is contained in:
Rangi
2021-02-28 21:19:15 -05:00
committed by Eldred Habert
parent c637447d5d
commit 56071599e7
16 changed files with 155 additions and 153 deletions

View File

@@ -9,15 +9,20 @@ ENDM
mac /* block
...comment */ ; comment
mac /*a*/ 1 , 2 /*b*/
mac /*a*/ 1 , 2 /*b*/ , ; trailing comma
mac \
c, d
mac 1, 2 + /* another ;
; comment */ 2, 3
mac a b ; truncated
mac
mac ,
mac a,
mac a,,
mac ,,z
mac a,,z
mac ,a,b,c,
mac ,,x,,
mac ,,x,,,
mac E,O,F ; no newline

View File

@@ -1,22 +1,22 @@
warning: macro-arguments.asm(19): [-Wempty-macro-arg]
Empty macro argument
warning: macro-arguments.asm(19): [-Wempty-macro-arg]
Empty macro argument
warning: macro-arguments.asm(20): [-Wempty-macro-arg]
Empty macro argument
warning: macro-arguments.asm(20): [-Wempty-macro-arg]
Empty macro argument
warning: macro-arguments.asm(18): [-Wlong-string]
Macro argument too long
warning: macro-arguments.asm(21): [-Wempty-macro-arg]
Empty macro argument
warning: macro-arguments.asm(22): [-Wempty-macro-arg]
Empty macro argument
warning: macro-arguments.asm(22): [-Wempty-macro-arg]
Empty macro argument
warning: macro-arguments.asm(23): [-Wempty-macro-arg]
Empty macro argument
warning: macro-arguments.asm(23): [-Wempty-macro-arg]
warning: macro-arguments.asm(24): [-Wempty-macro-arg]
Empty macro argument
warning: macro-arguments.asm(23): [-Wempty-macro-arg]
warning: macro-arguments.asm(24): [-Wempty-macro-arg]
Empty macro argument
warning: macro-arguments.asm(23): [-Wempty-macro-arg]
warning: macro-arguments.asm(25): [-Wempty-macro-arg]
Empty macro argument
warning: macro-arguments.asm(26): [-Wempty-macro-arg]
Empty macro argument
warning: macro-arguments.asm(27): [-Wempty-macro-arg]
Empty macro argument
warning: macro-arguments.asm(27): [-Wempty-macro-arg]
Empty macro argument
warning: macro-arguments.asm(27): [-Wempty-macro-arg]
Empty macro argument
warning: macro-arguments.asm(27): [-Wempty-macro-arg]
Empty macro argument

View File

@@ -13,12 +13,20 @@
\2: <2 + 2>
\3: <3>
'mac a':
\1: <a>
'mac ':
'mac ,':
\1: <>
'mac a':
\1: <a>
'mac a,,':
\1: <a>
\2: <>
\3: <>
'mac ,,z':
\1: <>
@@ -30,17 +38,21 @@
\2: <>
\3: <z>
'mac ,a,b,c,':
'mac ,a,b,c':
\1: <>
\2: <a>
\3: <b>
\4: <c>
\5: <>
'mac ,,x,,':
'mac ,,x,,,':
\1: <>
\2: <>
\3: <x>
\4: <>
\5: <>
'mac E,O,F':
\1: <E>
\2: <O>
\3: <F>

View File

@@ -0,0 +1,25 @@
SECTION "test", ROM0
mac: MACRO
println "\#"
ENDM
mac 1,2, 3 , ,5,
db 1,2,3,
dw 4,5,6,
dl 7,8,9,
ds 10, $a, $b, $c,
print "Hello", " ",
println "world", "!",
spam:
eggs:
lobsterThermidor:
export spam, eggs,
purge lobsterThermidor,
opt boO, g.xX#,
dw %ooOOOOoo, `XX##..xx,

View File

@@ -0,0 +1,2 @@
warning: trailing-commas.asm(7): [-Wempty-macro-arg]
Empty macro argument

View File

@@ -0,0 +1,2 @@
1,2,3,,5
Hello world!

Binary file not shown.