This patch modifies the preprocessor to handle text macros with arguments. It also fixes a bug that prevented a `line directive being issued after a multi-line text macro had been instantiated.