资源简介
编译原理,词法分析,语法分析,四元式生,设计报告
代码片段和文件信息
#include “stdio.h“
#include “Parse.h“
#include “Global.h“
#include
#include
#include
#include
#include
#include
#include
#define NULL 0
#define OK 1
#define size 100
FILE *fp;
char ch;
char *keyword[6]={“begin““else““end““if““then““var“};
char *comparison[5]={“<““<=““>““>=““<>“};
char *equal[1]={“=“};
char *interpunction[10]={“““;““:=““.““(““)““+““-““*““/“};
char *now[2]={“while““do“};
int flag[1]={1};
char buffer[10][100];
int inc=-1;
bool search(char searchstr[]int wordtype)
{
int i;
switch (wordtype)
{
case 1:for(i=0;i<=5;i++)
{
if(strcmp(keyword[i]searchstr)==0)
return(true);
}
break;
case 2: for(i=0;i<=4;i++)
{
if(strcmp(comparison[i]searchstr)==0)
return(true);
}
break;
case 3: for(i=0;i<=9;i++)
{
if(strcmp(interpunction[i]searchstr)==0)
return(true);
}
break;
case 4:for(i=0;i<=1;i++)
{
if(strcmp(now[i]searchstr)==0)
return(true);
}
break;
case 5:{
if(strcmp(equal[0]searchstr)==0)
return(true);
}
break;
}
return(false);
}
char letterprocess (char ch)//字母处理函数
{
int i=-1j=1;
char letter[20];
while (isalnum(ch)!=0)
{
letter[++i]=ch;
ch=fgetc(fp);
}
letter[i+1]=‘\0‘;
if (search(letter1))
{
printf(“<%s->\n“letter);printf(“aaaaa“);
flag[0]=0;
}
else if(search(letter4))
printf(“<%s->\n“letter);
else
{
printf(“\n“letter);
strcpy(buffer[++inc]letter);
}
return(ch);
}
char numberprocess(char ch)//数字处理程序
{
int i=-1;
char num[20];
// printf(“该文法不在此次考虑中\n“);
flag[0]=0;
while (isdigit(ch)!=0)
{
num[++i]=ch;
ch=fgetc(fp);
}
if(isalpha(ch)!=0)
{
while(isspace(ch)==0)
{
num[++i]=ch;
ch=fgetc(fp);
}
num[i+1]=‘\0‘;
printf(“错误!非法标识符:%s\n“num);
goto u;
}
num[i+1]=‘\0‘;
printf(“\n“num);
u: return(ch);
}
char otherprocess(char ch)
{
int i=-1;
char other[20];
if (isspace(ch)!=0)
{
ch=fgetc(fp);
goto u;
}
while ((isspace(ch)==0)&&(isalnum(ch)==0))
{
other[++i]=ch;
ch=fgetc(fp);
}
other[i+1]=‘\0‘;
if (search(other3))
{
printf(
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 18 2005-06-21 21:10 ljSimple\lj.txt
文件 54784 2005-06-23 15:42 ljSimple\Main.opt
文件 3375 2005-06-22 09:26 ljSimple\Main.dsp
目录 0 2005-06-22 09:26 ljSimple\Debug
文件 533 2005-06-22 09:27 ljSimple\Main.dsw
文件 249 2005-06-21 23:20 ljSimple\Global.h
文件 1932 2005-06-21 22:07 ljSimple\Parse.h
文件 242 2005-06-23 14:47 ljSimple\Main.plg
文件 2978 2005-06-21 22:07 ljSimple\Prece.H
文件 1007 2005-06-21 21:30 ljSimple\Stack.h
文件 4656 2005-06-21 23:00 ljSimple\Main.c
文件 13310 2005-03-19 13:07 ljSimple\MAIN.EXE
文件 58368 2005-06-23 15:42 ljSimple\Main.ncb
目录 0 2005-06-20 14:08 ljSimple
..A.SH. 10 2006-10-11 12:39 ljSimple\_desktop.ini
文件 84992 2005-06-23 15:39 ljSimple\课程设计报告书.doc
....SHR 9 2007-01-12 22:14 ljSimple\Desktop_.ini
文件 708150 2005-06-23 14:52 ljSimple\运行结果.bmp
----------- --------- ---------- ----- ----
934831 19
评论
共有 条评论