📄 p_getsym.h
字号:
#include<string.h>
int getch()
{
//int fp1=fileno(fp);
if (cc==ll)
{
if(feof(fp))
{
//printf("program incomplete\n");
fclose(fp);
//exit(1);
f_eof=1;
return 1;
}
ll=0;cc=0;count_line++;
ch=fgetc(fp);
while (ch!=chr1&&!feof(fp))
{
line[ll++]=ch;
//printf("%c",ch);
ch=fgetc(fp);
}
//printf("\n");
ch=fgetc(fp);
line[ll]=' '; //process end-line
}
ch=line[cc++];
return 0;
} //getch
void getsym()//getsym
{
int k,flag,k_w;
//int getch();
while(ch==' ')
getch();
if (isalpha(ch))
{
k=0;
while((isalpha(ch))||(isdigit(ch)))
{
if(k<al) //10 lenth of identifier table
{
a[k++]=ch;
}
getch();
}
if(k<10)
{
for(;k<10;k++)
a[k]=' ';
}
memcpy(id,a,10);
flag=0;
for(k_w=0;k_w<13&&!flag;k_w++)
{
if(!memicmp(id,word[k_w].w,10))
flag=1;
}
if(flag)
sym=wsym[--k_w];
else sym=ident;
}
else if(isdigit(ch)) //if ch in '0'—'9'
{
k=0;num=0;sym=number;
while(isdigit(ch))
{
num=10*num+(int)ch-(int)('0');
k++;
getch();
}
if(k>nmax) error(30);//the digit is too large
}
else if(ch=='=')
{
sym=becomes;getch();
if (ch=='=')
{
sym=eql;
getch();
}
}
else if(ch=='<')
{
getch();
if(ch=='=') //<=
{
sym=leq;
getch();
}
else if(ch=='>')
{
sym=neq; //<>
getch();
}
else sym=lss; //<
}
else if(ch=='>')
{
getch();
if(ch=='=') //>=
{
sym=geq;
getch();
}else sym=gtr;//>
}else
{
for(k=0;k<9;k++)
{
if(ch==ssym[k].ch)
{
sym=ssym[k].ch_sym;
getch();
break;
}
}
if (k==9)
{
error(20);//this character is not allowed
//getch();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -