=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Kan/scanner2.c,v retrieving revision 1.3 retrieving revision 1.7 diff -u -p -r1.3 -r1.7 --- OpenXM/src/kan96xx/Kan/scanner2.c 2001/05/04 01:06:25 1.3 +++ OpenXM/src/kan96xx/Kan/scanner2.c 2005/01/23 02:41:17 1.7 @@ -1,4 +1,4 @@ -/* $OpenXM: OpenXM/src/kan96xx/Kan/scanner2.c,v 1.2 2000/01/16 07:55:41 takayama Exp $ */ +/* $OpenXM: OpenXM/src/kan96xx/Kan/scanner2.c,v 1.6 2004/09/12 00:26:21 takayama Exp $ */ /* scanner2.c (SM StackMachine) */ /* export: struct tokens decompostToTokens(char *str,int *sizep); scanner2.c is for getting tokens from a string. @@ -97,7 +97,16 @@ static int getSM() /* get a letter from StringSM */ { int c; - c = StringSM[StrpSM++]; + + 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 = (unsigned char) StringSM[StrpSM++]; if (c == '\0') { StrpSM--;return(EOF); } else return(c); @@ -138,6 +147,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); @@ -151,7 +161,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); }