It is compatible to stuff like
[...]
mkcf_sloop maclab
mkcf.pr0 setstr {[.parm([mkcf.atr])]}
ifstr {[.parm([mkcf.atr]+1)]} = {} goto mkcf_ank
mkcf.pr1 setstr {'[.parm([mkcf.atr]+1)]'}
goto mkcf_pr2
mkcf_ank maclab
mkcf.pr1 setstr {0}
mkcf_pr2 maclab
mkcf.apo {[.parm([mkcf.atr]+2)]}
mkcf.pr2 setstr {[.len(.parm([mkcf.atr]+2))],'[mktxt]'}
mkcf.prm setnum [mkcf.prm]+1
mkcf[mkcf.prm] setstr { dc.w [mkcf.pr0]<<8+[mkcf.pr1],[mkcf.pr2]}
mkcf.atr setnum [mkcf.atr]+3
ifnum [mkcf.atr] < [.nparms] goto mkcf_sloop
mkcf.prm setnum [mkcf.prm]+1
mkcf[mkcf.prm] setstr { dc.w -1}
goto mkcf_iend
Although the above extract is not complete, I can indicate how each command would be expressed in Gwass.
Qmac Gwass
maclab macl
setstr set
setnum set
.parm(n) |#PARM(n)~
[] |~
.nparms \0
goto goto (no difference)
ifnum if
ifstrg if
Macros transferred from Qmac to Gwass tend to look a bit different - sometimes a lot different. Translating macros would take some effort which I am quite prepared to take if they would be used. The big plus is that once the macros are translated their use needs very little alteration from the Qmac syntax.
George
