• 大小: 948KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-07-15
  • 语言: 其他
  • 标签: 课程资源  

资源简介

河北工业大学编译原理实验,压缩包内含源代码与实验报告

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 
#define DIGIT 1
#define POINT 2
#define OTHER 3
#define POWER 4
#define PLUS 5
#define MINUS 6
#define UCON 7
#define ClassOther 200
#define EndState -1//无符号数识别程序宏定义

#define MI 8
#define MU 9
#define DI 10
#define ID 11
#define L 12
#define R 13//词法分析程序宏定义

#define RIGHT 1
#define ERROR 0
#define MAXINPUT 300
#define MAXSTACK 100
#define STARTSYMBOL ‘E‘//语法分析程序宏定义

char TOKEN[20];
int wnped;
int Class;  //Used to indicate class of the word
int ICON;
double FCON;
static int CurrentState;
int row=1col=0;//词法分析程序全局变量

int index=0;//语法分析符号栈数组下标
int count=0;
char VT[8]={‘(‘‘i‘‘*‘‘/‘‘+‘‘-‘‘)‘‘#‘};
char stack[MAXSTACK]array[MAXINPUT];
char matrix[8][8]=
{‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘=‘‘e‘
‘e‘‘e‘‘>‘‘>‘‘>‘‘>‘‘>‘‘>‘
‘<‘‘<‘‘>‘‘>‘‘>‘‘>‘‘>‘‘>‘
‘<‘‘<‘‘>‘‘>‘‘>‘‘>‘‘>‘‘>‘
‘<‘‘<‘‘<‘‘<‘‘>‘‘>‘‘>‘‘>‘
‘<‘‘<‘‘<‘‘<‘‘>‘‘>‘‘>‘‘>‘
‘e‘‘e‘‘>‘‘>‘‘>‘‘>‘‘>‘‘>‘
‘<‘‘<‘‘<‘‘<‘‘<‘‘<‘‘e‘‘=‘};//语法分析程序全局变量

char var=‘1‘;
char s[MAXSTACK];//语义分析程序全局变量

int GetChar(FILE *fp)
{
int c;
c=fgetc(fp);col++;
if(isdigit(c))
{
d=c-‘0‘;
return DIGIT;
}
if(c==‘.‘)
return POINT;
if(c==‘E‘||c==‘e‘)
return POWER;
if(c==‘+‘)
return PLUS;
if(c==‘-‘)
return MINUS;
return OTHER;
}
int EXCUTE(int stateint symbol)
{
switch(state)
{
case 0:switch(symbol)
   {
case DIGIT:n=0;p=0;e=1;w=d;CurrentState=1;Class=UCON;break;
case POINT:w=0;n=0;p=0;e=1;CurrentState=3;Class=UCON;break;
default:Class=ClassOther;
CurrentState=EndState;
   }
break;
case 1:switch(symbol)
   {
case DIGIT:w=w*10+d;break;  //CurrentState=1
case POINT:CurrentState=2;break;
case POWER:CurrentState=4;break;
default: ICON=w;CurrentState=EndState;
   }
break;
case 2:switch(symbol)
   {
case DIGIT:n++;w=w*10+d;break;
case POWER:CurrentState=4;break;
default:FCON=w*pow(10e*p-n);CurrentState=EndState;
   }
break;
case 3:switch(symbol)
   {
case DIGIT:n++;w=w*10+d;CurrentState=2;break;
default:printf(“Error!\n“);CurrentState=EndState;
   }
break;
case 4:switch(symbol)
   {
case DIGIT:p=p*10+d;CurrentState=6;break;
case MINUS:e=-1;CurrentState=5;break;
case PLUS:CurrentState=5;break;
default:printf(“Error!\n“);CurrentState=EndState;
   }
break;
case 5:switch(symbol)
   {
case DIGIT:p=p*10+d;CurrentState=6;break;
default:printf(“Error!\n“);CurrentState=EndState;
   }
break;
case 6:switch(symbol)
   {
case DIGIT:p=p*10+d;break;
default:FCON=w*pow(10e*p-n);CurrentState=EndState;
   }
break;
}
return CurrentState;
}
void LEX(FILE *fp)
{
int ch;
CurrentState=0;
while(CurrentState!=EndState)
{
ch=GetChar(fp);
EXCUTE(CurrentStatech);
}
}//无符号数识别程序

void out(int mchar *aFILE *fp2)
{
fprintf(fp2“(“fp2);
switch(m)
{
case ID:fputs(“ID“fp2);ar

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        627  2017-01-02 15:56  编译原理\Read Me.txt

    ..A..H.       162  2017-12-18 15:15  编译原理\~$报告-计152-153111-王兵.docx

     文件         19  2017-12-18 16:43  编译原理\合\file2_1.txt

     文件        106  2018-01-04 22:13  编译原理\合\file2_2.txt

     文件       9113  2017-12-18 16:41  编译原理\合\合.cpp

     文件       3355  2017-12-18 16:37  编译原理\合\合.dsp

     文件        512  2017-12-18 16:46  编译原理\合\合.dsw

     文件      41984  2018-01-04 23:33  编译原理\合\合.ncb

     文件      48640  2018-01-04 23:33  编译原理\合\合.opt

     文件        728  2017-12-18 16:42  编译原理\合\合.plg

     文件      41984  2018-01-04 22:13  编译原理\合\Debug\vc60.idb

     文件      53248  2017-12-18 16:41  编译原理\合\Debug\vc60.pdb

     文件     229465  2017-12-18 16:42  编译原理\合\Debug\合.exe

     文件     252020  2017-12-18 16:42  编译原理\合\Debug\合.ilk

     文件      28219  2017-12-18 16:42  编译原理\合\Debug\合.obj

     文件     239844  2017-12-18 15:13  编译原理\合\Debug\合.pch

     文件     517120  2017-12-18 16:41  编译原理\合\Debug\合.pdb

     文件         29  2017-12-18 16:02  编译原理\实验一\file1_1.txt

     文件        101  2017-12-18 16:02  编译原理\实验一\file1_2.txt

     文件       6626  2017-12-18 16:10  编译原理\实验一\实验一.cpp

     文件       3403  2017-12-18 16:02  编译原理\实验一\实验一.dsp

     文件        520  2017-12-18 16:02  编译原理\实验一\实验一.dsw

     文件      41984  2018-01-05 00:08  编译原理\实验一\实验一.ncb

     文件      48640  2017-12-18 16:02  编译原理\实验一\实验一.opt

     文件        748  2017-12-18 16:02  编译原理\实验一\实验一.plg

     文件      33792  2017-12-18 16:02  编译原理\实验一\Debug\vc60.idb

     文件      45056  2017-12-18 15:56  编译原理\实验一\Debug\vc60.pdb

     文件     229473  2017-12-18 16:02  编译原理\实验一\Debug\实验一.exe

     文件     231836  2017-12-18 16:02  编译原理\实验一\Debug\实验一.ilk

     文件      21192  2017-12-18 16:02  编译原理\实验一\Debug\实验一.obj

............此处省略42个文件信息

评论

共有 条评论