=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Kan/scanner.c,v retrieving revision 1.4 retrieving revision 1.8 diff -u -p -r1.4 -r1.8 --- OpenXM/src/kan96xx/Kan/scanner.c 2001/05/04 01:06:25 1.4 +++ OpenXM/src/kan96xx/Kan/scanner.c 2005/07/03 11:08:54 1.8 @@ -1,10 +1,12 @@ -/*$OpenXM: OpenXM/src/kan96xx/Kan/scanner.c,v 1.3 2000/03/20 01:53:46 takayama Exp $*/ +/*$OpenXM: OpenXM/src/kan96xx/Kan/scanner.c,v 1.7 2004/09/12 00:26:21 takayama Exp $*/ /* scanner.c (SM StackMachine) */ /* export: struct tokens getokenSM(actionType kind,char *str); scanner.c is used to get tokens from streams. files: none */ #include +#include +#include #include "datatype.h" #include "stackm.h" struct tokens lookupTokens(struct tokens t); @@ -105,6 +107,15 @@ static int getSM() /* get a letter from StringSM */ { int c; + + if ((StrpSM > 0) && (StringSM[StrpSM] == ',') && (StringSM[StrpSM-1] == ',')) { int i; + fprintf(stderr,"Warning: ,, is found."); + for (i=(StrpSM-30>0?StrpSM-30:0); i<=StrpSM; i++) { + fprintf(stderr,"%c",StringSM[i]); + } + fprintf(stderr,"\n"); + } + c = StringSM[StrpSM++]; if (c == '\0') { StrpSM--;return(EOF); @@ -146,6 +157,7 @@ static struct tokens flushSM() strcpy(token,BufSM); r.token = token; r.kind = TypeSM; + r.tflag = 0; if (r.kind == ID) { if (isLiteral(r.token)) { r.object = lookupLiteralString(r.token); @@ -159,7 +171,7 @@ static struct tokens flushSM() static isSpaceSM(c) int c; { - if ((c <= ' ') && (c!= EOF)) return(1); + if (((c <= ' ') || c == ',') && (c!= EOF)) return(1); else return(0); } @@ -392,7 +404,7 @@ main() { char *getLOAD_SM1_PATH() { char *p; char *p2; - char *getenv(char *s); + char *getenv(const char *s); p = getenv("LOAD_SM1_PATH"); if (p == NULL) { p = getenv("OpenXM_HOME");