fix bugs in MacroTokenSource