Then what did you mean by "of a certain vintage"?
-- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 ________________________________________ From: IBM Mainframe Discussion List [[email protected]] on behalf of David Crayford [[email protected]] Sent: Thursday, February 27, 2020 11:31 AM To: [email protected] Subject: Re: Rexx parse using period as placeholder 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 [[email protected]] on >>>> behalf of David Crayford [[email protected]] >>>> Sent: Thursday, February 27, 2020 9:30 AM >>>> To: [email protected] >>>> 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 <[email protected]> >>>>> 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 [[email protected]] on >>>>>> behalf >>>>>> of David Crayford [[email protected]] >>>>>> Sent: Thursday, February 27, 2020 6:07 AM >>>>>> To: [email protected] >>>>>> 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 [[email protected]] on >>>>>> behalf of David Crayford [[email protected]] >>>>>>> Sent: Wednesday, February 26, 2020 7:18 AM >>>>>>> To: [email protected] >>>>>>> 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 [[email protected]] on >>>>>> behalf of David Crayford [[email protected]] >>>>>>>> Sent: Wednesday, February 26, 2020 7:01 AM >>>>>>>> To: [email protected] >>>>>>>> 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 [email protected] with the message: INFO >>>>>>>>> IBM-MAIN >>>>>>>> ---------------------------------------------------------------------- >>>>>>>> >>>>>>>> For IBM-MAIN subscribe / signoff / archive access instructions, >>>>>>>> send email to [email protected] with the message: INFO >>>>>>>> IBM-MAIN >>>>>>>> >>>>>>>> ---------------------------------------------------------------------- >>>>>>>> >>>>>>>> For IBM-MAIN subscribe / signoff / archive access instructions, >>>>>>>> send email to [email protected] with the message: INFO >>>>>>>> IBM-MAIN >>>>>>> ---------------------------------------------------------------------- >>>>>>> >>>>>>> For IBM-MAIN subscribe / signoff / archive access instructions, >>>>>>> send email to [email protected] with the message: INFO >>>>>>> IBM-MAIN >>>>>>> >>>>>>> ---------------------------------------------------------------------- >>>>>>> >>>>>>> For IBM-MAIN subscribe / signoff / archive access instructions, >>>>>>> send email to [email protected] with the message: INFO >>>>>>> IBM-MAIN >>>>>> ---------------------------------------------------------------------- >>>>>> >>>>>> For IBM-MAIN subscribe / signoff / archive access instructions, >>>>>> send email to [email protected] with the message: INFO >>>>>> IBM-MAIN >>>>>> >>>>>> ---------------------------------------------------------------------- >>>>>> >>>>>> For IBM-MAIN subscribe / signoff / archive access instructions, >>>>>> send email to [email protected] with the message: INFO >>>>>> IBM-MAIN >>>>>> >>>> ---------------------------------------------------------------------- >>>> For IBM-MAIN subscribe / signoff / archive access instructions, >>>> send email to [email protected] with the message: INFO IBM-MAIN >>>> >>>> ---------------------------------------------------------------------- >>>> For IBM-MAIN subscribe / signoff / archive access instructions, >>>> send email to [email protected] with the message: INFO IBM-MAIN >>> >>> ---------------------------------------------------------------------- >>> For IBM-MAIN subscribe / signoff / archive access instructions, >>> send email to [email protected] with the message: INFO IBM-MAIN >>> >>> >> >> ---------------------------------------------------------------------- >> For IBM-MAIN subscribe / signoff / archive access instructions, >> send email to [email protected] with the message: INFO IBM-MAIN >> >> > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to [email protected] with the message: INFO IBM-MAIN ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
