Don't confuse logic with habit; there is nothing illogical about regexen. Yes, 
the syntax is clumsy and not nearly as readable as patterns in, e.g., SNOBOL, 
but there's nothing magic about them, I could teach a bright elementary school 
student to write simple regexen, although probably not to read and write some 
of the more complicated ones I have dealt with.

Now, not all change is progress, and if you were ranting against, e.g., C, I 
might agree, but regexen do have redeeming social value.



--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3

________________________________________
From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
Tony Thigpen [t...@vse2pdf.com]
Sent: Thursday, February 27, 2020 10:46 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Rexx parse using period as placeholder

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

Reply via email to