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

📄 main.cpp

📁 pascal的编译器 交作业没问题
💻 CPP
字号:
/************************************************************
    Tiny pascal compiler   Gxut_CS_023 wei fa qiang  2005.9
    Reference:<<Compiler Construction: Principles and Practice>>
	            Kenneth C. Louden
***************************************************************/

#include "VM.h"

void main()
{
   FILE *source;
   int bError=0;
   char pathName[100];
   Parse parse;
   Analyze analyze;
   GenCode gen;
   VM vm;
   
   printf("输入Tiny Pascal源文件路径:");
   scanf("%s",pathName);
   source=fopen(pathName,"r+");
   if(source==NULL) return;

   printf("==========词法分析,所有TOKEN=============\n");
   parse.Init(source);
   parse.MyParse();                            //Parse
   printf("==========源程序的语法树=============\n");
   parse.printTree(parse.syntaxTree);
   if(parse.Error) return;

   printf("\n==========符号表里的数据=============\n");
   analyze.Init(stdout);
   analyze.buildSymtab(parse.syntaxTree);      //Analyze
   analyze.typeCheck(parse.syntaxTree);

   printf("\n=======生成虚拟机目标代码===========\n");
   gen.Init(stdout,&analyze);                  //GenCode
   gen.codeGen(parse.syntaxTree);
   gen.printCodes();

   printf("\n==========运行目标代码=============\n");
   vm.Init();
   vm.Run(gen.codes);                          //VM run

   fclose(source);

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -