[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [bug-gawk] gawk 5.0.1 patch to allow *valid* awk variable names to b
From: |
Tom Gray |
Subject: |
Re: [bug-gawk] gawk 5.0.1 patch to allow *valid* awk variable names to be assigned to SYMTAB |
Date: |
Mon, 14 Oct 2019 16:13:41 +0000 |
HI Peter,
Have you considered using your own array instead of SYMTAB[]
Lets call it mem[] ... to represent some generic storage space.
Then the index will not have any "nice variable name" restrictions.
FNR == 1 { for (I = 1; I <= NF; i++) { mem[$i] = computed_value } }
If ((mem[MyVar] > x) && (mem[MyVar] < y)) { do-something
In my opinion Gawks jagged arrays of arrays are the best thing since sliced
bread.
Combined with recursion and indirect function calls you get incredible power.
Do not underestimate the power of portability. If you write something cool,
you want others to be able to use it.
Tom
-----Original Message-----
From: bug-gawk <bug-gawk-bounces+tom_gray=address@hidden> On Behalf Of
address@hidden
Sent: Sunday, October 13, 2019 5:25 PM
To: address@hidden
Cc: address@hidden
Subject: Re: [bug-gawk] gawk 5.0.1 patch to allow *valid* awk variable names to
be assigned to SYMTAB
[EXTERNAL]
Hi Arnold,
In further testing of my patch to interpret.h, I have found that there is at
least one issue no doubt due to my ignorance of the correct structure and
linking of Node * structures.
In short, assigning a number of dynamic field names (e.g., field values input
from a file using $1, $2, etc.) into SYMTAB seems to leave all of those
newly-created variables pointing to the value of the last one entered into
SYMTAB.
I have not yet nailed down why that happens, but as I said I suspect it is my
ignorance of the proper chaining and adjustment of the Node * structures that
is at fault.
Is there any internal developer design documentation on the actual structure of
the SYMTAB Node * structures other than the source code itself? A visual chart
of any kind (ASCII art, Visio or any open source equivalent like LibreOffice
Draw or Pencil, etc.) would be a great help.
In particular, for the interpret.h operations Op_subscript_lhs and Op_stor_sub,
what value is the "lhs" Node * value pointing at after the assignment "lhs =
assoc_lookup(t1, t2);"?
I apologize for my ignorance about these internal structural issues. I am only
trying to get to the place where I can safely assign dynamically created
variable names and then later use their dynamically assigned values, as in for
example:
FNR == 1 { for (I = 1; I <= NF; i++) { SYMTAB[$i] = computed_value } } # Where
$i has been previously verified as a valid gawk variable name value, or
suitably adjusted to be one
Where for instance $4 == "MyVar", and then later in the program I can use code
like:
If ((MyVar > x) && (MyVar < y)) { do-something }
-- or --
MyVar ~ /Some-valid-RE/ { do-something }
I admit that this is a limited use case, but it would be a significant help in
my personal projects (not intended for general distribution anywhere).
Peter
P.S. -- If I can gain an acceptable level of understanding of the Node *
structures and linking and no current visual representation is available, I
would be willing to create such a visual representation for the project to use.
> -----Original Message-----
> From: address@hidden <address@hidden>
> Sent: Tuesday, October 8, 2019 9:10 PM
> To: 'address@hidden' <address@hidden>
> Cc: 'address@hidden' <address@hidden>
> Subject: RE: [bug-gawk] gawk 5.0.1 patch to allow *valid* awk variable
names
> to be assigned to SYMTAB
>
> Hi Arnold,
>
> You are welcome. I do understand about paperwork issues, if needed I
> will supply anything required.
>
> Let me know when you find the round tuits to look over the patch. I
> know
all
> too well how scarce those can be.
>
> Regards,
>
> Peter
>
> > -----Original Message-----
> > From: address@hidden <address@hidden>
> > Sent: Tuesday, October 8, 2019 3:25 AM
> > To: address@hidden
> > Cc: address@hidden
> > Subject: Re: [bug-gawk] gawk 5.0.1 patch to allow *valid* awk
> > variable names to be assigned to SYMTAB
> >
> > Hi.
> >
> > Thanks for this. I'll review the patch.
> >
> > > I assign any rights I may have in the patch code to GNU.
> >
> > Unfortunately, a simple statement such as this in an email just
> > doesn't work. If I decide to use the patch, and that the patch
> > needs paperwork (it might be small enough to not require it) then
> > you'll have to do a formal assignment of copyright to the FSF.
> > (It's their code, I have to play by their rules.)
> >
> > This process is relatively painless, although often a bit tedious.
> >
> > I am busy for the next while, but I'll eventually give this some
> > attention and get back to you.
> >
> > In all cases, *thank you* for wanting to contribute.
> >
> > Arnold
- [bug-gawk] gawk 5.0.1 patch to allow *valid* awk variable names to be assigned to SYMTAB, pjfarley3, 2019/10/07
- Re: [bug-gawk] gawk 5.0.1 patch to allow *valid* awk variable names to be assigned to SYMTAB, arnold, 2019/10/08
- Re: [bug-gawk] gawk 5.0.1 patch to allow *valid* awk variable names to be assigned to SYMTAB, pjfarley3, 2019/10/08
- Re: [bug-gawk] gawk 5.0.1 patch to allow *valid* awk variable names to be assigned to SYMTAB, pjfarley3, 2019/10/13
- Re: [bug-gawk] gawk 5.0.1 patch to allow *valid* awk variable names to be assigned to SYMTAB,
Tom Gray <=
- Re: [bug-gawk] gawk 5.0.1 patch to allow *valid* awk variable names to be assigned to SYMTAB, pjfarley3, 2019/10/15
- Re: [bug-gawk] gawk 5.0.1 patch to allow *valid* awk variable names to be assigned to SYMTAB, arnold, 2019/10/16
- Message not available
- Message not available
- Re: [bug-gawk] gawk 5.0.1 patch to allow *valid* awk variable names to be assigned to SYMTAB, pjfarley3, 2019/10/21
- Re: [bug-gawk] gawk 5.0.1 patch to allow *valid* awk variable names to be assigned to SYMTAB, Andrew J. Schorr, 2019/10/21
- Re: [bug-gawk] gawk 5.0.1 patch to allow *valid* awk variable names to be assigned to SYMTAB, pjfarley3, 2019/10/21
- Re: [bug-gawk] gawk 5.0.1 patch to allow *valid* awk variable names to be assigned to SYMTAB, Andrew J. Schorr, 2019/10/22
- Re: [bug-gawk] gawk 5.0.1 patch to allow *valid* awk variable names to be assigned to SYMTAB, pjfarley3, 2019/10/22
- Re: [bug-gawk] gawk 5.0.1 patch to allow *valid* awk variable names to be assigned to SYMTAB, arnold, 2019/10/22