version 1.4, 2002/02/24 10:27:21 |
version 1.7, 2005/06/16 05:07:24 |
|
|
/* $OpenXM: OpenXM/src/k097/ki.c,v 1.3 2001/01/28 02:40:04 takayama Exp $ */ |
/* $OpenXM: OpenXM/src/k097/ki.c,v 1.6 2003/12/05 14:02:23 takayama Exp $ */ |
/* ki.c ( kx interpreter ) */ |
/* ki.c ( kx interpreter ) */ |
|
|
#include <stdio.h> |
#include <stdio.h> |
Line 42 extern int DebugMode; |
|
Line 42 extern int DebugMode; |
|
sendKan(int p) { |
sendKan(int p) { |
static int n = 2; |
static int n = 2; |
extern int Interactive; |
extern int Interactive; |
struct object obj; |
struct object obj = OINIT; |
int result; |
int result; |
|
extern int InSendmsg2; |
signal(SIGINT,SIG_IGN); /* Don't jump to ctrlC(). */ |
signal(SIGINT,SIG_IGN); /* Don't jump to ctrlC(). */ |
if (p == 10) {printf("In(%d)= ",n++); return;} |
if (p == 10) {printf("In(%d)= ",n++); return;} |
if (p == 0 && DebugCompiler) printf("sendKan[%s]\n",Kbuff); |
if (p == 0 && DebugCompiler) printf("sendKan[%s]\n",Kbuff); |
|
|
} |
} |
/* fprintf(stderr,"r=%d ",result); */ |
/* fprintf(stderr,"r=%d ",result); */ |
if (result == -1) { |
if (result == -1) { |
K00recoverFromError(); |
K00recoverFromError(); InSendmsg2 = 0; |
fprintf(stderr,"--- Engine error or interrupt : "); |
fprintf(stderr,"--- Engine error or interrupt : "); |
if (DebugMode) { |
if (DebugMode) { |
signal(SIGINT,SIG_DFL); |
signal(SIGINT,SIG_DFL); |
|
|
#define AFO |
#define AFO |
#ifdef AFO |
#ifdef AFO |
if (SETJMP(KCenvOfParser)) { |
if (SETJMP(KCenvOfParser)) { |
|
InSendmsg2=0; |
fprintf(stderr,"Error: Goto the top level.\n"); |
fprintf(stderr,"Error: Goto the top level.\n"); |
parseAfile(stdin); |
parseAfile(stdin); |
KCparse(); |
KCparse(); |
|
|
if (strlen(s)+Kpt >= Ksize) { |
if (strlen(s)+Kpt >= Ksize) { |
Ksize = Ksize*2; |
Ksize = Ksize*2; |
t = (char *)GC_malloc(sizeof(char)*Ksize); |
t = (char *)GC_malloc(sizeof(char)*Ksize); |
if (t == (char *)NULL) { fprintf(stderr,"No memory."); exit();} |
if (t == (char *)NULL) { fprintf(stderr,"No memory."); exit(1);} |
strcpy(t,Kbuff); Kbuff = t; |
strcpy(t,Kbuff); Kbuff = t; |
} |
} |
strcpy(&(Kbuff[Kpt]),s); |
strcpy(&(Kbuff[Kpt]),s); |