=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Kan/extern.h,v retrieving revision 1.30 retrieving revision 1.36 diff -u -p -r1.30 -r1.36 --- OpenXM/src/kan96xx/Kan/extern.h 2004/09/23 12:20:52 1.30 +++ OpenXM/src/kan96xx/Kan/extern.h 2020/10/06 11:33:46 1.36 @@ -1,4 +1,4 @@ -/* $OpenXM: OpenXM/src/kan96xx/Kan/extern.h,v 1.29 2004/09/20 02:11:22 takayama Exp $ */ +/* $OpenXM: OpenXM/src/kan96xx/Kan/extern.h,v 1.35 2006/02/01 00:30:05 takayama Exp $ */ /*********** global variables for module stackmachine***************/ extern int VerboseStack; extern int DebugStack; @@ -19,8 +19,8 @@ struct tokens *decomposeToTokens(char *str,int *size); struct tokens getokenSM(); struct tokens *decomposeToTokens(); char *getLOAD_SM1_PATH(); +char *traceShowScannerBuf(); - /* stackmachine.c object */ struct object *newObject(void); struct object newObjectArray(int size); @@ -82,6 +82,7 @@ char * KSstringPop(void); int KSstackPointer(void); struct object KSdupErrors(void); struct object KSpeek(int k); +struct object KSnewObjectArray(int k); /* stackmachine.c context */ struct context *newContext0(struct context *super,char *name); @@ -96,9 +97,10 @@ void tracePushName(char *s); void traceClearStack(void); char *tracePopName(void); char *traceShowStack(void); +struct object *traceNameStackToArrayp(void); /* kclass.c */ -int initClassDataBase(); +void initClassDataBase(); void fprintClass(FILE *fp,struct object ob); int KclassEqualQ(struct object ob1,struct object ob2); struct object KcreateClassIncetance(struct object ob1, @@ -236,6 +238,7 @@ struct object Keval(struct object obj); /** misc **/ struct object KtoRecords(struct object ob1); struct object KstringToArgv(struct object ob1); +struct object KstringToArgv2(struct object ob1,struct object ob2); void Kclose(void); int warningKan(char *s); int warningKanNoStrictMode(char *s); @@ -252,7 +255,15 @@ struct object Kget(struct object ob1, struct object ob char *KremoveSpace(char *s); int KtoArgvbyCurryBrace(char *str,char *argv[],int limit); +/** Attribute */ +struct object KgetAttributeList(struct object ob); +struct object KsetAttributeList(struct object ob,struct object attr); +struct object KgetAttribute(struct object ob,struct object key); +struct object KsetAttribute(struct object ob,struct object key,struct object value); +/* ob (key) (value) setAttribute /ob set. They are not destructive. */ + + /** kanExport1.c */ /* :ring :kan */ struct object Kreduction(struct object f,struct object set); @@ -307,3 +318,13 @@ int objToInteger(struct object ob); struct object KoxWhich(struct object cmdo,struct object patho); struct object KoxShell(struct object ob); void KoxShellHelp(char *key,FILE *fp); + +/* ---- */ +void KinitKan(void); +int stackmachine_close(void); +void stackmachine_init(void); +int memberQ(struct object *list1,struct object obj2); +int warningStackmachine(char *str); +void errorStackmachine(char *str); +int putPrimitiveFunction(char *str,int number); +