'*' and ';' are used together to comment in SAS. However, for SAS MACRO, '%* ;' is the offical comment statement. '/**/' can be used in every place. In some cases, '*;'will work in MACRO. However, it might cause a big problem in some cases. See the following example:
%MACRO plines1;/*Macro for poverty lines/ /*Number of poverty lines to process (-1)*/ /*Also known as, maximum index to poverty line*/ %GLOBAL nline; %LET nline=4;
/*Indices associated with poverty lines*/ %GLOBAL natl; %LET natl=0;/*natinal poverty line*/ %GLOBAL food; %LET food=1;/*food poverty line*/ %GLOBAL extr; %LET extr=2;/*USAID extremely poverty line*/ %GLOBAL d931; %LET d931=3;/*$1.08/day 1993 ppp poverty line*/ %GLOBAL d932; %LET d932=4;/*$2.16/day 1993 ppp poverty line*/
*$3.24/day 1993 ppp poverty line;/*NOTE: This will NOT cause a problem.*/
*%GLOBAL lin_&931._rr_u; /*NOTE: This WILL cause a problem.*/
%*%GLOBAL lin_&931._rr_u;/*NOTE: This will NOT cause a problem*/
/*%GLOBAL lin_&931._rr_u;*/ /*NOTE: This will NOT cause a problem*/
%GLOBAL lin_&d931._rr_u ; /*Poverty line for US$1.08--yearly amount 2004 VN Dong--urban by region*/
%MEND plines1; %plines1;*Macro for poverty lines;
Conclusion: when '*;' is used to comment a Macro statement inside a Macro program, it causes a problem. when it is used to comment text, it seems to work.
SAS MACRO LANGUAGE: REFERENCE Version 8
*; and %*; are complete statements. They are processed by the tokenizer and cann't contain semicolons or unmatched quotation marks. They are stored as constant text in a compiled macro.
/**/ are not tokenized. They are processed as a string of individual characters. These comments can appear anywher a single blank can appear and can contain semicolons or unmatched quotation marks. SAS comments in the form /**/ are not stored in a compiled macro. |