The macroArray package [ver. 1.3.0]

The macroArray package [ver. 1.3.0]

Changes:
- Four new parameters in the `%do_over()` macro: `check`, `rephrase`, `trigger`, and `unq`.
- Minor updates in the `%array()` macro.
- Documentation updated and cleaned.

SHA256 digest for the latest version macroArray: F*C6C2B5507B6590365222FC764076E294CCE3AAE99971D9CAA942F8BAEBEFAE24
This commit is contained in:
Bart Jablonski
2026-01-13 15:34:22 +01:00
parent 54ac874d46
commit 79e9385014
5 changed files with 25 additions and 25 deletions

View File

@@ -22,7 +22,7 @@ The **macroArray** package implements an array, a hash table, and a dictionary c
); );
``` ```
SHA256 digest for the latest version of `macroArray`: F*9B51F1B434742F08166F28DE40D64F16E9BC5ED8D1926AE7148A48116F7BDBA0 SHA256 digest for the latest version of `macroArray`: F*C6C2B5507B6590365222FC764076E294CCE3AAE99971D9CAA942F8BAEBEFAE24
[**Documentation for macroArray**](./macroarray.md "Documentation for macroArray") [**Documentation for macroArray**](./macroarray.md "Documentation for macroArray")

View File

@@ -10,12 +10,12 @@
- Package: macroArray - Package: macroArray
- Version: 1.3.0 - Version: 1.3.0
- Generated: 2026-01-13T14:47:32 - Generated: 2026-01-13T15:30:15
- Author(s): Bartosz Jablonski (yabwon@gmail.com) - Author(s): Bartosz Jablonski (yabwon@gmail.com)
- Maintainer(s): Bartosz Jablonski (yabwon@gmail.com) - Maintainer(s): Bartosz Jablonski (yabwon@gmail.com)
- License: MIT - License: MIT
- File SHA256: `F*9B51F1B434742F08166F28DE40D64F16E9BC5ED8D1926AE7148A48116F7BDBA0` for this version - File SHA256: `F*C6C2B5507B6590365222FC764076E294CCE3AAE99971D9CAA942F8BAEBEFAE24` for this version
- Content SHA256: `C*BBE7D736D7DF66231C41EEE321E9FE8C50D174C6DC43AFC09F4990894A5E7CBD` for this version - Content SHA256: `C*9119F3A4C7C4D859C7FB03373AB4FE6551CD7BDFA42BA9B4303D36C367BC8855` for this version
--- ---
@@ -782,11 +782,11 @@ The basic syntax is the following, the `<...>` means optional parameters:
`1:5` rather `1 2 3 4 5` since the firs works faster. `1:5` rather `1 2 3 4 5` since the firs works faster.
* `check=` - *Optional*, indicates should a check for a macro corresponding * `check=` - *Optional*, indicates should a check for a macro corresponding
to a macroarray be executed. If the macro does not exist wraning to a macroarray be executed. If the macro does not exist warning
is issued and the `do_over` stops. is issued and the `do_over` stops.
Default value `0` means: do not execute check. Default value `0` means: do not execute check.
* `rephrase=` - *Optional*, this parameter allows for an alternative aproach * `rephrase=` - *Optional*, this parameter allows for an alternative approach
in providing the phrase to be looped over. The idea is to make in providing the phrase to be looped over. The idea is to make
writing the phrase string code more convenient and easy to grasp. writing the phrase string code more convenient and easy to grasp.
The value is a string containing triggers (symbols) that are The value is a string containing triggers (symbols) that are
@@ -798,20 +798,20 @@ The basic syntax is the following, the `<...>` means optional parameters:
you can type much easier rephrase: you can type much easier rephrase:
`rename %do_over(myArr,rephrase=old_?=new_?);`, `rename %do_over(myArr,rephrase=old_?=new_?);`,
and all `?` will be replaced, under the hood, by calls to the macroarray. and all `?` will be replaced, under the hood, by calls to the macroarray.
For easier debuging the `do_over` macro prints the rephrased string For easier debugging the `do_over` macro prints the rephrased string
before and after chnge. before and after change.
When the `do_over` loops with multiple array, say `myArrA`, `myArrB`, When the `do_over` loops with multiple array, say `myArrA`, `myArrB`,
and `myArrC`, then those arrays should be refered by `?1?`, `?2?`, and `myArrC`, then those arrays should be referred by `?1?`, `?2?`,
and `?3?` respectively. and `?3?` respectively.
See `trigger` parameter definition to learn more. See `trigger` parameter definition to learn more.
If both `phrase` and `rephrase` are used, the seconf takes precedence. If both `phrase` and `rephrase` are used, the second takes precedence.
* `trigger=` - *Optional*, a single byte character (symbol) used for marking * `trigger=` - *Optional*, a single byte character (symbol) used for marking
macroarrays in the newly created phrase. macroarrays in the newly created phrase.
Default value is `?` symbol. Default value is `?` symbol.
When one macroarray is used, only the symbol should be used in When one macroarray is used, only the symbol should be used in
`rephrase=` string. When multiple macroarrays are used then the `rephrase=` string. When multiple macroarrays are used then the
symbol should surroun a number identifying array, e.g. `?2?`. symbol should surround a number identifying array, e.g. `?2?`.
See examples below for details. See examples below for details.
* `unq=` - *Optional*, indicates that the `%unquote()` macro function should * `unq=` - *Optional*, indicates that the `%unquote()` macro function should
@@ -979,7 +979,7 @@ The basic syntax is the following, the `<...>` means optional parameters:
**EXAMPLE 9.** Simpler multiple arrays looping with `rephrase=`, cont. **EXAMPLE 9.** Simpler multiple arrays looping with `rephrase=`, cont.
Create multiple datasets. Array `alpha`, `beta`, and `gamma` are Create multiple datasets. Array `alpha`, `beta`, and `gamma` are
from the privious example. from the previous example.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas
%do_over(alpha beta gamma %do_over(alpha beta gamma
@@ -995,7 +995,7 @@ The basic syntax is the following, the `<...>` means optional parameters:
**EXAMPLE 10.** Simpler multiple arrays looping with `rephrase=`, cont. **EXAMPLE 10.** Simpler multiple arrays looping with `rephrase=`, cont.
Create multiple datasets using a macro. Array `alpha`, `beta`, Create multiple datasets using a macro. Array `alpha`, `beta`,
and `gamma` are from the privious example. and `gamma` are from the previous example.
The `%nrstr()` is required to mask call to the `%doit2()` macro. The `%nrstr()` is required to mask call to the `%doit2()` macro.
Default `?` is replaced with `@`. Default `?` is replaced with `@`.

Binary file not shown.

View File

@@ -10,12 +10,12 @@
- Package: macroArray - Package: macroArray
- Version: 1.3.0 - Version: 1.3.0
- Generated: 2026-01-13T14:47:32 - Generated: 2026-01-13T15:30:15
- Author(s): Bartosz Jablonski (yabwon@gmail.com) - Author(s): Bartosz Jablonski (yabwon@gmail.com)
- Maintainer(s): Bartosz Jablonski (yabwon@gmail.com) - Maintainer(s): Bartosz Jablonski (yabwon@gmail.com)
- License: MIT - License: MIT
- File SHA256: `F*9B51F1B434742F08166F28DE40D64F16E9BC5ED8D1926AE7148A48116F7BDBA0` for this version - File SHA256: `F*C6C2B5507B6590365222FC764076E294CCE3AAE99971D9CAA942F8BAEBEFAE24` for this version
- Content SHA256: `C*BBE7D736D7DF66231C41EEE321E9FE8C50D174C6DC43AFC09F4990894A5E7CBD` for this version - Content SHA256: `C*9119F3A4C7C4D859C7FB03373AB4FE6551CD7BDFA42BA9B4303D36C367BC8855` for this version
--- ---
@@ -782,11 +782,11 @@ The basic syntax is the following, the `<...>` means optional parameters:
`1:5` rather `1 2 3 4 5` since the firs works faster. `1:5` rather `1 2 3 4 5` since the firs works faster.
* `check=` - *Optional*, indicates should a check for a macro corresponding * `check=` - *Optional*, indicates should a check for a macro corresponding
to a macroarray be executed. If the macro does not exist wraning to a macroarray be executed. If the macro does not exist warning
is issued and the `do_over` stops. is issued and the `do_over` stops.
Default value `0` means: do not execute check. Default value `0` means: do not execute check.
* `rephrase=` - *Optional*, this parameter allows for an alternative aproach * `rephrase=` - *Optional*, this parameter allows for an alternative approach
in providing the phrase to be looped over. The idea is to make in providing the phrase to be looped over. The idea is to make
writing the phrase string code more convenient and easy to grasp. writing the phrase string code more convenient and easy to grasp.
The value is a string containing triggers (symbols) that are The value is a string containing triggers (symbols) that are
@@ -798,20 +798,20 @@ The basic syntax is the following, the `<...>` means optional parameters:
you can type much easier rephrase: you can type much easier rephrase:
`rename %do_over(myArr,rephrase=old_?=new_?);`, `rename %do_over(myArr,rephrase=old_?=new_?);`,
and all `?` will be replaced, under the hood, by calls to the macroarray. and all `?` will be replaced, under the hood, by calls to the macroarray.
For easier debuging the `do_over` macro prints the rephrased string For easier debugging the `do_over` macro prints the rephrased string
before and after chnge. before and after change.
When the `do_over` loops with multiple array, say `myArrA`, `myArrB`, When the `do_over` loops with multiple array, say `myArrA`, `myArrB`,
and `myArrC`, then those arrays should be refered by `?1?`, `?2?`, and `myArrC`, then those arrays should be referred by `?1?`, `?2?`,
and `?3?` respectively. and `?3?` respectively.
See `trigger` parameter definition to learn more. See `trigger` parameter definition to learn more.
If both `phrase` and `rephrase` are used, the seconf takes precedence. If both `phrase` and `rephrase` are used, the second takes precedence.
* `trigger=` - *Optional*, a single byte character (symbol) used for marking * `trigger=` - *Optional*, a single byte character (symbol) used for marking
macroarrays in the newly created phrase. macroarrays in the newly created phrase.
Default value is `?` symbol. Default value is `?` symbol.
When one macroarray is used, only the symbol should be used in When one macroarray is used, only the symbol should be used in
`rephrase=` string. When multiple macroarrays are used then the `rephrase=` string. When multiple macroarrays are used then the
symbol should surroun a number identifying array, e.g. `?2?`. symbol should surround a number identifying array, e.g. `?2?`.
See examples below for details. See examples below for details.
* `unq=` - *Optional*, indicates that the `%unquote()` macro function should * `unq=` - *Optional*, indicates that the `%unquote()` macro function should
@@ -979,7 +979,7 @@ The basic syntax is the following, the `<...>` means optional parameters:
**EXAMPLE 9.** Simpler multiple arrays looping with `rephrase=`, cont. **EXAMPLE 9.** Simpler multiple arrays looping with `rephrase=`, cont.
Create multiple datasets. Array `alpha`, `beta`, and `gamma` are Create multiple datasets. Array `alpha`, `beta`, and `gamma` are
from the privious example. from the previous example.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas
%do_over(alpha beta gamma %do_over(alpha beta gamma
@@ -995,7 +995,7 @@ The basic syntax is the following, the `<...>` means optional parameters:
**EXAMPLE 10.** Simpler multiple arrays looping with `rephrase=`, cont. **EXAMPLE 10.** Simpler multiple arrays looping with `rephrase=`, cont.
Create multiple datasets using a macro. Array `alpha`, `beta`, Create multiple datasets using a macro. Array `alpha`, `beta`,
and `gamma` are from the privious example. and `gamma` are from the previous example.
The `%nrstr()` is required to mask call to the `%doit2()` macro. The `%nrstr()` is required to mask call to the `%doit2()` macro.
Default `?` is replaced with `@`. Default `?` is replaced with `@`.

Binary file not shown.