Branch
Hash :
278316ca
Author :
Date :
2020-07-06T15:01:10
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
%macro prnt(var,sum);
proc print data=srhigh;
var &var;
sum ∑
run;
%mend prnt;
%macro printz/parmbuff;
%let num=1;
%let dsname=%scan(&syspbuff,&num);
%do %while(&dsname ne);
proc print data=&dsname;
run;
%let num=%eval(&num+1);
%let dsname=%scan(&syspbuff,&num);
%end;
%mend printz;
----------------------------------------------------
[
["macro-declaration", [
["keyword", "%macro"],
" prnt(var,sum)"
]],
["punctuation", ";"],
["step", "proc print"],
["keyword", "data"],
["operator", "="],
"srhigh",
["punctuation", ";"],
["keyword", "var"],
["macro-variable", "&var"],
["punctuation", ";"],
["keyword", "sum"],
["macro-variable", "&sum"],
["punctuation", ";"],
["step", "run"],
["punctuation", ";"],
["macro-end", [
["keyword", "%mend"],
" prnt"
]],
["punctuation", ";"],
["macro-declaration", [
["keyword", "%macro"],
" printz/parmbuff"
]],
["punctuation", ";"],
["macro-keyword", "%let"],
" num",
["operator", "="],
["number", "1"],
["punctuation", ";"],
["macro-keyword", "%let"],
" dsname",
["operator", "="],
["macro-keyword", "%scan"],
["punctuation", "("],
["macro-variable", "&syspbuff"],
["punctuation", ","],
["macro-variable", "&num"],
["punctuation", ")"],
["punctuation", ";"],
["macro-keyword", "%do"],
["macro-keyword", "%while"],
["punctuation", "("],
["macro-variable", "&dsname"],
["operator-keyword", "ne"],
["punctuation", ")"],
["punctuation", ";"],
["step", "proc print"],
["keyword", "data"],
["operator", "="],
["macro-variable", "&dsname"],
["punctuation", ";"],
["step", "run"],
["punctuation", ";"],
["macro-keyword", "%let"],
" num",
["operator", "="],
["macro-keyword", "%eval"],
["punctuation", "("],
["macro-variable", "&num"],
["operator", "+"],
["number", "1"],
["punctuation", ")"],
["punctuation", ";"],
["macro-keyword", "%let"],
" dsname",
["operator", "="],
["macro-keyword", "%scan"],
["punctuation", "("],
["macro-variable", "&syspbuff"],
["punctuation", ","],
["macro-variable", "&num"],
["punctuation", ")"],
["punctuation", ";"],
["macro-keyword", "%end"],
["punctuation", ";"],
["macro-end", [
["keyword", "%mend"],
" printz"
]],
["punctuation", ";"]
]
----------------------------------------------------
Check that macro definition correctly recognizes %macro and %mend.