untyped macros, part I: parser changes