Could be a code page issue. USS users guide says The LC_SYNTAX environment variable The POSIX portable character set has 13 characters whose encoding might vary on different EBCDIC code pages: Right brace (}) Left brace ({) Backslash (\) Right bracket (]) Left bracket ([) Circumflex (^) Tilde (~) Exclamation point (!) Number sign (#) Vertical bar (|) Dollar sign ($) *Commercial at-sign (@)* Accent grave (`)
ls -T ccc.c will show you the code page. IBMUSER:/u/ibmuser: >ls -T ccc.c - untagged T=off ccc.c I compiled a line line C program with // @ and it did not have any problems. Colin On Mon, 11 Nov 2024 at 19:33, Farley, Peter < 0000031df298a9da-dmarc-requ...@listserv.ua.edu> wrote: > Hi all, > > I am trying to compile and test the CEA sample program from the manual > "MVS Programming: Callable Services for High-Level Languages", > SA23-1377-50, Chapter 12. Using CEA TSO/E address space services, > Programming example. > > I am trying to run this test on a z/OS V2.5 system with relatively current > maintenance applied. > > The suggested compile and link script is listed in the manual as follows: > > /* rexx */ > /* c89/cc/c++ */ > /* dbx needs -g or -Wc,debug */ > /* list\(./\) */ > /* export _C89_STEPS='-1' enable all steps, inc prelinker */ > /* export _C89_TMPS ='-3' prelinker will write composite .p file*/ > 'c89 -oceasamt -v -g -Wc,LP64,SHOW,SO,AGGR,XREF,NOOFF,NOOPT,EXP,LIST\(./\) > SSCOMM,DLL,STA,''LANGLVL(EXTENDED)'',WARN64 > -Wl,LP64,map,xref > ceasampt.c ceasapit.x > ' > 'ls -gatlrE ceasamt.* ceasamt' > > For reasons I cannot get into here, I had to implement that script as a > regular shell script rather than a Rexx script, and I implemented it as > this: > > export STEPLIB=SYS1.SCBCCMP > c89 '-oceasamt -v -g > -Wc,LP64,SHOW,SO,AGGR,XREF,NOOFF,NOOPT,EXP,LIST\(./\),SSCOMM,DLL,STA,''LANGLVL(EXTENDED)'',WARN64 > -Wl,LP64,map,xref' ./ceasampt.c /usr/lib/ceasapit.x > ls -gatlrE ceasamt.* ceasamt > > Note that I have included the SSCOMM compiler option in the option list, > which as I read the manual is SUPPOSED to allow C programs to use the "//" > comment convention from C++. However, the c89 compile step still complains > about "invalid C source characters" despite those characters being present > in a source line FOLLOWING a "//" comment start. > > Example : Lines 85 and 86 of the included file > "/usr/include/ceaxrdef.h"are: > > // @DAA > // Reason Codes // @P8A > > As I understand the syntax rules, those @ characters are a comment and > should be ignored, shouldn't they? > > Below is the full output from executing the c89 shell script that I pasted > above. > > Any help or RTFM you can provide would be appreciated. > > Peter > > Script output in a Unix services shell: > > + export STEPLIB=SYS1.SCBCCMP > + c89 -oceasamt -v -g > -Wc,LP64,SHOW,SO,AGGR,XREF,NOOFF,NOOPT,EXP,LIST\(./\),SSCOMM,DLL,STA,LANGLVL(EXTENDED),WARN64 > -Wl,LP64,map,xref ./ceasampt.c /usr/lib/ceasapit.x > ERROR CBC3191 /usr/include/ceaxrdef.h:85 The character @ is not a valid > C source character. > ERROR CBC3191 /usr/include/ceaxrdef.h:86 The character @ is not a valid > C source character. > ERROR CBC3191 /usr/include/ceaxrdef.h:345 The character # is not a valid > C source character. > ERROR CBC3191 /usr/include/ceaxrdef.h:345 The character @ is not a valid > C source character. > ERROR CBC3191 ./ceasampt.c:539 The character @ is not a valid C source > character. > ERROR CBC3191 ./ceasampt.c:742 The character @ is not a valid C source > character. > ERROR CBC3046 /usr/include/ceaytsor.h:95 Syntax error. > CBC1793(I) Compilation failed for file ./ceasampt.c. Object file not > created. > FSUM3065 The COMPILE step ended with return code 12. > FSUM3017 Could not compile ./ceasampt.c. Correct the errors and try again. > + ls -gatlrE ceasamt.* ceasamt > ls: FSUM6785 File or directory "ceasamt.*" is not found > ls: FSUM6785 File or directory "ceasamt" is not found > -- > > > 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