| 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; |