/* $OpenXM: OpenXM/src/kan96xx/plugin/asir.hh,v 1.2 2000/01/16 07:55:46 takayama Exp $ */ else if (strcmp(key,"Asir_ExecuteString") == 0) { if (size != 2) errorKan1("%s\n","[(Asir_ExecuteString) string] extension result."); obj1 = getoa(obj,1); if (obj1.tag != Sdollar) errorKan1("%s\n","[(Asir_ExecuteString) string] extension result"); rob = KpoInteger(Asir_ExecuteString(obj1.lc.str)); } else if (strcmp(key,"Asir_PopString") == 0) { if (size != 1) errorKan1("%s\n","[(Asir_PopString)] extension result."); rob = KpoString(Asir_PopString()); } else if (strcmp(key,"Asir_Start") == 0) { if (size != 1) errorKan1("%s\n","[(Asir_Start)] extension result."); rob = KpoInteger(Asir_Start()); } else if (strcmp(key,"Asir_to_kan") == 0) { if (size != 2) errorKan1("%s\n","[(Asir_to_kan) string] extension result."); obj1 = getoa(obj,1); if (obj1.tag != Sdollar) errorKan1("%s\n","[(Asir_to_kan) string] extension result"); rob = KpoString(KasirKanConvert(obj1.lc.str)); } else if (strcmp(key,"Asir_Set") == 0) { if (size != 2) errorKan1("%s\n","[(Asir_Set) string] extension result."); obj1 = getoa(obj,1); if (obj1.tag != Sdollar) errorKan1("%s\n","[(Asir_Set) string] extension result"); rob = KpoInteger(Asir_Set(obj1.lc.str)); } else if (strcmp(key,"Asir_PushBinary") == 0) { if (size != 2) errorKan1("%s\n","[(Asir_PushCmo) cmo-obj] extension result."); obj1 = getoa(obj,1); if (obj1.tag != CMO) { errorKan1("%s\n","Argument must be cmo-object."); } rob=KpoInteger(Asir_PushBinary(((struct cmoBuffer *)(obj1.lc.voidp))->size, (((struct cmoBuffer *)(obj1.lc.voidp))->buf))); } else if (strcmp(key,"Asir_PopBinary") == 0) { if (size != 1) errorKan1("%s\n","[(Asir_PopCmo)] extension cmo-obj."); rob.tag =CMO; rob.lc.voidp = GC_malloc(sizeof(struct cmoBuffer)); if (rob.lc.voidp == NULL) { fprintf(stderr,"No more memory."); } ((struct cmoBuffer *)(rob.lc.voidp))->buf = Asir_PopBinary(&size); ((struct cmoBuffer *)(rob.lc.voidp))->size = size; ((struct cmoBuffer *)(rob.lc.voidp))->pos = size; ((struct cmoBuffer *)(rob.lc.voidp))->rpos = 0; }