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 > -- Scott Ford IDMWORKS z/OS Development ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN