[BACK]Return to primitive.c CVS log [TXT][DIR] Up to [local] / OpenXM / src / kan96xx / Kan

Diff for /OpenXM/src/kan96xx/Kan/primitive.c between version 1.9 and 1.12

version 1.9, 2003/12/03 01:21:43 version 1.12, 2004/09/11 01:00:42
Line 1 
Line 1 
 /* $OpenXM: OpenXM/src/kan96xx/Kan/primitive.c,v 1.8 2003/11/20 09:20:36 takayama Exp $ */  /* $OpenXM: OpenXM/src/kan96xx/Kan/primitive.c,v 1.11 2003/12/05 23:14:14 takayama Exp $ */
 /*   primitive.c */  /*   primitive.c */
 /*  The functions in this module were in stackmachine.c */  /*  The functions in this module were in stackmachine.c */
   
Line 14 
Line 14 
   
 int PrintDollar = 1;         /* flag for printObject() */  int PrintDollar = 1;         /* flag for printObject() */
 int PrintComma  = 1;         /* flag for printObject() */  int PrintComma  = 1;         /* flag for printObject() */
   int InSendmsg2 = 0;
 #define OB_ARRAY_MAX   (AGLIMIT+100)  #define OB_ARRAY_MAX   (AGLIMIT+100)
   
 extern int GotoP;  extern int GotoP;
Line 595  int executePrimitive(ob) 
Line 596  int executePrimitive(ob) 
     /* ob2               ob1 get     */      /* ob2               ob1 get     */
     ob1 = Kpop();      ob1 = Kpop();
     ob2 = Kpop();      ob2 = Kpop();
     switch(ob2.tag) {      Kpush(Kget(ob2,ob1));
     case Sarray: break;  
     default: errorStackmachine("Usage:get");  
     }  
     switch(ob1.tag) {  
     case Sinteger: break;  
     default: errorStackmachine("Usage:get");  
     }  
     i =ob1.lc.ival;  
     size = getoaSize(ob2);  
     if ((0 <= i) && (i<size)) {  
       Kpush(getoa(ob2,i));  
     }else{  
       errorStackmachine("Index is out of bound. (get)\n");  
     }  
     break;      break;
   
   case Sput:    case Sput:
Line 1560  int executePrimitive(ob) 
Line 1547  int executePrimitive(ob) 
     size = ob1.rc.ival;      size = ob1.rc.ival;
     for (i=0; i<size; i++) {      for (i=0; i<size; i++) {
       token = tokenArray[i];        token = tokenArray[i];
         InSendmsg2 = 1;
       status = executeToken(token);        status = executeToken(token);
         InSendmsg2 = 0;
       if (QuoteMode && (status==DO_QUOTE)) {        if (QuoteMode && (status==DO_QUOTE)) {
         /* generate tree object, for kan/k0 */          /* generate tree object, for kan/k0 */
         struct object qob;          struct object qob;
Line 1577  int executePrimitive(ob) 
Line 1566  int executePrimitive(ob) 
           putoa(qob,0,KpoString("unknown"));            putoa(qob,0,KpoString("unknown"));
         }          }
         /* Set the attibute list; class=className */          /* Set the attibute list; class=className */
         putoa(qattr2,0,KpoString("class"));  
         if (ob2.tag == Sdollar) {          if (ob2.tag == Sdollar) {
             putoa(qattr2,0,KpoString("cd"));
           putoa(qattr2,1,ob2);            putoa(qattr2,1,ob2);
         }else{          }else{
             putoa(qattr2,0,KpoString("class"));
           putoa(qattr2,1,KpoString(CurrentContextp->contextName));            putoa(qattr2,1,KpoString(CurrentContextp->contextName));
         }          }
         putoa(qattr,0,qattr2);          putoa(qattr,0,qattr2);

Legend:
Removed from v.1.9  
changed lines
  Added in v.1.12

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