boot2

Playing with the boostrap
git clone https://git.ryansepassi.com/git/boot2.git
Log | Files | Refs | README

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