📄 main.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 + -