DEF n EQU 0
REDEF n EQU 1
; prints "$1"
PRINTLN n

MACRO list
DEF LIST_NAME EQUS "\1"
DEF LENGTH_{LIST_NAME} EQU 0
ENDM

MACRO item
REDEF LENGTH_{LIST_NAME} EQU LENGTH_{LIST_NAME} + 1
DEF {LIST_NAME}_{d:LENGTH_{LIST_NAME}} EQU \1
ENDM

	list SQUARES
	item 1
	item 4
	item 9
	println LENGTH_SQUARES, SQUARES_1, SQUARES_2, SQUARES_3

REDEF NEW EQU 7

DEF N EQUS "X"
REDEF N EQU 42
