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

📄 说明.txt

📁 词法分析
💻 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 + -