> You are being pedantic, but that's ok. When I was at NSF there was a van with the license number PEDANT. I had lust in my heart for that plate,
> I have found (from my co-workers especially) that most mainframe people > of a certain vintage are not willing to learn new stuff. My experience is very different; I see the same characteristic regardless of age or platform. I have met AKs who are eager to learn and young fogies who are prematurely senile. I have met mainframe people interested in learning new things and PC people who are set in their ways. Just on this list you can see lots of old dogs doing new tricks. Yeah, there are Luddites here as well, but it were ever thus. -- 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:59 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Rexx parse using period as placeholder 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