uasm 1.0.9+2.57

A library to build the UASM compiler, for usage in build scripts.
Documentation

;--- VARARG macro functions (+@CatStr,which is also VARARG since v2.08).
;--- "blank" items in VARARG argument

	.286
	.model small

	.data

TM0	textequ @CatStr()
TM1	textequ @CatStr(,<abc>)

;%echo 0 TM0
;%echo 1 TM1
%   db "&TM0&TM1&"

	db 0CCh

MF1 macro arg:vararg
;	echo MF1 full argument: >arg<
	for x,<arg>
;	echo argument: >x<
ifnb <x>
	db x
else
	db -1
endif
	endm
	exitm <>
	endm

;--- for macro functions, trailing commas are "swallowed"

	MF1()
	MF1(1,2,3)
	MF1(,2)
	MF1(,,3)
	MF1(1,,3)
	MF1(1,,,4)
	MF1(1,)
	MF1(,)
;--- jwasm swallows the last comma only
;	MF1(1,,)

M1 macro arg:vararg
;	echo M1 full argument: >arg<
	for x,<arg>
;	echo argument: >x<
ifnb <x>
	db x
else
	db -1
endif
	endm
	endm

;--- with macro procedures, nothing is swallowed
;--- (but still not quite compatible!)
;--- v2.09: the last three cases should work now.

	M1
	M1 1,2,3
	M1 ,2
	M1 ,,3
	M1 1,,3
	M1 1,,,4
;	M1 1,
;	M1 ,
;	M1 1,,

end