[BACK]Return to d.c CVS log [TXT][DIR] Up to [local] / OpenXM / src / k097

Diff for /OpenXM/src/k097/d.c between version 1.6 and 1.8

version 1.6, 2000/12/10 02:21:45 version 1.8, 2002/02/24 10:27:21
Line 1 
Line 1 
 /* $OpenXM: OpenXM/src/k097/d.c,v 1.5 2000/05/04 11:05:19 takayama Exp $ */  /* $OpenXM: OpenXM/src/k097/d.c,v 1.7 2001/01/08 05:26:48 takayama 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 7 
Line 7 
 #include "d.h"  #include "d.h"
 #include "simple.tab.h"  #include "simple.tab.h"
   
   #if defined(__CYGWIN__)
   #define JMP_BUF sigjmp_buf
   #define SETJMP(env)  sigsetjmp(env,1)
   #define LONGJMP(env,p)  siglongjmp(env,p)
   #else
   #define JMP_BUF jmp_buf
   #define SETJMP(env)  setjmp(env)
   #define LONGJMP(env,p)  longjmp(env,p)
   #endif
   
 jmp_buf KCenvOfParser;  JMP_BUF KCenvOfParser;
   
 int DebugMode = 1;  int DebugMode = 1;
 extern int K00_verbose;  extern int K00_verbose;
Line 34  int Debug2 = 0;
Line 43  int Debug2 = 0;
   
 int Interactive = 1;  int Interactive = 1;
   
   static int isThereStdin();
   #define MARK_CHAR  3
   
 main2(int argc, char *argv[]) {  main2(int argc, char *argv[]) {
   FILE *f;    FILE *f;
   FILE *outf;    FILE *outf;
Line 584  KCerror(char *s)   /* You need this function. Otherwis
Line 596  KCerror(char *s)   /* You need this function. Otherwis
 {  {
   K00recoverFromError();    K00recoverFromError();
   fprintf(stderr,"\nSyntax Error in the line %d:%s\n",Linenumber,s);    fprintf(stderr,"\nSyntax Error in the line %d:%s\n",Linenumber,s);
   showStringBuff(Inop); return ;    showStringBuff(Inop);
   longjmp(KCenvOfParser,2);    /* Clean the junks. Try load("debug/buggy.k"); */
     if (isThereStdin()) {
           ungetc(MARK_CHAR,stdin);
           while (fsgetc(Inop) > MARK_CHAR) ;
     }
     return ;
     LONGJMP(KCenvOfParser,2);
   exit(1);    exit(1);
 }  }
   
Line 875  static int popFile() {
Line 893  static int popFile() {
   /* Saki = SakiStack[Stackp]; */    /* Saki = SakiStack[Stackp]; */
   Saki = '\n';    Saki = '\n';
   return(Saki);    return(Saki);
   }
   
   static int isThereStdin() {
     if (Stackp > 1 && (InopStack[1])->tag == Sfile
             && (InopStack[1])->lc.file == stdin) {
           return(1);
     }else{
           return(0);
     }
 }  }
   
 int fsgetc(objectp op) {  int fsgetc(objectp op) {

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

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