I never said "old programmers". That would be self defeating as I "am"
an old programmer. My point was that experienced z/OS guys don't want to
learn new stuff. And I stand by that because it's true!
On 2020-02-28 12:24 AM, Tony Thigpen wrote:You
The late father-in-law to my wife's sister worked for NASA in
Huntsville on the Saturn 5 rocket motors. Joe used to tell a lot of
stories about what working on the moon program in the '60s was like.
When Challenger blew up, he was brought out of retirement to be on a
panel discussing replacing the Shuttle SRBs with Saturn 5 F1 engines.
The panel found that the current (at that time) experts in rocket
engines had taken such a divergent path in their training and
experience that it would take a ground-up retraining to create a team
that could actually reactivate the F1 and perform the R&D needed to
support it's use. And, that it would be easier to train new specialist
than it would to retrain existing specialist. And, finally, that NASA
did not have the time it would take (many years). I.e., by the time
the support infrastructure was built, it would no longer be needed.
This also can be
I am great with what I do. I continue to learn good things in this
field, but I have found that some things just are not comparable with
my existing, and proven, methods of thinking. The biggest one, Rexx
Pipelines, I have 'made it work' several times, but it just does not
mesh with my internal logic paths. And, I spent a lot of time on it
'back when'. I also tried to learn RegEx, I did not get very far
before I realized that it just was not for me. My brain is just not
wired for it.
So, before someone writes "old programmers don't want to learn new
things", they need to remember that those "old programmers" were/are
good because they have the mental pathways needed for what they did,
and still do. And, that the fact that they don't have the mental
pathways needed for some of the new 'strange' stuff being created by
the younger programmers does mean that they are old and worn out. It
just means that the younger programmers are taking a different path.
Tony Thigpen
Tony Thigpen wrote on 2/27/20 10:46 AM:
Now, that is a bunch of BS.
Old timers do want to learn new things, but...
Our minds have been trained over many years to use logic paths that
are built on 'logic'. Some of the newer tools being used conflict
with those ingrained thought processes because they are designed
contrary to how we look at 'logic'.
Regular Expressions are more 'magic' than 'logic'. :-)
My boss a favorite expression when things conflict with previous
training:
"My just hurts my brain!"
I can say positively that I tried to understand Regular Expressions
and all it did was make my brain hurt.
Tony Thigpen
David Crayford wrote on 2/27/20 9:59 AM:
You are being pedantic, but that's ok.
I have found (from my co-workers especially) that most mainframe
people of a certain vintage are not willing to learn new stuff.
So regular expressions are off the menu when they can write logic to
do the same thing using their language of choice.
Of course, that's totally fine. Old dogs new tricks! RE does take
some learning but it's a case of "I can't be bothered".
On 2020-02-27 10:42 PM, Seymour J Metz wrote:
but I don't expect anybody on this forum to bother downloading it
because writing logic is preferable to learning something new ;)
1. This is a listserv mailing list, not a forum
2. I am far from the only reader of this list to enjoy new things,
and in particular I am far from being the only one to value
the expressive power of regexen.
3. Don't confuse lack of familiarity with prejudice against;
why not give some examples and see whether anybody is
interested?
--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3
________________________________________
From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on
behalf of David Crayford [dcrayf...@gmail.com]
Sent: Thursday, February 27, 2020 9:30 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Rexx parse using period as placeholder
I consider simple to be a single line regular expression which can
handle the parsing grammar in one hit. Now, that may not to simple to
most mainframe old timers
but it's a walk in the park for young guys.
Like I said I have a RE package on github that can do this stuff in
REXX
but I don't expect anybody on this forum to bother
downloading it because writing logic is preferable to learning
something
new ;)
On 2020-02-27 9:58 PM, scott Ford wrote:
Hey David,
What do you mean by simple ? Less stmts ?
On Thu, Feb 27, 2020 at 8:50 AM Seymour J Metz <sme...@gmu.edu>
wrote:
As an alternative to regexen, there is a package called PROC that
does the
subset of IKJPARSE needed for CLIST style parameters. There may
be other
such tools out there; if I knew of a decent search engine ...
--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3
________________________________________
From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on
behalf
of David Crayford [dcrayf...@gmail.com]
Sent: Thursday, February 27, 2020 6:07 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Rexx parse using period as placeholder
OK. Let me change the requirements again ;) How about also handling
single quotes for a fully qualified data set.
Simple to do with a regex. Not so simple using REXX.
Syntax:
INDSN(DSNAME(MEMBER))
INDSN(DSNAME)
INDSN('HLQ.DSNAME(MEMBER)')
INDSN('HLQ.DSNAME')
On 2020-02-27 12:28 AM, Seymour J Metz wrote:
Great! How will that work if I don't have a member name?
The code will tell me not to believe you when you write
"Syntax:
INDSN(DSNAM(MEMBER))"
Writing the code is the easy part; the hard part is getting the
actual
requirements.
--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3
________________________________________
From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on
behalf of David Crayford [dcrayf...@gmail.com]
Sent: Wednesday, February 26, 2020 7:18 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Rexx parse using period as placeholder
Great! How will that work if I don't have a member name?
INDSN(DSNAME)
On 2020-02-26 8:11 PM, Seymour J Metz wrote:
When I'm testing a template I usually use variable names so
it's easier
to follow what's happening; feel free to change them to periods.
trace i;parse var parm kw '(' dsn '(' mem ')' ')'
95 *-* parse var parm kw '(' dsn '(' mem ')'
')'
>V> "INDSN(DSNAME(MEMBER))"
>L> "("
>>> "("
>>> "INDSN"
>L> "("
>>> "("
>>> "DSNAME"
>L> ")"
>>> ")"
>>> "MEMBER"
>L> ")"
>>> ")"
96 *-* trace 'Off' /*
Don't trace
rexxtry.
*/
................................................ REXXTRY.CMD on
OS/2
say dsn mem
DSNAME MEMBER
--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3
________________________________________
From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on
behalf of David Crayford [dcrayf...@gmail.com]
Sent: Wednesday, February 26, 2020 7:01 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Rexx parse using period as placeholder
I've got a REXX parse puzzle to solve and I would like
suggestions on
how to solve it.
Syntax:
INDSN(DSNAM(MEMBER))
The code is simple. It uses the parse instruction with a
template.
parse var parm . '(' val ')'
*-* parm = 'INDSN(DSNAME(MEMBER))'
>L> "INDSN(DSNAME(MEMBER))"
*-* parse var parm . '(' val ')'
>.> "INDSN"
>>> "DSNAME(MEMBER"
Unfortunately the value is truncated because "parse" has no way to
anchor to the end of the string.
Using a regex this is very simple "\((.*)\)$"
Most modern languages have PEG libraries (parsing expression
grammers)
which are much more powerful that regex. They can be called
recursively
and used to implement real parsers.
Even a simple scripting like Lua (which runs on z/OS) has a
library
which can be used to implement a C99 parser in 500 lines of code
https://secure-web.cisco.com/1-qpVukWY5CQ__uk-jb69c-vU9oQiHr0QYGSPlCeoZgyD2_0Vr7rZvCFOZMHJg7zk3VOksBvTUY8MLW1evN4UV9cNBh-pn9n-5F9_X82JabsK-ab5tZgKrsgKaJaEaxaxX5DQT-npVqFY2v_bsph_x8TPP0FtlXCodigNSekdfPE7jkgJNBmS59AWuMpG8X-Uk87HGTSjWom-rjWZ2cck7YmxwA8YD0v-eN-AL17ABCPz1J03MFZeG5DTXPPIQZDHjFYyC1zarF945-8oyYAd868yq1R6J7tuZO3LwSG-nXLyxFjuFhxAFLZjb5wzxr9ud0_gAOZpFtSdNUpsdux1AoWvZREOg5L4JMcfEVubG-1nO2eSTtdsuvL3IPGSGD4-HEKFuhCLSVZQb4nT1RtVUgxxwK-lTjuUgN8iE103myJE9v-kJevMwsdsZ3jGRYmT/https%3A%2F%2Fgithub.com%2Ftitan-lang%2Fc-parser%2Fblob%2Fmaster%2Fc99.lua
.
On 2020-02-26 11:41 AM, Paul Gilmartin wrote:
On 2020-02-24, at 13:43:52, Ambros, Thomas wrote:
A trivial item, but this surprised me.
I wanted to parse out the string 'word3' using the period as
a place
holder. The input could have a blank delimited string containing an
embedded period before the one I wanted to parse out. The Parse
Var as
coded didn't work. ...
myVar = 'word1 word2 9.12 word3.ext'
Parse Var myVar . . . myVal '.' .
...
Say 'myVal=' myVal
...
The simple answer to the elliptically stated problem is:
MyVal = 'word3'
A more general solution, using regex is:
556 $ echo 'word1 word2 9.12 word3.ext' | sed 's/.*
\([^.]*\).*/\1/'
word3
557 $
This finds the last substring in the subject preceded by a space
and followed by a period.
Full disclosure, for Tony to gloat:
o It's easier to code than to review.
o I got it right on the third try.
o I haven't fuzz tested.
-- gil
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO
IBM-MAIN
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO
IBM-MAIN
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO
IBM-MAIN
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO
IBM-MAIN
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO
IBM-MAIN
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO
IBM-MAIN
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO
IBM-MAIN
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN