version 1.8, 2001/12/19 23:39:53 |
version 1.9, 2002/02/24 10:27:18 |
|
|
/* $OpenXM: OpenXM/src/kan96xx/Kan/stackmachine.c,v 1.7 2001/05/04 01:06:25 takayama Exp $ */ |
/* $OpenXM: OpenXM/src/kan96xx/Kan/stackmachine.c,v 1.8 2001/12/19 23:39:53 takayama Exp $ */ |
/* stackmachin.c */ |
/* stackmachin.c */ |
|
|
#include <stdio.h> |
#include <stdio.h> |
Line 736 void scanner() { |
|
Line 736 void scanner() { |
|
getokenSM(INIT); |
getokenSM(INIT); |
initSystemDictionary(); |
initSystemDictionary(); |
|
|
|
#if defined(__CYGWIN__) |
|
if (sigsetjmp(EnvOfStackMachine,1)) { |
|
#else |
if (setjmp(EnvOfStackMachine)) { |
if (setjmp(EnvOfStackMachine)) { |
|
#endif |
/* do nothing in the case of error */ |
/* do nothing in the case of error */ |
fprintf(stderr,"An error or interrupt in reading macros, files and command strings.\n"); |
fprintf(stderr,"An error or interrupt in reading macros, files and command strings.\n"); |
exit(10); |
exit(10); |
Line 796 void scanner() { |
|
Line 800 void scanner() { |
|
|
|
|
|
for (;;) { |
for (;;) { |
|
#if defined(__CYGWIN__) |
|
if (jval=sigsetjmp(EnvOfStackMachine,1)) { |
|
#else |
if (jval=setjmp(EnvOfStackMachine)) { |
if (jval=setjmp(EnvOfStackMachine)) { |
|
#endif |
/* *** The following does not work properly. **** |
/* *** The following does not work properly. **** |
if (jval == 2) { |
if (jval == 2) { |
if (ErrorMessageMode == 1 || ErrorMessageMode == 2) { |
if (ErrorMessageMode == 1 || ErrorMessageMode == 2) { |
|
|
*/ |
*/ |
getokenSM(INIT); /* It might fix the bug above. 1992/11/14 */ |
getokenSM(INIT); /* It might fix the bug above. 1992/11/14 */ |
signal(SIGINT,ctrlC); |
signal(SIGINT,ctrlC); |
|
#if defined(__CYGWIN__) |
|
siglongjmp(EnvOfStackMachine,2); |
|
#else |
longjmp(EnvOfStackMachine,2); /* returns 2 for ctrl-C */ |
longjmp(EnvOfStackMachine,2); /* returns 2 for ctrl-C */ |
|
#endif |
} |
} |
|
|
int executeToken(token) |
int executeToken(token) |
Line 1083 KSexecuteString(s) |
|
Line 1095 KSexecuteString(s) |
|
|
|
if (KSPushEnvMode) { |
if (KSPushEnvMode) { |
*saved_EnvOfStackMachine = *EnvOfStackMachine; |
*saved_EnvOfStackMachine = *EnvOfStackMachine; |
|
#if defined(__CYGWIN__) |
|
if (jval = sigsetjmp(EnvOfStackMachine,1)) { |
|
#else |
if (jval = setjmp(EnvOfStackMachine)) { |
if (jval = setjmp(EnvOfStackMachine)) { |
|
#endif |
*EnvOfStackMachine = *saved_EnvOfStackMachine; |
*EnvOfStackMachine = *saved_EnvOfStackMachine; |
if (jval == 2) { |
if (jval == 2) { |
if (ErrorMessageMode == 1 || ErrorMessageMode == 2) { |
if (ErrorMessageMode == 1 || ErrorMessageMode == 2) { |
Line 1096 KSexecuteString(s) |
|
Line 1112 KSexecuteString(s) |
|
}else{ } |
}else{ } |
}else{ |
}else{ |
if (recursive == 0) { |
if (recursive == 0) { |
|
#if defined(__CYGWIN__) |
|
if (jval=sigsetjmp(EnvOfStackMachine,1)) { |
|
#else |
if (jval=setjmp(EnvOfStackMachine)) { |
if (jval=setjmp(EnvOfStackMachine)) { |
|
#endif |
if (jval == 2) { |
if (jval == 2) { |
if (ErrorMessageMode == 1 || ErrorMessageMode == 2) { |
if (ErrorMessageMode == 1 || ErrorMessageMode == 2) { |
pushErrorStack(KnewErrorPacket(SerialCurrent,-1,"User interrupt by ctrl-C.")); |
pushErrorStack(KnewErrorPacket(SerialCurrent,-1,"User interrupt by ctrl-C.")); |