version 1.11, 2003/07/22 03:25:55 |
version 1.20, 2018/11/02 01:33:26 |
|
|
/* $OpenXM: OpenXM/src/k097/d.c,v 1.10 2003/07/21 12:41:22 takayama Exp $ */ |
/* $OpenXM: OpenXM/src/k097/d.c,v 1.19 2016/04/02 08:20:09 ohara Exp $ */ |
/* simple.c, 1996, 1/1 --- 1/5 */ |
/* simple.c, 1996, 1/1 --- 1/5 */ |
#include <stdio.h> |
#include <stdio.h> |
#include <ctype.h> |
#include <ctype.h> |
Line 181 objectp newObject_d() { |
|
Line 181 objectp newObject_d() { |
|
fprintf(stderr,"Error: No more memory in newObject_d().\n"); |
fprintf(stderr,"Error: No more memory in newObject_d().\n"); |
exit(10); |
exit(10); |
} |
} |
obj->tag = Snull; |
obj->tag = Snull; obj->attr = NULL; |
return(obj); |
return(obj); |
} |
} |
|
|
Line 605 KCerror(char *s) /* You need this function. Otherwis |
|
Line 605 KCerror(char *s) /* You need this function. Otherwis |
|
ungetc(MARK_CHAR,stdin); |
ungetc(MARK_CHAR,stdin); |
while (fsgetc(Inop) > MARK_CHAR) ; |
while (fsgetc(Inop) > MARK_CHAR) ; |
} |
} |
return ; |
return 0; |
LONGJMP(KCenvOfParser,2); |
LONGJMP(KCenvOfParser,2); |
exit(1); |
exit(1); |
} |
} |
|
|
if (c == EOF) { |
if (c == EOF) { |
fprintf(stderr,"%d: Unexpected end of file in a comment.\n",Linenumber); |
fprintf(stderr,"%d: Unexpected end of file in a comment.\n",Linenumber); |
fsungetc(c,Inop); /* should change */ |
fsungetc(c,Inop); /* should change */ |
return; |
return 0; |
} |
} |
if (c == '*') { |
if (c == '*') { |
c = fsgetc(Inop); |
c = fsgetc(Inop); |
if (c == '/') return; |
if (c == '/') return 0; |
} |
} |
} |
} |
} |
} |
Line 1078 void loadFileWithCpp(objectp op) |
|
Line 1078 void loadFileWithCpp(objectp op) |
|
Removed old codes. */ |
Removed old codes. */ |
|
|
sfile = op->lc.str; |
sfile = op->lc.str; |
if (getFileSize(sfile) < 0) { |
|
fprintf(stderr,"The source file is not found.\n"); return; |
|
} |
|
cpp = getCppPath(); |
cpp = getCppPath(); |
if (cpp == NULL) { |
if (cpp == NULL) { |
fprintf(stderr,"cpp is not found.\n"); return; |
fprintf(stderr,"cpp is not found.\n"); return; |
Line 1092 void loadFileWithCpp(objectp op) |
|
Line 1089 void loadFileWithCpp(objectp op) |
|
} |
} |
/* printf("%s\n",outfile); */ |
/* printf("%s\n",outfile); */ |
if ((char *)strstr(cpp,"/asir/bin/cpp.exe") == NULL) { |
if ((char *)strstr(cpp,"/asir/bin/cpp.exe") == NULL) { |
|
#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; |
argv[0] = cpp; |
argv[1] = "-P"; |
argv[1] = "-P"; |
argv[2] = "-lang-c++"; |
argv[2] = "-lang-c++"; |
argv[3] = sfile; |
argv[3] = sfile; |
argv[4] = outfile; |
argv[4] = outfile; |
argv[5] = NULL; |
argv[5] = NULL; |
|
#endif |
}else{ |
}else{ |
argv[0] = cpp; |
argv[0] = cpp; |
argv[1] = cygwinPathToWinPath(sfile); |
argv[1] = "-P"; |
argv[2] = cygwinPathToWinPath(outfile); |
argv[2] = cygwinPathToWinPath(sfile); |
argv[3] = NULL; |
argv[3] = cygwinPathToWinPath(outfile); |
|
argv[4] = NULL; |
} |
} |
|
#if defined(__clang__) || defined(__FreeBSD__) |
|
system(tmpName); |
|
#else |
n=oxForkExecBlocked(argv); |
n=oxForkExecBlocked(argv); |
|
#endif |
|
|
ob = newObject_d(); |
ob = newObject_d(); |
ob->tag = Sstring; |
ob->tag = Sstring; |