⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inwhichlast.m

📁 student teacher and proferssor llove this project,this a very important exmple
💻 M
字号:
function [outflag,howmany,subscripts,centercomma,parens,callword]=inwhichlast(i,spot);%Key:% outflag==0  ==>  in nothing at spot, return any mathematical nesting parenthesis, or [1 end]% outflag==1  ==>  in bracket last% outflag==2  ==>  in subscript last% outflag==3  ==>  in make_converted function last% outflag==4  ==>  in submitted subroutine call last% outflag==5  ==>  in regular function call last (from intrinsics list)% outflag==6  ==>  in regular function call last (not from intrinsics list (yet to be converted?))declare_globalsoutflag=0;howmany=0;subscripts=[];centercomma=[];parens=[];temp1=find(~isspace(funstr{i}));callword='';left=funstr{i}=='(';right=funstr{i}==')';both_p=left-right;                 c_p=cumsum(both_p);leftbracket=funstr{i}=='[';rightbracket=funstr{i}==']';both_b=leftbracket-rightbracket;   c_b=cumsum(both_b);goon=0;tryif (length(find(find(leftbracket)<spot))>length(find(find(rightbracket)<spot)))|(length(find(find(left)<spot))>length(find(find(right)<spot))) leftp=find(left); poss_p=leftp(leftp<spot); leftbracketp=find(leftbracket); poss_b=leftbracketp(leftbracketp<spot); poss=sort([poss_p poss_b]); for k=length(poss):-1:1  if findrights(poss(k),funstr{i})>spot   %if a word doesn't immediately precede this '(' then it is mathematical or superfluous   %In this case, we should set j to the last unclosed '(' or '['   %or return if there is no such '(' or '['.   if funstr{i}(poss(k))=='['    goon=1; j=poss(k); break   else    temp2=temp1(temp1<poss(k));    if ~isempty(temp2)     if length(funstrwords{i})>0      if any(temp2(end)==funstrwords_e{i})       if funstr{i}(poss(k))=='['        goon=1; j=poss(k); break       elseif funstr{i}(poss(k))=='('        goon=1; j=poss(k); break       end      end     end    end   end  end endendcatch funstr{i},spot,kbend% if zzz%  'eeeeeeeeee',goon,j,funstr{i},funstr{i}(1:j),zzz=0;kb% endif goon if strcmp(funstr{i}(j),'(')  temp1=temp1(temp1<j);  temp2=find(temp1(length(temp1))==funstrwords_e{i});  if ~isempty(temp2)   callword=temp2;   if length(find(strcmpi(funstrwords{i}{temp2},inoutother3)))>0    [howmany,subscripts,centercomma,parens]=hassubscript(i,temp2);    if parens(2)>spot     %In subscript last     outflag=2;    end   elseif length(find(strcmpi(funstrwords{i}{temp2},make_words)))>0    [howmany,subscripts,centercomma,parens]=hassubscript(i,temp2);    if parens(2)>spot     %In make_converted function last     outflag=3;    end   elseif length(find(strcmpi(funstrwords{i}{temp2},filename_all)))>0    [howmany,subscripts,centercomma,parens]=hassubscript(i,temp2);    if parens(2)>spot     %In submitted subroutine call last     outflag=4;    end   elseif length(find(strcmpi(funstrwords{i}{temp2},intrinsics)))>0    [howmany,subscripts,centercomma,parens]=hassubscript(i,temp2);    if parens(2)>spot     %In regular converted function (not make_*) last     outflag=5;    end   elseif length(find(strcmpi(funstrwords{i}{temp2},funwords)))>0    [howmany,subscripts,centercomma,parens]=hassubscript(i,temp2);    if parens(2)>spot     %In submitted subroutine call last     outflag=6;    end   end  else %no word immediately preceeds this parenthesis, but a mathematical ( or [ encompasses it   if funstr{i}(j)=='[' | funstr{i}(j)=='('    j2=findrights(j,funstr{i});   end   %outflag=0;howmany=1;subscripts{1}=funstr{i}(j+1:j2-1);centercomma=[];parens=[j j2];   outflag=0;howmany=1;subscripts{1}=funstr{i};centercomma=[];parens=[1 length(funstr{i})];  end elseif strcmp(funstr{i}(j),'[')  [dummy,howmany,subscripts,centercomma,parens]=inbracket(i,spot,funstr);  temp3=findrights(j,funstr{i});  if temp3>spot   %In bracket last   outflag=1;  end endelse outflag=0;howmany=1;subscripts{1}=funstr{i};centercomma=[];parens=[1 length(funstr{i})];end%funstr{i},funstr{i}(1:spot),kb

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -