[BACK]Return to scanner.c CVS log [TXT][DIR] Up to [local] / OpenXM / src / kan96xx / Kan

Diff for /OpenXM/src/kan96xx/Kan/scanner.c between version 1.4 and 1.8

version 1.4, 2001/05/04 01:06:25 version 1.8, 2005/07/03 11:08:54
Line 1 
Line 1 
 /*$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) */  /*  scanner.c (SM StackMachine) */
 /* export: struct tokens getokenSM(actionType kind,char *str);  /* export: struct tokens getokenSM(actionType kind,char *str);
    scanner.c is used to get tokens from streams.     scanner.c is used to get tokens from streams.
    files: none     files: none
 */  */
 #include <stdio.h>  #include <stdio.h>
   #include <stdlib.h>
   #include <string.h>
 #include "datatype.h"  #include "datatype.h"
 #include "stackm.h"  #include "stackm.h"
 struct tokens lookupTokens(struct tokens t);  struct tokens lookupTokens(struct tokens t);
Line 105  static int getSM()
Line 107  static int getSM()
      /* get a letter from StringSM */       /* get a letter from StringSM */
 {  {
   int c;    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++];    c = StringSM[StrpSM++];
   if (c == '\0') {    if (c == '\0') {
     StrpSM--;return(EOF);      StrpSM--;return(EOF);
Line 146  static struct tokens flushSM()
Line 157  static struct tokens flushSM()
   strcpy(token,BufSM);    strcpy(token,BufSM);
   r.token = token;    r.token = token;
   r.kind = TypeSM;    r.kind = TypeSM;
     r.tflag = 0;
   if (r.kind == ID) {    if (r.kind == ID) {
     if (isLiteral(r.token)) {      if (isLiteral(r.token)) {
       r.object = lookupLiteralString(r.token);        r.object = lookupLiteralString(r.token);
Line 159  static struct tokens flushSM()
Line 171  static struct tokens flushSM()
 static isSpaceSM(c)  static isSpaceSM(c)
      int c;       int c;
 {  {
   if ((c <= ' ') && (c!= EOF)) return(1);    if (((c <= ' ') || c == ',') && (c!= EOF)) return(1);
   else return(0);    else return(0);
 }  }
   
Line 392  main() {
Line 404  main() {
 char *getLOAD_SM1_PATH() {  char *getLOAD_SM1_PATH() {
   char *p;    char *p;
   char *p2;    char *p2;
   char *getenv(char *s);    char *getenv(const char *s);
   p = getenv("LOAD_SM1_PATH");    p = getenv("LOAD_SM1_PATH");
   if (p == NULL) {    if (p == NULL) {
     p = getenv("OpenXM_HOME");      p = getenv("OpenXM_HOME");

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.8

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>