?? sandizhi.c
字號:
}
}
if(strlen(ch)==1)
{
for(i=0;i<strlen(ch);i++)
{
k=ch[i]-'0';
answer=answer+k*pow(10,strlen(ch)-i-1);
}
nuattr=answer;
return 15;
}
}
else
{
strcpy(attr,ch);
return 18;
}
}
}
}
int S()
{
int c,s1,ss,e;
if(strcmp(ech[now],"if")==0)
{
if(label==0)
{
newlabel(Snext);
newlabel(Sbegin);
printf("\n%s:\n",Sbegin);
}
else
{
strcpy(Sbegin,Ctrue);
}
newlabel(Ctrue);
strcpy(Cfalse,Snext);
now++;
c=C();
if(c==0)
{
return 0;
}
if(strcmp(ech[now],"then")==0)
{
now++;
if(strcmp(ech[now],"i")==0||strcmp(ech[now],"if")==0)
{
printf("\n%s:\n",Ctrue);
}
s1=S();
if(s1==0)
{
return 0;
}
ss=SS();
if(ss==0)
{
return 0;
}
else
{
return 1;
}
}
}
if(strcmp(ech[now],"i")==0)
{
strcpy(idplace,echattr[now]);
now++;
if(strcmp(ech[now],"=")==0)
{
now++;
e=E();
strcpy(Scode,Ecode); /*aaaaaaaaaaaaaaa*/
printf(" %s=%s\n",idplace,Eplace);
printf(" goto%s",Sbegin);
if(e==0)
{
return 0;
}
else
{
return 1;
}
}
return 0;
}
if(strcmp(ech[now],"while")==0)
{
now++;
if(label==0)
{
newlabel(Snext);
newlabel(Sbegin);
}
else
{
strcpy(Sbegin,Ctrue);
}
newlabel(Ctrue);
strcpy(Cfalse,Snext);
strcpy(S1next,Sbegin);
printf("\n%s:\n",Sbegin);
c=C();
if(c==0)
{
return 0;
}
if(strcmp(ech[now],"do")==0)
{
now++;
if(strcmp(ech[now],"while")!=0)
{
printf("\n%s:\n",Ctrue);
}
strcpy(Snext,S1next);
s1=S();
if(s1==0)
{
return 0;
}
else
{
return 1;
}
}
}
return 0;
}
int SS()
{
int s;
if(strcmp(ech[now],"else")==0)
{
now++;
s=S();
if(s==0)
{
return 0;
}
else
{
return 1;
}
}
if(strcmp(ech[now],"#")==0)
{
return 1;
}
else
{
return 0;
}
}
int C()
{
int cc,e;
e=E();
strcpy(E1place,Eplace); /*aaaaaaaaaaaaaa*/
strcpy(E1code,Ecode);
if(e==0)
{
return 0;
}
cc=CC();
if(cc==0)
{
return 0;
}
else
{
return 1;
}
}
int CC()
{
int e;
if(strcmp(ech[now],">")==0)
{
now++;
e=E();
strcpy(E2place,Eplace); /*aaaaaaaaaaaaaa*/
strcpy(E2code,Ecode);
printf(" if %s>%s goto %s \n goto %s",E1place,E2place,Ctrue,Cfalse);
if(e==0)
{
return 0;
}
else
{
return 1;
}
}
if(strcmp(ech[now],"<")==0)
{
now++;
e=E();
strcpy(E2place,Eplace); /*aaaaaaaaaaaaaa*/
strcpy(E2code,Ecode);
printf(" if %s<%s goto %s \n goto %s",E1place,E2place,Ctrue,Cfalse);
if(e==0)
{
return 0;
}
else
{
return 1;
}
}
if(strcmp(ech[now],"=")==0)
{
now++;
e=E();
strcpy(E2place,Eplace); /*aaaaaaaaaaaaaa*/
strcpy(E2code,Ecode);
printf(" if %s=%s goto %s \n goto %s",E1place,E2place,Ctrue,Cfalse);
if(e==0)
{
return 0;
}
else
{
return 1;
}
}
else
{
return 0;
}
}
int E()
{
int t,ee;
t=T();
strcpy(Eplace,Tplace); /*aaaaaaaaaaaa*/
strcpy(Ecode,Tcode);
if(t==0)
{
return 0;
}
ee=EE();
if(ee==0)
{
return 0;
}
else
{
return 1;
}
}
int T()
{
int f,tt;
f=F();
strcpy(Tplace,Fplace); /*aaaaaaaaaaaa*/
strcpy(Tcode,Fcode);
if(f==0)
{
return 0;
}
tt=TT();
if(tt==0)
{
return 0;
}
else
{
return 1;
}
}
int TT()
{
int f,tt;
if(strcmp(ech[now],"*")==0)
{
strcpy(TTplace,Tplace);
strcpy(TTcode,Tcode);
newtemp(Tplace); /*aaaaaaaaaaaa*/
now++;
f=F();
strcpy(Tcode,TTcode); /*aaaaaaaaaaaa*/
strcat(Tcode,Fcode);
printf(" %s=%s*%s\n",Tplace,TTplace,Fplace);
if(f==0)
{
return 0;
}
tt=TT();
if(tt==0)
{
return 0;
}
else
{
return 1;
}
}
if(strcmp(ech[now],"/")==0)
{
strcpy(TTplace,Tplace);
strcpy(TTcode,Tcode);
newtemp(Tplace); /*aaaaaaaaaaaa*/
now++;
f=F();
strcpy(Tcode,TTcode); /*aaaaaaaaaaaa*/
strcat(Tcode,Fcode);
printf(" %s=%s/%s\n",Tplace,TTplace,Fplace);
if(f==0)
{
return 0;
}
tt=TT();
if(tt==0)
{
return 0;
}
else
{
return 1;
}
}
else
{
return 1;
}
}
int EE()
{
int t,ee;
if(strcmp(ech[now],"+")==0)
{
strcpy(EEplace,Eplace);
strcpy(EEcode,Ecode);
newtemp(Eplace); /*aaaaaaaaaaaa*/
now++;
t=T();
strcpy(Ecode,EEcode); /*aaaaaaaaaaaa*/
strcat(Ecode,Tcode);
printf(" %s=%s+%s\n",Eplace,EEplace,Tplace);
if(t==0)
{
return 0;
}
ee=EE();
if(ee==0)
{
return 0;
}
else
{
return 1;
}
}
if(strcmp(ech[now],"-")==0)
{
strcpy(EEplace,Eplace);
strcpy(EEcode,Ecode);
newtemp(Eplace); /*aaaaaaaaaaaa*/
now++;
t=T();
strcpy(Ecode,EEcode); /*aaaaaaaaaaaa*/
strcat(Ecode,Tcode);
printf(" %s=%s-%s\n",Eplace,EEplace,Tplace);
if(t==0)
{
return 0;
}
ee=EE();
if(ee==0)
{
return 0;
}
else
{
return 1;
}
}
else
{
return 1;
}
}
int F()
{
int e=0;
if(strcmp(ech[now],"(")==0)
{
now++;
e=E();
strcpy(Fplace,Eplace); /*aaaaaaaaaaaa*/
strcpy(Fcode,Ecode);
if(e==0)
{
return 0;
}
if(strcmp(ech[now],")")==0)
{
now++;
return 1;
}
else
{
return 0;
}
}
if(strcmp(ech[now],"i")==0)
{
strcpy(Fplace,echattr[now]); /*aaaaaaaaaaaa*/
strcpy(Fcode,"");
now++;
return 1;
}
if(strcmp(ech[now],"int8")==0)
{
strcpy(Fplace,echattr[now]); /*aaaaaaaaaaaa*/
strcpy(Fcode,"");
now++;
return 1;
}
if(strcmp(ech[now],"int10")==0)
{
strcpy(Fplace,echattr[now]); /*aaaaaaaaaaaa*/
strcpy(Fcode,"");
now++;
return 1;
}
if(strcmp(ech[now],"int16")==0)
{
strcpy(Fplace,echattr[now]); /*aaaaaaaaaaaa*/
strcpy(Fcode,"");
now++;
return 1;
}
else
{
return 0;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -