SAS学习笔记7
一、简介 SAS通过宏过程可以把 数据步或者过程步的功能进行封装,在宏过程中可以定义参数,通过调用宏过程把实参传递给形参进行引用。宏过程就相当于关系数据库中的存储过程,调用时只需要知道宏过程名就可以,具体的内部如何实现不用了解,实现了程序的封装。 二、宏过程执行机制 对于宏语言,SAS有自己的内部处理机制,宏程序编写好后,首先进行宏编译,生成宏程序,调用时通过宏分析器解析,然后在编译过程中如果宏程序有错误,会在日志中显示。 宏执行的流程: SAS程序先提交进入缓冲区,然后通过字符扫描组件识别到宏程序,调用宏TOKEN解析器,TOKEN解析器的四个普通组件对宏程序进行解析,解析完成交给编译器编译程序,若有错误,程序编译阶段会在日志中显示错误信息,没有错误编译通过,用户通过调用宏语法,调用执行宏。 TOKEN解析器的四个组件及其功能如下: (1)Literal组件 Literal组件解析用单引号或双引号括起来的字符串,如'yang',"chang"。 (2)Number组件 Number组件解析数值类型、日期类型、时间类型和十六进制数值,如23、'20110323'd。 (3)Name组件 Name组件解析以字母或下划线开始的字符串,如c_b、_d。 (4)Special组件 Special组件解析一些特殊字符串或字符串组,如@、#、*、/、+、-、**、;、$、()、.、&、%、=等