📄 说明.txt
字号:
程序思路
1.词法分析器
对输入的程序进行分析,将关键字,保留字与系统标识符分开,并对其属性进行说明。
建立数组,将单词读入,对单词的ASCII码进行判断,将在ASCII码值在一定区间进行区分(使用if语句来判断),分开来后,对其所在ASCII值区间的不同,给予以不同的属性(比如:系统保留字…),词法分析器完成后要能识别+,-,=等字符。
2.语法分析器
对输入的程序语句进行分析。对每个非终结点定义单个函数,定义了它的后继节点。然后用一个构造来的函数,使定义的后继节点符合语法,否则报错。
void number(char * source,char * token,int * i)
{
int j=0;
if(source[*i]=='0')
{
token[j]=source[*i];
(*i)++; j++;
token[j]=source[*i];
if(source[*i]>='0'&&source[*i]<='7')
{
while(source[*i]>='0'&&source[*i]<='7')
{
(*i)++; j++;
token[j]=source[*i];
}
token[j]='\0';
printf("%-20s NUM OCT\n",token);
}
else if(source[*i]=='x')
{
while(isdigit(source[*i])||source[*i]=='x'||(source[*i]>='a'&&source[*i]<='f'))
{
(*i)++; j++;
token[j]=source[*i];
}
token[j]='\0';
printf("%-20s NUM HEX\n",token);
}
else
{
token[j]='\0';
printf("%-20s NUM OCT\n",token);
}
}
else
{
token[j]=source[*i];
while(isdigit(source[*i]))
{
(*i)++; j++;
token[j]=source[*i];
}
token[j]='\0';
printf("%-20s NUM DEC\n",token);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -