=================================================================== RCS file: /home/cvs/OpenXM/src/k097/d.c,v retrieving revision 1.17 retrieving revision 1.21 diff -u -p -r1.17 -r1.21 --- OpenXM/src/k097/d.c 2006/05/06 09:40:26 1.17 +++ OpenXM/src/k097/d.c 2020/10/07 23:53:25 1.21 @@ -1,9 +1,10 @@ -/* $OpenXM: OpenXM/src/k097/d.c,v 1.16 2005/06/16 05:07:24 takayama Exp $ */ +/* $OpenXM: OpenXM/src/k097/d.c,v 1.20 2018/11/02 01:33:26 takayama Exp $ */ /* simple.c, 1996, 1/1 --- 1/5 */ #include #include #include #include +#include #include #include #include "d.h" @@ -49,7 +50,7 @@ int Interactive = 1; static int isThereStdin(); #define MARK_CHAR 3 -main2(int argc, char *argv[]) { +void main2(int argc, char *argv[]) { FILE *f; FILE *outf; char name[1024]; @@ -79,7 +80,7 @@ main2(int argc, char *argv[]) { } } -repl(FILE *inFile,FILE *outFile) { +void repl(FILE *inFile,FILE *outFile) { int c; int t; Inop = newObject_d(); @@ -160,7 +161,7 @@ repl(FILE *inFile,FILE *outFile) { case INCREMENT: printf("\nKClex returns --- ++."); break; case DECREMENT: printf("\nKClex returns --- --."); break; case MEMBER: printf("\nKClex returns --- ->."); break; - case RESIDUEPUT: printf("\nKClex returns --- %=."); break; + case RESIDUEPUT: printf("\nKClex returns --- %%=."); break; case NEGATEPUT: printf("\nKClex returns --- ^=."); break; case MULTPUT: printf("\nKClex returns --- *=."); break; @@ -595,7 +596,7 @@ int KClex() { } -KCerror(char *s) /* You need this function. Otherwise, you get core. */ +int KCerror(char *s) /* You need this function. Otherwise, you get core. */ { K00recoverFromError(); fprintf(stderr,"\nSyntax Error in the line %d:%s\n",Linenumber,s); @@ -605,23 +606,23 @@ KCerror(char *s) /* You need this function. Otherwis ungetc(MARK_CHAR,stdin); while (fsgetc(Inop) > MARK_CHAR) ; } - return ; + return 0; LONGJMP(KCenvOfParser,2); exit(1); } -readcomment() { +int readcomment() { int c; while (1) { c = fsgetc(Inop); if (c == EOF) { fprintf(stderr,"%d: Unexpected end of file in a comment.\n",Linenumber); fsungetc(c,Inop); /* should change */ - return; + return 0; } if (c == '*') { c = fsgetc(Inop); - if (c == '/') return; + if (c == '/') return 0; } } } @@ -674,7 +675,7 @@ char *readstring() { } -readchar() { +int readchar() { int c; if (Replace) putchar0('\''); c = fsgetc(Inop); /* 'c.' '\.c' */ @@ -702,20 +703,20 @@ readchar() { return(c); } -putchar0(c) +void putchar0(c) int c; { if (c > 0) fputc(c,outfile); } -printf0(s) +void printf0(s) char *s; { int i = 0; while (s[i] != '\0') putchar0(s[i++]); } -printf1(s) +void printf1(s) char *s; { int i = 0; @@ -723,7 +724,7 @@ char *s; while (s[i] != '\0') putchar0(s[i++]); } -isReserved(s) +int isReserved(s) char *s; { char *r[] = {"auto","break","case","char","const","continue", @@ -760,7 +761,7 @@ char *s; } -shouldReplace(s) +int shouldReplace(s) char *s; { char *r[] = {"dummy"}; @@ -1021,7 +1022,7 @@ objectp checkIfTheFileExists(objectp op) { } } } - close(fp); + fclose(fp); op = newObject_d(); op->tag = Sstring; s = (char *)GC_malloc(sizeof(char)*(strlen(fname)+1)); @@ -1089,7 +1090,10 @@ void loadFileWithCpp(objectp op) } /* printf("%s\n",outfile); */ if ((char *)strstr(cpp,"/asir/bin/cpp.exe") == NULL) { -#if defined(__APPLE_CC__) +#if defined(__clang__) || defined(__FreeBSD__) +/* cpp of the FreeBSD is the cpp of the clang, but gcc is selected by configure. + echo | gcc -dM -E - +*/ sprintf(tmpName,"cpp -E -P %s | sed -e 's/^#.*//g' >%s",sfile,outfile); #else argv[0] = cpp; @@ -1106,7 +1110,7 @@ void loadFileWithCpp(objectp op) argv[3] = cygwinPathToWinPath(outfile); argv[4] = NULL; } -#if defined(__APPLE_CC__) +#if defined(__clang__) || defined(__FreeBSD__) system(tmpName); #else n=oxForkExecBlocked(argv); @@ -1134,7 +1138,7 @@ void showStringBuff(objectp op) if (K00_verbose) { fprintf(stderr,"stringBuff ptr = %d, ",ptr); fprintf(stderr,"sb[ptr] = %x,%d",(sb->str)[ptr],(sb->str)[ptr]); - fprintf(stderr,"Saki(yomi) = %x \n",Saki,Saki); + fprintf(stderr,"Saki(yomi) = %x,%d \n",Saki,Saki); } if (ptr == 0 && Saki == -1) { fprintf(stderr," ; was expected.\n");