From 7c1d58c165f1e647c71d13f2eb95823cc794a3d6 Mon Sep 17 00:00:00 2001 From: yabwon Date: Sat, 17 Oct 2020 19:01:31 +0200 Subject: [PATCH] macroArray package, version 0.6 macroArray package, version 0.6: New feature of the `%array()` macro. If the `macarray` parameter of the `%array()` macro is set to `M` then for a given array name the macro symbols table is scanned for macrovariables with prefix like the array name and numeric suffixes. Then the minimum and the maximum index is determined and all not existing global macrovariables are created and a macro is generated in the same way as it is generated for the `Y` value. Documentation updated. --- README.md | 4 ++-- packages/README.md | 4 ++-- packages/SHA256_for_packages.txt | 3 +++ packages/macroarray.md | 26 ++++++++++++++++++++++---- packages/macroarray.zip | Bin 28719 -> 29531 bytes 5 files changed, 29 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index bae01cc..a89265d 100644 --- a/README.md +++ b/README.md @@ -88,7 +88,7 @@ SHA256 digest for SQLinDS: FCD7EE5B59E08CD1A2E31F6A5D94D7275C99AFFAACEA3D187F60A SHA256 digest for DFA: CC19058354D4B51F0675A8414F18089CCC583AA45822CEFC79368F06D8715846 -- **macroArray**\[0.5\], implementation of an array concept in a macrolanguage, e.g. +- **macroArray**\[0.6\], implementation of an array concept in a macrolanguage, e.g. ``` %array(ABC[17] (111:127), macarray=Y); @@ -107,7 +107,7 @@ SHA256 digest for DFA: CC19058354D4B51F0675A8414F18089CCC583AA45822CEFC79368F06D which = 1:H:2 ); ``` -SHA256 digest for macroArray: 96215AC04EF26C97719F6B1EDA5ACAF7DD491B7F2DDDE9985A0560CD2916ABA1 +SHA256 digest for macroArray: 022A7CD5F0C1E72032CC3426A8AC53D61A8766868B6B48195BC69F59007323B8 [Documentation for macroArray](https://github.com/yabwon/SAS_PACKAGES/blob/master/packages/macroarray.md "Documentation for macroArray") diff --git a/packages/README.md b/packages/README.md index 9b973c0..fa33917 100644 --- a/packages/README.md +++ b/packages/README.md @@ -55,7 +55,7 @@ SHA256 digest for DFA: CC19058354D4B51F0675A8414F18089CCC583AA45822CEFC79368F06D --- -- **macroArray**\[0.5\], implementation of an array concept in a macro language, e.g. +- **macroArray**\[0.6\], implementation of an array concept in a macro language, e.g. ``` %array(ABC[17] (111:127), macarray=Y); @@ -74,7 +74,7 @@ SHA256 digest for DFA: CC19058354D4B51F0675A8414F18089CCC583AA45822CEFC79368F06D which = 1:H:2 ); ``` -SHA256 digest for macroArray: 96215AC04EF26C97719F6B1EDA5ACAF7DD491B7F2DDDE9985A0560CD2916ABA1 +SHA256 digest for macroArray: 022A7CD5F0C1E72032CC3426A8AC53D61A8766868B6B48195BC69F59007323B8 [Documentation for macroArray](https://github.com/yabwon/SAS_PACKAGES/blob/master/packages/macroarray.md "Documentation for macroArray") diff --git a/packages/SHA256_for_packages.txt b/packages/SHA256_for_packages.txt index 6defa5a..e5516a4 100644 --- a/packages/SHA256_for_packages.txt +++ b/packages/SHA256_for_packages.txt @@ -1,3 +1,6 @@ +/* 20201017 */ +macroArray: 022A7CD5F0C1E72032CC3426A8AC53D61A8766868B6B48195BC69F59007323B8 + /* 20201014 */ BasePlus: 4E0C2A45CF8A5863C0D054568C712D10A296240877D604E77A778451A740874B DFA: CC19058354D4B51F0675A8414F18089CCC583AA45822CEFC79368F06D8715846 diff --git a/packages/macroarray.md b/packages/macroarray.md index 9eed0e1..6357c5c 100644 --- a/packages/macroarray.md +++ b/packages/macroarray.md @@ -13,7 +13,7 @@ --- -# The macroArray package [ver. 0.5] ############################################### +# The macroArray package [ver. 0.6] ############################################### The **macroArray** package implements a macro array facility: - `%array()`, @@ -63,7 +63,7 @@ Required SAS Components: *SAS package generated by generatePackage, version 20200911* The SHA256 hash digest for package macroArray: -`96215AC04EF26C97719F6B1EDA5ACAF7DD491B7F2DDDE9985A0560CD2916ABA1` +`022A7CD5F0C1E72032CC3426A8AC53D61A8766868B6B48195BC69F59007323B8` --- # Content description ############################################################################################ @@ -306,7 +306,12 @@ The basic syntax is the following, the `<...>` means optional parameters: or when used with second parameter equal `I` (insert) allow to overwrite macroarrays value: `%let %myArr(17,i) = 42;` - + If set to `M` then for a given array name the macro symbols table is scanned for + macrovariables with prefix like the array name and numeric suffixes, + then the minimum and the maximum index is determined + and all not existing global macrovariables are created and + a macro is generated in the same way as for the `Y` value + * `ds=` - *Optional*, use a dataset as a basis for a macroarray data, if used by default overwrites use of the `array` parameter, honors `macarray=` argument, dataset options are allowed, e.g. `sashelp.class(obs=5)` @@ -570,6 +575,19 @@ The basic syntax is the following, the `<...>` means optional parameters: %array(ds = sashelp.cars(obs=100 where=(Cylinders=6)), vars = Make| Type| Model, macarray=Y) %put *%make(&makeLBOUND.)*%Model(2)*%Model(3)*%Model(4)*%type(&typeHBOUND.)*; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +**EXAMPLE 13.** Creating an array and macro from existing list of macrovariables + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas + %let myTest3 = 13; + %let myTest6 = 16; + %let myTest9 = 19; + + %array(myTest, macarray=M) + %do_over(myTest, phrase = %nrstr(%put *&_I_.*%myTest(&_I_.)*;)) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + --- @@ -1088,7 +1106,7 @@ The basic syntax is the following, the `<...>` means optional parameters: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -**EXAMPLE 3.** Create a "4-loop" `%DO_OVER4()` macro +**EXAMPLE 2.** Create a "4-loop" `%DO_OVER4()` macro ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas %make_do_over(4); diff --git a/packages/macroarray.zip b/packages/macroarray.zip index 99187e27f5a9cac01a8ba87fb172072eb142caad..cf0a03f3e4c779da45ef7827a80fbc0e0fb4180a 100644 GIT binary patch delta 15736 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