资源简介

吉林大学2015年编译原理实验源代码,包括词法分析,LL1分析,递归下降法分析,语义分析

资源截图

代码片段和文件信息

// CiFa.cpp: implementation of the CCiFa class.
//
//////////////////////////////////////////////////////////////////////

#include “stdafx.h“
#include “OurCompiler.h“
#include “CiFa.h“
#include “Global.h“

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CCiFa::CCiFa()
{

}

CCiFa::~CCiFa()
{

}

void CCiFa::Init()
{
Tokennum=0;
lineno=0;
linepos = 0;
Error = FALSE;
fp_num=0;
bufsize = 0;
EOF_flag = FALSE;
EchoSource = TRUE;
}
void CCiFa:: printTokenlist(ChainNodeType *head)
{
   //TokenType1  newhead->Token;
   int m;
   ChainNodeType *newhead=head;
  // strcpy(newhead->Token.Semnewhead->Token.Sem);
 //  newhead->Token.Lex=newhead->Token.Lex;
 //  newhead->Token.lineshow=newhead->Token.lineshow;
   fp=fopen(“Tokenlistnew.txt““w+“);  /*打开文件*/
   
   if(fp==NULL)
   {
//   printf(“can not open the file:Tokenlist!\n“);
//   Error = TRUE;
   //exit(0);
   }
   listing=fp;
   for (m=1;newhead!=NULL;m++)
   {     
   
   
   fprintf(listing“\t%d: “newhead->Token.lineshow);/*打印行号*/
    
   /* 对函数参数Lex给定单词进行分类处理 */
       switch (newhead->Token.Lex)
   { 
    /* 单词token为保留字将保留字词元以指定格式写入列表文件listing */
        case PROGRAM:
        case PROCEDURE:
case TYPE:
case VAR:
case IF:
case THEN:
case ELSE:
case FI:
case INTEGER:
case CHAR1:
case WHILE:
case DO:
case ENDWH:
case BEGIN:
case END:
case READ:
case WRITE:
case ARRAY:
case OF:
case RECORD:
case RETURN:

fprintf(listing     /*打印保留字*/     
                  “reserved word: %s\n“newhead->Token.Sem);
            break;

    //“:=“ 
case ASSIGN: fprintf(listing“:=\n“); break;
    
//LT (小于)
case LT: fprintf(listing“<\n“); break;
  
//EQ (等于)
case EQ: fprintf(listing“=\n“); break;
    
//LPAREN (左括号)
case LPAREN: fprintf(listing“(\n“); break;

/* RPAREN (右括号) */
case RPAREN: fprintf(listing“)\n“); break;
    
/*SEMI (分号)*/
case SEMI: fprintf(listing“;\n“); break;
 
/* PLUS (加号) */
case PLUS: fprintf(listing“+\n“); break;
 
/* MINUS (减号) */
case MINUS: fprintf(listing“-\n“); break;

/* TIMES (乘号) */
case TIMES: fprintf(listing“*\n“); break;

//OVER (除号)
case OVER: fprintf(listing“/\n“);  break;

case DOT:  fprintf(listing“.\n“); break;

case COMMA: fprintf(listing“\n“); break;

case LMIDPAREN: fprintf(listing“[\n“); break;

case RMIDPAREN: fprintf(listing“]\n“); break;

case UNDERANGE: fprintf(listing“..\n“); break;

case ENDFILE1: fprintf(listing“EOF\n“); break;
    
case INTC:
fprintf(listing
“NUM val= %s\n“newhead->Token.Sem);
 break;

case CHARC:
fprintf(listing
“INCHAR char=%c\n“newhead->Token.

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-04-22 09:27  编译原理实验\
     文件       24054  2015-04-20 16:40  编译原理实验\1111.ico
     文件       15748  2013-03-31 22:27  编译原理实验\CiFa.cpp
     文件        1265  2013-03-31 22:27  编译原理实验\CiFa.h
     目录           0  2015-04-20 21:40  编译原理实验\Debug\
     文件       28921  2015-04-20 06:44  编译原理实验\Debug\CiFa.obj
     文件           0  2015-04-20 06:44  编译原理实验\Debug\CiFa.sbr
     文件       13312  2015-04-20 06:44  编译原理实验\Debug\FileDlg.obj
     文件           0  2015-04-20 06:44  编译原理实验\Debug\FileDlg.sbr
     文件        7750  2015-04-20 06:44  编译原理实验\Debug\Global.obj
     文件           0  2015-04-20 06:44  编译原理实验\Debug\Global.sbr
     文件      136726  2015-04-20 06:44  编译原理实验\Debug\LL1.obj
     文件           0  2015-04-20 06:44  编译原理实验\Debug\LL1.sbr
     文件     5587968  2015-04-20 21:41  编译原理实验\Debug\OurCompiler.bsc
     文件    11276357  2015-04-20 21:41  编译原理实验\Debug\OurCompiler.exe
     文件      392404  2015-04-20 21:41  编译原理实验\Debug\OurCompiler.ilk
     文件       18059  2015-04-20 06:44  编译原理实验\Debug\OurCompiler.obj
     文件     6878208  2013-03-31 22:27  编译原理实验\Debug\OurCompiler.pch
     文件      582656  2015-04-20 21:41  编译原理实验\Debug\OurCompiler.pdb
     文件     9208524  2015-04-20 17:06  编译原理实验\Debug\OurCompiler.res
     文件           0  2015-04-20 06:44  编译原理实验\Debug\OurCompiler.sbr
     文件       66286  2015-04-20 21:40  编译原理实验\Debug\OurCompilerDlg.obj
     文件           0  2015-04-20 21:41  编译原理实验\Debug\OurCompilerDlg.sbr
     文件      105951  2013-03-31 22:27  编译原理实验\Debug\StdAfx.obj
     文件     1375061  2013-03-31 22:27  编译原理实验\Debug\StdAfx.sbr
     文件      118028  2015-04-20 07:05  编译原理实验\Debug\YuFa11.obj
     文件           0  2015-04-20 07:05  编译原理实验\Debug\YuFa11.sbr
     文件       59845  2015-04-20 06:44  编译原理实验\Debug\YuYi.obj
     文件           0  2015-04-20 06:44  编译原理实验\Debug\YuYi.sbr
     文件      353280  2015-04-20 21:41  编译原理实验\Debug\vc60.idb
     文件      462848  2015-04-20 21:40  编译原理实验\Debug\vc60.pdb
............此处省略61个文件信息

评论

共有 条评论