We can combine the next macro with the ":" shortcut
(mac c ((obj (func . args)))
'(call ,obj ,func ,@args)))
(= document!body!innerHTML
((c:document:getElementById "foo") value))
It will translate to:
(= ((document 'body) 'innerHTML)
((call document getElementById "foo") value))
Also a nitpick: your c macro needs quasiquote and has too many parens:
(mac c (obj (func . args))
`(call ,obj ,func ,@args)))
I'm not quite sure how the args in that macro are supposed to work. Is it somehow taking advantage of destructuring bind, or why is it (obj (func . args)) instead of just (obj func . args)
Thanks for the suggestion. Looking forward to hearing you elaborate.