intconnection.c

Go to the documentation of this file.
00001 
00002 #include <string.h>
00003 #include "stack-c.h"
00004 #include "machine.h"
00005 
00006 
00007 int connection(int* path_out,int* path_in);
00008 int badconnection(int* path_out,int prt_out,int nout,int* path_in,int prt_in,int nin);
00009 int Message(char* code);
00010 
00011 
00012 int connection(int* path_out,int* path_in) 
00013 {
00014   int mlhs,mrhs,ibegin,i;
00015   static int l1, m1, n1, m2, n2, l2, il, l, l5,ninnout;
00016   static char name[] = "under_connection" ;
00017   
00018   m1=path_out[0];
00019   n1=n2=1;
00020   m2=path_in[0];
00021   
00022   CreateVar(1, "i", &n1, &m1, &l1);  
00023   for (i=1; i<=m1; i++)
00024     *istk(l1+i-1)=path_out[i];
00025   CreateVar(2, "i", &n2, &m2, &l2);
00026   for (i=1; i<=m2; i++)
00027     *istk(l2+i-1)=path_in[i];
00028   
00029   Convert2Sci(1);
00030   Convert2Sci(2);
00031   
00032   ibegin=1;  mlhs=1; mrhs=2 ;  
00033   SciString(&ibegin,name,&mlhs,&mrhs);
00034   l5=Top - Rhs + ibegin;
00035   il=iadr(*Lstk(l5));
00036   l=sadr(il+4);
00037   ninnout=(int) *stk(l);  
00038   return ninnout;
00039 }
00040 int badconnection(int* path_out,int prt_out, int nout,int* path_in,int prt_in,int nin) 
00041 {
00042   int mlhs,mrhs,ibegin,i;
00043   static int l1, m1, n1, m2, l2, l3, l4, l6, l5;
00044   static char name[] = "bad_connection" ;
00045   
00046   m1=path_out[0];
00047   n1=1;
00048   m2=path_in[0];
00049   
00050   CreateVar(1, "i", &n1, &m1, &l1);  
00051   for (i=1; i<=m1; i++)
00052     *istk(l1+i-1)=path_out[i];
00053   CreateVar(2, "i", &n1, &n1, &l2);
00054   *istk(l2)=prt_out;
00055   CreateVar(3, "i", &n1, &n1, &l3);
00056   *istk(l3)=nout;
00057   CreateVar(4, "i", &n1, &m2, &l4);
00058   for (i=1; i<=m2; i++)
00059     *istk(l4+i-1)=path_in[i];
00060   CreateVar(5, "i", &n1, &n1, &l5);
00061   *istk(l5)=prt_in;
00062   CreateVar(6, "i", &n1, &n1, &l6);
00063   *istk(l6)=nin;
00064   
00065   Convert2Sci(1);
00066   Convert2Sci(2);
00067   Convert2Sci(3);
00068   Convert2Sci(4);
00069   Convert2Sci(5);
00070   Convert2Sci(6);
00071 
00072   ibegin=1;  mlhs=0; mrhs=6 ;  
00073   SciString(&ibegin,name,&mlhs,&mrhs);
00074   
00075   return 0;
00076 }
00077 
00078 int Message(char* code) 
00079 {
00080   int mlhs=0,mrhs=1,ibegin=1;
00081   int l1, m1=(int)strlen(code), n1=1;
00082   static char name[] = "x_message" ;
00083   CreateVar(1, "c", &m1, &n1, &l1);
00084   strcpy(cstk(l1),code);
00085   Convert2Sci(1);
00086   SciString(&ibegin,name,&mlhs,&mrhs);
00087   return 0;
00088 }
00089 
00090 
00091 
00092 

Generated on Sun Mar 4 15:03:59 2007 for Scilab [trunk] by  doxygen 1.5.1