=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Kan/extern.h,v retrieving revision 1.21 retrieving revision 1.28 diff -u -p -r1.21 -r1.28 --- OpenXM/src/kan96xx/Kan/extern.h 2004/08/31 05:30:20 1.21 +++ OpenXM/src/kan96xx/Kan/extern.h 2004/09/13 11:24:11 1.28 @@ -1,4 +1,4 @@ -/* $OpenXM: OpenXM/src/kan96xx/Kan/extern.h,v 1.20 2004/08/31 04:45:42 takayama Exp $ */ +/* $OpenXM: OpenXM/src/kan96xx/Kan/extern.h,v 1.27 2004/09/12 10:22:50 takayama Exp $ */ /*********** global variables for module stackmachine***************/ extern int VerboseStack; extern int DebugStack; @@ -72,6 +72,7 @@ int isLiteral(char *str); void lockCtrlCForOx(); void unlockCtrlCForOx(); void restoreCtrlCForOx(); +int executeExecutableArray(struct object ob,char *fname,int withGotoP); /* stackmachine.c export */ int KSdefineMacros(void); @@ -90,6 +91,12 @@ void KsetContext(struct object contextobj); void contextControl(actionOfContextControl ctl); struct object getSuperContext(struct object contextObj) ; +/* stackmachine.c back-trace */ +void tracePushName(char *s); +void traceClearStack(void); +char *tracePopName(void); +char *traceShowStack(void); + /* kclass.c */ int initClassDataBase(); void fprintClass(FILE *fp,struct object ob); @@ -122,6 +129,12 @@ struct object *cdr(struct object *list); void printObjectList(struct object *op); int memberQ(struct object *list1,struct object list2); +struct object KvJoin(struct object listo1,struct object listo2); +struct object Kcar(struct object listo); +struct object Kcdr(struct object listo); +struct object KlistToArray(struct object listo); +struct object KarrayToList(struct object ob); + /* list:conversion */ struct object listToArray(struct object *op); struct object *arrayToList(struct object ob); @@ -209,8 +222,9 @@ struct object Khead(struct object ob); int KpolyLength(POLY f); struct object KsetOutputOrder(struct object obj,struct ring *rp); struct object KsetVariableNames(struct object obj,struct ring *rp); +/* KgetRingInfo has not yet been implemented. */ +struct object KgetRingInfo(struct object ringObj, struct object ofunc); - /* :eval */ struct object Keval(struct object obj); @@ -225,6 +239,9 @@ struct object test(struct object ob); struct object Kextension(struct object ob); struct object KgbExtension(struct object ob); struct object KmpzExtension(struct object ob); +struct object Krest(struct object ob); +struct object Kjoin(struct object ob1, struct object ob2); +struct object Kget(struct object ob1, struct object ob2); /** Utilities */ char *KremoveSpace(char *s);