编译原理词法语法语义分析器设计(12)
时间:2025-07-10
时间:2025-07-10
string cnt[500];//标识符 int temp=0; //数组下标 int is_right; //判断输出信息
//-----------------------词法分析----------------------------- int Scan(char program[]) {
char *keywords[13] = {"void","main","if","then","break","int", "char","float","include","for","while","printf","scanf"}; //关键字 number=0; status=0; j=0;
ch=program[i++]; //遍历
if ((ch >= 'a') && (ch <= 'z' )) //字母 {
while ((ch >= 'a') && (ch <= 'z' )) {
words[j++]=ch; ch=program[i++]; } i--;
words[j++] = '\0'; for (k = 0; k < 13; k++)
if (strcmp (words,keywords[k]) == 0) //判断是否为关键字 switch(k) { case 0:{ flag = 1; status = 1; break; } case 1:{ flag = 2; status = 1; break; } case 2:{ flag = 3; status = 1; break; } case 3:{ flag = 4; status = 1;