📄 main.cpp
字号:
#include "main.h"
void main()
{
char *buf,*p;
char tm[100];
char temp;
int point=0;
int num;
int line=1,row=1;
int n=0,i;
int flag;
char filename[255];
ENote *e1=(ENote *)malloc(sizeof(ENote));
table t1;
stack s;
duality d1;
e1[0].num=0;
readfile("date.ls",CodeingList);
printf("请输入文件名:\n");
scanf("%s",filename);
readfile(filename,codebuf);
p=Mygetline(line);
while(SumLine)
{
temp=getword(p,row);
s.push(temp);
flag=Translate(temp);
switch(flag)
{
case WORD:
while(Translate(temp)==WORD)
{
temp=getword(p,row);
s.push(temp);
}
s.Pop(temp);
row--;
Getstackcontent(tm,s);
if(i=judge(tm))
{
d1.fillduality(i,0);
break;
}
num=t1.exame(tm,WORD);
d1.fillduality(34,num);
break;
case NUMERIC:
point=0;
while(Translate(temp)==NUMERIC||temp=='.')
{
if(temp=='.')
{
if(!point)
{point++;}
else
{ e1=(ENote *)realloc(e1,(e1[0].num+1)*sizeof(ENote));
e1[e1[0].num].line=line;
e1[e1[0].num].row=row-1;
e1[e1[0].num].kind=2;
e1[0].num++;
break;
}
}
temp=getword(p,row);
s.push(temp);
}
if(Translate(temp)==WORD)
{
e1=(ENote *)realloc(e1,(e1[0].num+1)*sizeof(ENote));
e1[e1[0].num].line=line;
e1[e1[0].num].row=row-1;
e1[e1[0].num].kind=3;
e1[0].num++;
}
row--;
s.Pop(temp);
Getstackcontent(tm,s);
if(checkreal(tm))
{
num=t1.exame(tm,NUMERIC);
d1.fillduality(35,num);
}
else
{
num=t1.exame(tm,NUMERIC);
d1.fillduality(36,num);
}
break;
case COMMENTS:
temp=getword(p,row);
if(temp=='*')
{
while((temp=getword(p,row))!='\0')
{
if((getword(p,row)=='/')&&temp=='*')
{break;}
row--;
}
if(temp=='\0')
{
e1=(ENote *)realloc(e1,(e1[0].num+1)*sizeof(ENote));
e1[e1[0].num].line=line;
e1[e1[0].num].row=row-1;
e1[e1[0].num].kind=1;
e1[0].num++;
s.Pop(temp);
break;
}
s.Pop(temp);
}
else
{
d1.fillduality(48,0);
s.Pop(temp);
row--;
}
break;
case INTERIEAVE:
switch(temp)
{
case ':':
if(getword(p,row)=='=')
{ d1.fillduality(51,0);}
else
{row--;
d1.fillduality(50,0);}
break;
case '<':
if(getword(p,row)=='=')
{d1.fillduality(54,0);
break;}
row--;
if(getword(p,row)=='>')
{d1.fillduality(55,0);
break;}
row--;
d1.fillduality(53,0);
break;
case '>':
if(getword(p,row)=='=')
{d1.fillduality(58,0);}
else
{row--;
d1.fillduality(57,0);}
break;
case '.':
if(getword(p,row)=='.')
{d1.fillduality(47,0);}
else
{row--;}
break;
default:
Getstackcontent(tm,s);
if(num=judge(tm))
{d1.fillduality(num,0);}
}
s.Pop(temp);
break;
case CONSTANT:
s.Pop(temp);
while((temp=getword(p,row))!='\0')
{
if(temp=='\'')
{break;}
s.push(temp);
}
if(temp=='\0')
{
e1=(ENote *)realloc(e1,(e1[0].num+1)*sizeof(ENote));
e1[e1[0].num].line=line;
e1[e1[0].num].row=row-1;
e1[e1[0].num].kind=4;
e1[0].num++;
}
Getstackcontent(tm,s);
num=t1.exame(tm,CONSTANT);
d1.fillduality(37,num);
break;
case ILLEGAL:
e1=(ENote *)realloc(e1,(e1[0].num+1)*sizeof(ENote));
e1[e1[0].num].line=line;
e1[e1[0].num].row=row-1;
e1[e1[0].num].kind=5;
e1[0].num++;
s.Pop(temp);
break;
default:
s.Pop(temp);
}
if(temp=='\0')
{SumLine--;
line++;
row=1;
p=Mygetline(line);
}
}
t1.display();
d1.displayduality();
d1.writedualityfile();
t1.writefile();
printerror(e1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -