mirror of
https://github.com/gbdev/rgbds.git
synced 2025-11-20 10:12:06 +00:00
@@ -903,7 +903,7 @@ restart:
|
|||||||
char const *str = readMacroArg(c);
|
char const *str = readMacroArg(c);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If the argument is an empty string, it cannot be
|
* If the macro arg is an empty string, it cannot be
|
||||||
* expanded, so skip it and keep peeking.
|
* expanded, so skip it and keep peeking.
|
||||||
*/
|
*/
|
||||||
if (!str[0]) {
|
if (!str[0]) {
|
||||||
@@ -2164,6 +2164,16 @@ static int yylex_RAW(void)
|
|||||||
dbgPrint("Read raw string \"%s\"\n", yylval.tzString);
|
dbgPrint("Read raw string \"%s\"\n", yylval.tzString);
|
||||||
return T_STRING;
|
return T_STRING;
|
||||||
|
|
||||||
|
case '/': /* Block comments inside macro args */
|
||||||
|
shiftChars(1); /* Shift the slash */
|
||||||
|
if (peek(0) == '*') {
|
||||||
|
shiftChars(1);
|
||||||
|
discardBlockComment();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
append_yylval_tzString(c); /* Append the slash */
|
||||||
|
break;
|
||||||
|
|
||||||
case '\\': /* Character escape */
|
case '\\': /* Character escape */
|
||||||
shiftChars(1); /* Shift the backslash */
|
shiftChars(1); /* Shift the backslash */
|
||||||
c = peek(0);
|
c = peek(0);
|
||||||
|
|||||||
16
test/asm/macro-arguments.asm
Normal file
16
test/asm/macro-arguments.asm
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
mac: MACRO
|
||||||
|
println "'mac \#':"
|
||||||
|
for i, _NARG
|
||||||
|
println strfmt("\\%d: <\1>", i+1)
|
||||||
|
shift
|
||||||
|
endr
|
||||||
|
println
|
||||||
|
ENDM
|
||||||
|
|
||||||
|
mac /* block
|
||||||
|
...comment */ ; comment
|
||||||
|
mac /*a*/ 1 , 2 /*b*/
|
||||||
|
mac \
|
||||||
|
c, d
|
||||||
|
mac 1, 2 + /* another ;
|
||||||
|
; comment */ 2, 3
|
||||||
0
test/asm/macro-arguments.err
Normal file
0
test/asm/macro-arguments.err
Normal file
15
test/asm/macro-arguments.out
Normal file
15
test/asm/macro-arguments.out
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
'mac ':
|
||||||
|
|
||||||
|
'mac 1,2':
|
||||||
|
\1: < 1>
|
||||||
|
\2: <2>
|
||||||
|
|
||||||
|
'mac c,d':
|
||||||
|
\1: < c>
|
||||||
|
\2: <d>
|
||||||
|
|
||||||
|
'mac 1,2 + 2,3':
|
||||||
|
\1: <1>
|
||||||
|
\2: <2 + 2>
|
||||||
|
\3: <3>
|
||||||
|
|
||||||
Reference in New Issue
Block a user