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

Reply via email to