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

📄 minushandle.h

📁 C-MINUS编译器
💻 H
字号:
#ifndef	MY_MINUSHANDLE_H_
#define	MY_MINUSHANDLE_H_

//#include "parser.h"
//#include "symbolTab.h"
//#include "Analyzer.h"
#include "asmGen.h"
/*************************************************
  Copyright (C), 2002-2008, lonelyforest.
  File name:      minusHandle.h
  Author:  林公玉 (lonelyforest)
  Version:  1.0
  Date: 22-03-06 15:47
  Description:  主要将Scanner, Parser,Analyzer, 等等进行封装
                提供一个统一的接口,进行各个标志的控制、设置
		等等,用户只需定义一个minusHandle类即可完成
		所需的词法,或者语法等等的操作。
*************************************************/
class minusHandle{
public:
    //------------------------------------------------------------------------
	minusHandle():analyze(NULL), parse(NULL), scan(NULL),
	gen(NULL),
    traceScan(true), traceParse(true), traceAnalyze(true),
    traceCode(true)
	{}
	~minusHandle();
	//------------------------------------------------------------------------
	void scanOnly(const string& filename);
	void parseOnly(const string& filename);
	void analyzeOnly(const string& filename);
	void asmOnly(const string& filename);
    //------------------------------------------------------------------------
	void	doit();   // 主要驱动函数,用来完成词法或者语法分析,语义分析的驱动
	bool	is_good();
    //------------------------------------------------------------------------
	void	noTraceScan();    // 因为默认情况是会 跟踪词法分析和语法分析,
	void	noTraceParse();   // 可以用来取消 跟踪。
	void	noTraceAnalyze(); // 取消语义分析生成符号表文件。
	void    noTraceCode();
	//------------------------------------------------------------------------
	void	getFiles();   // 统一的文件生成,  其中有 list, Syntax Tree, Symbol Table..
	int	err();      // 返回所有的错误数
	int warn();     // 返回所有的警告数
    //------------------------------------------------------------------------
protected:
    //------------------------------------------------------------------------
	Scanner	*scan;
	Parser	*parse;
	Analyzer *analyze;
	asmGen  *gen;
    //------------------------------------------------------------------------
	bool	traceScan;
	bool	traceParse;
	bool	traceAnalyze;
	bool    traceCode;     // trace asm commentions,
};

#endif

⌨️ 快捷键说明

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