I was talking about SCEELKED at run time, no compile time.  It's (or SCEELKEX 
for lower-case entry points) definitely required at compile time for static 
calls, and that works.  But when I tried dynamic calls, even with SCEERUN in 
the linklist, it said it couldn't find the REG* modules.




>________________________________
> From: "Farley, Peter x23353" <peter.far...@broadridge.com>
>To: IBM-MAIN@LISTSERV.UA.EDU 
>Sent: Wednesday, July 3, 2013 10:09 PM
>Subject: Re: Announcing PCRE 8.33 for native z/OS
> 
>
>Sorry, application programmers here are not allowed ANY operator functions 
>(including "/D").
>
>And I realized after I wrote my prior reply that SCEELKED was required in your 
>case because you used NODYNAM, thus needing static bind-time merging of the 
>modules from SCEELKED.  I didn't need it because apparently DYNAM generates 
>the correct call to the SCEERUN* library(ies) at runtime or to the in-core C 
>runtime modules under the LE covers.  Or maybe our automated compile scripts 
>already included SCEELKED.  I have to check on that, just in case I am wrong.  
> If they do automatically include SCEEKLED I'll report back.
>
>In any case, thanks once again for the terrific POC (proof of concept) code.
>
>Peter
>
>-----Original Message-----
>From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On 
>Behalf Of Frank Swarbrick
>Sent: Wednesday, July 03, 2013 6:41 PM
>To: IBM-MAIN@LISTSERV.UA.EDU
>Subject: Re: Announcing PCRE 8.33 for native z/OS
>
>Hmm, perhaps underscores did come with COBOL 4.2.  I don't recall.
>
>Can you do "/D PROG,LNKLST" in SDSF?  That will get you the active linklist.  
>The only CEE libraries we have there are CEE.SCEERUN and CEE.SCEERUN2.  I 
>though that CEE.SCEELKED was a link/bind-time library only, but I could be 
>wrong!
>
>(What possible harm could it be for an applications programmer to look at the 
>system PARMLIBs.......)
>
>Not sure why my use of CP1140 didn't work.  Maybe I'll fool around with it 
>later.
>
>
>Frank
>
>>________________________________
>> From: "Farley, Peter x23353" <peter.far...@broadridge.com>
>>To: IBM-MAIN@LISTSERV.UA.EDU 
>>Sent: Wednesday, July 3, 2013 4:20 PM
>>Subject: Re: Announcing PCRE 8.33 for native z/OS
>> 
>>
>>Yes, it did execute just fine in batch from JCL with DYNAM, and our default 
>>COBOL code page is 1140 as well, and it still worked fine.  However, I did 
>>not need to add SCEELKED to the STEPLIB so our systems folk probably have it 
>>in the linklist.  No way for me to confirm that though, PARMLIB here is 
>>security protected against reads by ordinary people.
>>
>>Thanks for the note about using "value" for the length parameter to 
>>"regerror", I'll change that in my test program.
>>
>>We are running Enterprise COBOL 4.1 here, and I cannot seem to get it to 
>>accept underscores.  Maybe that was added via PTF or APAR and we don't have 
>>it applied?  Or maybe that was only introduced in 4.2?  I'll have to go look 
>>that up in the FM's later.
>>
>>Have a happy and safe Independence Day.
>>
>>Peter
>>
>>-----Original Message-----
>>From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On 
>>Behalf Of Frank Swarbrick
>>Sent: Wednesday, July 03, 2013 4:55 PM
>>To: IBM-MAIN@LISTSERV.UA.EDU
>>Subject: Re: Announcing PCRE 8.33 for native z/OS
>>
>>1) Did you actually get it to work (execute) with DYNAM?  That is our shop 
>>standard as well, but when I try it I get a "program not found" error (S806), 
>>or if I add CEE.SCEELKED to the JOBLIB I get an S0C1(?!?!).  Also, do you use 
>>codepage 1047 by default?  I didn't expect it to work with codepage 1140 (our 
>>default) and it in fact did not work.  (No errors given, but no matches 
>>either.
>>2) Underscores are allowed in COBOL data names as of COBOL 4, I believe.
>>3) Oops!  Forgot to code that.  You need to pass the length by value, though. 
>> I used "...value length of msgbuf", but you can use your "...value lmsgbuf' 
>>if you want.
>>4) I won't ask.  :-)
>>
>>Frank
>>
>>
>>
>>
>>>________________________________
>>> From: "Farley, Peter x23353" <peter.far...@broadridge.com>
>>>To: IBM-MAIN@LISTSERV.UA.EDU 
>>>Sent: Wednesday, July 3, 2013 1:20 PM
>>>Subject: Re: Announcing PCRE 8.33 for native z/OS
>>> 
>>>
>>>Frank,
>>>
>>>First let me say: "Very cool, man!"  I was inspired by your 30 minutes to 
>>>take a few of my own to see if I could duplicate your experiment in our 
>>>somewhat more staid (i.e., no PDSE's for application COBOL load modules) 
>>>environment, and sure enough I can.  I had to make a couple of small changes 
>>>to your code to accomplish my test:
>>>
>>>1.    Remove PROCESS cards and default to shop-standard PGMNAME(COMPAT) and 
>>>DYNAM
>>>2.    Change underscores to hyphens in the data names
>>>3.    Add "using" and "returning" parameters to the "regerror" call, which I 
>>>guess never caused you a problem due to no errors happening at execution time
>>>4.    Use double-quotes instead of apostrophes around the called program 
>>>names due to an internal application standard requirement (don't ask, long 
>>>story)
>>>
>>>So below is my revised copy of your code, which works when compiled to a 
>>>load module in a PDS and produces the same output as you got.  Thank you for 
>>>taking the time to show us how to do this!
>>>
>>>Peter
>>>
>>>Revised code:
>>>
>>>       identification division.                              
>>>       program-id.  "TSTREGEX".                              
>>>       data division.                                        
>>>       working-storage section.                              
>>>       01  regex.                                            
>>>           05  re-nsub         comp-5    pic s9(8).          
>>>           05  re-comp         pointer.                      
>>>           05  re-cflags       comp-5    pic s9(8).          
>>>           05  re-erroff       comp-5    pic s9(8).          
>>>           05  re-len          comp-5    pic s9(8).          
>>>           05  re-ucoll        comp-5    pic s9(4)  occurs 2. 
>>>           05  re-lsub         pointer              occurs 10.
>>>           05  re-esub         pointer              occurs 10.
>>>           05  re-map          display   pic x(256).          
>>>           05  re-shift        comp-5    pic s9(4).          
>>>           05  re-dbcs         comp-5    pic s9(4).          
>>>       77  reti                comp-5    pic s9(8).          
>>>       77  msgbuf              display   pic x(100).          
>>>       77  lmsgbuf             comp      pic s9(8).          
>>>                                                              
>>>       procedure division.                                    
>>>           call "regcomp" using regex                        
>>>                                content z"^a[[:alnum:]]"      
>>>                                value 0                      
>>>                returning reti                                
>>>           if reti is not equal to zero                      
>>>               display 'Could not compile regex'              
>>>               stop run                                      
>>>           end-if                                            
>>>           call "regexec" using regex                        
>>>                                content z'abc'                
>>>                                value 0 0 0                  
>>>                returning reti                                
>>>           perform check-reti                                
>>>           call "regexec" using regex                        
>>>                                content z'qxp'                
>>>                                value 0 0 0                  
>>>                returning reti                                
>>>           perform check-reti                                
>>>           call "regfree" using regex                        
>>>           goback.                                            
>>>       check-reti.                                            
>>>           evaluate reti                                      
>>>           when zero                                
>>>               display 'match'                      
>>>           when 1                                  
>>>               display 'no match'                  
>>>           when other                              
>>>               move length of msgbuf to lmsgbuf    
>>>               call "regerror" using regex          
>>>                                     msgbuf        
>>>                                     lmsgbuf        
>>>                    returning reti                  
>>>               display 'Regex match failed: ' msgbuf
>>>               stop run                            
>>>           end-evaluate                            
>>>           .                                        
>>>       end program "TSTREGEX".                      
>>>
>>>-----Original Message-----
>>>From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On 
>>>Behalf Of Frank Swarbrick
>>>Sent: Wednesday, July 03, 2013 2:17 PM
>>>To: IBM-MAIN@LISTSERV.UA.EDU
>>>Subject: Re: Announcing PCRE 8.33 for native z/OS
>>>
>>>Not to discourage you, as I'm sure porting PCRE to z/OS is a fine idea, but 
>>>it would not be true to say that regex processing is not available for COBOL 
>>>(or PL/I) on z/OS.  I was looking through the IBM XL C/C++ for z/OS Run-Time 
>>>Library Reference the other day (god knows why, since I don't even have 
>>>access to XL C/C++) and noticed that there were some regular expression 
>>>features.
>>>
>>>So I just took about 30 minutes and came up with this COBOL program (based 
>>>on C code found here: 
>>>http://stackoverflow.com/questions/1085083/regular-expressions-in-c-examples):
>>>
>>><Prior version of regex COBOL code snipped to shorten email>
>>>
>>>It compiles and runs fine, with the following results:
>>>match
>>>no match
>>>
>>>Pretty cool, I must say!
>>>FWIW, I didn't need to have the regex data item be the group data item as 
>>>above.  I could have just made it a DISPLAY PIC X(364), since I'm not 
>>>referring to any of the fields within the group in my COBOL program.
>>>
>>>Frank
>--
>
>This message and any attachments are intended only for the use of the 
>addressee and may contain information that is privileged and confidential. If 
>the reader of the message is not the intended recipient or an authorized 
>representative of the intended recipient, you are hereby notified that any 
>dissemination of this communication is strictly prohibited. If you have 
>received this communication in error, please notify us immediately by e-mail 
>and delete the message and any attachments from your system.
>
>----------------------------------------------------------------------
>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