00001 #include <string.h>
00002 #include "stack-c.h"
00003 #include "machine.h"
00004 #include "str2sci.h"
00005
00006 void str2sci(char** x,int n,int m)
00007 {
00008
00009 int l=0,il=0,zero=0,err,n1,i,m1=0;
00010
00011 if (Top >= Bot) {
00012 i=18;
00013 C2F(error)(&i);
00014 } else {
00015 Top = Top + 1;
00016 il = iadr(*Lstk(Top));
00017 l = sadr(il+6);
00018 }
00019
00020 err = l + n*m - *Lstk(Bot);
00021 if (err > 0) {
00022 i=17;
00023 C2F(error)(&i);
00024 return;
00025 }
00026 *istk(il) = 10;
00027 *istk(il+1) = n;
00028 *istk(il+2) = m;
00029 *istk(il+3) = 0;
00030 *istk(il+4) = 1;
00031 for (i = 1; i <= n*m; i++){
00032 n1=strlen(x[i-1]);
00033 *istk(il+4+i) = *istk(il+4+i-1)+n1;
00034 if (n1 > 0)
00035 C2F(cvstr)(&n1,istk(il+m*n+5 -1 + *istk(il+3+i)),x[i-1],&zero,(unsigned long) n1);
00036 m1=m1+n1;
00037 }
00038 *Lstk(Top+1) = l + m1;
00039
00040 }
00041