1. 参考SAS简单运行机制
非宏程序:从input stack中逐行扫描code,如果有宏变量、宏程序等,进入macro compile后,把解析后的宏变量、宏程序返回input stack中,然后再逐行扫描。
宏程序:先扫描下,看有没有语法错误等。将其存入到一个Macro Catalog中。详见 How the Macro Processor Compiles a Macro Definition。扫描时遇到%开头的程序,就会触发 macro processor,直到遇到%MEND。如果是%IF,切记使用%THEN %DO %END;而不只是%THEN。或使用%str(;),参考
总的来说,%IF是用来生成code的,所以可能会有多个;符号。
2.
标签:code,Macro,基础,逐行扫描,SAS,input,宏程序 From: https://www.cnblogs.com/SAS-T/p/16810688.html