- needed to determine start and end of macro directives - the main parser doesn't need them, so strip out the newline tokens before parsing to avoid changing it