home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 10 / 10.iso / l / l455 / 2.ddi / MUTOOLS2.DI$ / INPSTUFF.M < prev    next >
Encoding:
Text File  |  1993-03-11  |  1.8 KB  |  65 lines

  1. % function [numxinp,names,namelen,maxlen] = inpstuff(inputvar);
  2.  
  3. function [numxinp,ndf,inppoint,names,namelen,maxlen,err] = inpstuff(inputvar);
  4.   err = 0;
  5.   startp = 0;
  6.   inppoint = [];
  7.   maxlen = 0;
  8.   names = [];
  9.   tmpln = length(inputvar);
  10.   iloc = find(inputvar ~= ']' & inputvar ~= '[');
  11.   tmp = inputvar(iloc);
  12.   tmp = tmp(find(tmp ~= ' '));
  13.   semic = [0 find(tmp == ';') length(tmp)+1];
  14.   numdiffinp = length(semic) - 1;
  15.   namelen = zeros(numdiffinp,1);
  16.   numxinp = 0;
  17.   for i=1:numdiffinp
  18.     var = tmp(semic(i)+1:semic(i+1)-1);
  19.     lparen = find(var == '(');
  20.     rparen = find(var == ')');
  21.     if length(lparen) > 1 | length(rparen) > 1
  22.       err = 1;
  23.       return
  24.     elseif length(lparen) ~= length(rparen)
  25.       err = 1;
  26.       return
  27.     elseif length(lparen) == 1
  28.       if lparen >= rparen
  29.         err = 1;
  30.         return
  31.       elseif rparen ~= length(var)
  32.         err = 1;
  33.         return
  34.       elseif lparen == rparen - 1
  35.         err = 1;
  36.         return
  37.       else
  38.         numass = eval(var(lparen+1:rparen-1));
  39.         nn = var(1:lparen-1);
  40.         if lparen-1 > maxlen
  41.           maxlen = lparen - 1;
  42.         end
  43.         namelen(i) = length(nn);
  44.         names = [names ; [nn mtblanks(tmpln-length(nn))]];
  45.         inppoint = [inppoint ; [startp numass]];
  46.         startp = startp + numass;
  47.         numxinp = numxinp + numass;
  48.       end
  49.     else
  50.       nn = var;
  51.       if length(nn) > maxlen
  52.         maxlen = length(nn);
  53.       end
  54.       namelen(i) = length(nn);
  55.       names = [names ; [nn mtblanks(tmpln-length(nn))]];
  56.       inppoint = [inppoint ; [startp 1]];
  57.       startp = startp + 1;
  58.       numxinp = numxinp + 1;
  59.     end
  60.   end
  61.   names = names(:,1:maxlen);
  62.   ndf = numdiffinp;
  63. %
  64. % Copyright MUSYN INC 1991,  All Rights Reserved
  65.