13-parenless-control.M1pp (746B)
1 # Control fixture for 13-parenless: same macros and test points, but every 2 # 0-arg call uses the explicit () form. The output from the two test points 3 # where 13-parenless uses paren-less calls must be byte-identical here, 4 # proving paren-less is semantically equivalent to paren-ful for 0-arg macros. 5 6 %macro FRAME_BASE() 7 16 8 %endm 9 10 %macro add1(x) 11 %((+ x 1)) 12 %endm 13 14 # Top-level: both forms yield `16`. 15 %FRAME_BASE() 16 %FRAME_BASE() 17 18 # Expression atom: both yield 4-byte LE hex for 24 (16 + 8). 19 %((+ %FRAME_BASE() 8)) 20 %((+ %FRAME_BASE() 8)) 21 22 # Undefined %foo passes through unchanged. 23 %foo 24 25 # Param-ful macro without parens does NOT match — literal text flows through. 26 %add1 27 28 # Param-ful macro with proper call still works (sanity). 29 %add1(41) 30 END