Re: Nitpicking the code (Was: Experiences with match() subexpressions?)

Liste des GroupesRevenir à cl awk 
Sujet : Re: Nitpicking the code (Was: Experiences with match() subexpressions?)
De : mortonspam (at) *nospam* gmail.com (Ed Morton)
Groupes : comp.lang.awk
Date : 15. Apr 2025, 00:55:22
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <vtk799$2dego$1@dont-email.me>
References : 1 2 3 4 5 6
User-Agent : Mozilla Thunderbird
On 4/14/2025 1:53 PM, Janis Papanagnou wrote:
On 14.04.2025 20:20, Kenny McCormack wrote:
In article <vtgtkr$3br8e$1@dont-email.me>,
Ed Morton  <mortonspam@gmail.com> wrote:
...
     data = "R=\"R=r1,R=r2\",R=r2,R=r3,E=e"
     nf = patsplit(data, arr, /[RE]=([^,]*|"([^"]|"")*")/)
     delete arr
     for ( i in arr ) {
         sub(/[^=]+=/, "", arr[i])
     }
>
This can't be right, since if the sequence:
     delete arr
     for (i in arr) ...
can't possibly do anything.  I.e., the for statement will be a no-op, since
the array is empty at that point.
Yeah, remove that `delete arr`, it's not necessary since `patsplit()` will delete `arr` before populating it and `delete arr` in that location would break the code.

>
or any awk:
>
     data = "R=\"R=r1,R=r2\",R=r2,R=r3,E=e"
     nf = 0
     delete arr
     while ( match(data, /[RE]=([^,]*|"([^"]|"")*")/, a) ) {
         arr[++nf] = substr(data, RSTART+2, RLENGTH-2)
         data = substr(data, RSTART+RLENGTH)
     }
>
I believe "delete arr" (without an index, hence removing the entire array)
is an "extension".  I can't quite quote chapter and verse, but I note that
"man mawk" explicitly mentions that mawk supports this syntax, thereby
implying that it isn't "standard".  Of course, gawk supports it as well.
`delete arr` is defined by the current POSIX standard (https://pubs.opengroup.org/onlinepubs/9799919799/utilities/awk.html) as equivalent to `for (index in array) delete array[index]` but for years prior to that [almost?] every maintained awk supported `delete arr` anyway.

So, if by "any awk", you mean "strictly standard", then, well, you can see
where I am going with this.
 I seem to recall that a standard way to clear an array could be using
   split("", arr)
`split("", arr)` was the defacto "standard" way to delete an array's content without looping before `delete arr` was adopted by POSIX. In all seriousness if anyone is using an awk that doesn't support `delete arr` then they need to get a new awk as who knows what other features it might be lacking.
Ed.

for example. To my taste it looks a bit clumsy, not as nice as using
'delete', but well, whatever one prefers.
 Janis
 

Date Sujet#  Auteur
10 Apr 25 * Experiences with match() subexpressions?22Janis Papanagnou
10 Apr 25 `* Re: Experiences with match() subexpressions?21Janis Papanagnou
10 Apr 25  +* Re: Experiences with match() subexpressions?14Kenny McCormack
10 Apr 25  i`* Re: Experiences with match() subexpressions?13Janis Papanagnou
10 Apr 25  i `* Re: Experiences with match() subexpressions?12Kenny McCormack
10 Apr 25  i  `* Re: Experiences with match() subexpressions?11Janis Papanagnou
11 Apr 25  i   `* Re: Experiences with match() subexpressions?10Aharon Robbins
11 Apr 25  i    +* Re: Experiences with match() subexpressions?5Janis Papanagnou
11 Apr 25  i    i+- Re: Experiences with match() subexpressions?1Kaz Kylheku
18 Apr 25  i    i`* Re: Experiences with match() subexpressions?3Manuel Collado
18 Apr 25  i    i +- Re: Experiences with match() subexpressions?1Kenny McCormack
18 Apr 25  i    i `- Re: Experiences with match() subexpressions?1Janis Papanagnou
11 Apr 25  i    +- Re: Experiences with match() subexpressions?1Kaz Kylheku
11 Apr 25  i    +* The new matcher (Was: Experiences with match() subexpressions?)2Kenny McCormack
11 Apr 25  i    i`- Re: The new matcher (Was: Experiences with match() subexpressions?)1Janis Papanagnou
11 Apr 25  i    `- Re: Experiences with match() subexpressions?1Kaz Kylheku
11 Apr 25  `* Re: Experiences with match() subexpressions?6Ed Morton
13 Apr 25   `* Re: Experiences with match() subexpressions?5Ed Morton
14 Apr 25    `* Nitpicking the code (Was: Experiences with match() subexpressions?)4Kenny McCormack
14 Apr 25     `* Re: Nitpicking the code (Was: Experiences with match() subexpressions?)3Janis Papanagnou
15 Apr 25      `* Re: Nitpicking the code (Was: Experiences with match() subexpressions?)2Ed Morton
15 Apr 25       `- Re: Nitpicking the code (Was: Experiences with match() subexpressions?)1Janis Papanagnou

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal