标签:scanner Macro stack 运行机制 读入 简单 SAS input Processor
1. Work Flow
token
装点门面,标示符。总共四类
1. 单引号或双引号及之内的内容
'aa aa b' "a b c"
2. 一切数值,以数字开头。
1 "01Mar2020"d 5E8.4
3. 一切变量名及format
var1 name1 _n_ dollor10.2
4. 特殊字符
; & : ,. <>?/@等
程序执行大致步骤
1. input stack 读入所有代码
2. scanner,通过每个 token 进行区分。
3. 编译
input @10 ssn comma11. name $30-50; 11个token
bouns=3.2*(wage-2000); 10个
plot date*revenue='$'/verf='30jun2001'd; 11个。
2. Macro
2.1
2.2 一般过程
如果遇到Macro标示符,则语句进入Macro Processor中处理。
%put &a;都会进入到Macro Processor中
"Title &m"只有&m进入到Macro Processor中。
当遇到Macro时,Macro Processor读入Macro变量,然后去Symbol Table 找Macro 的值,然后返回
input stack,然后再读入scanner中。
如果是整个宏(%put &a)则,把Macro值返回到Macro Processor中。
当执行%宏时,先读入到input stack,然后到Macro Processor,然后work.sasmacr去找宏程序,然后把
宏程序内的语句读入到input stack中,然后在扫描编译执行。
scanner把宏变量传到Macro Processor,直到解析至没有宏变量,返回到input stack中,再次把解析后的语句传到scanner中.
标签:scanner,Macro,stack,运行机制,读入,简单,SAS,input,Processor 来源: https://www.cnblogs.com/SAS-T/p/16293515.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。