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

📄 analyzer.h

📁 相当于一个C语言的编译器
💻 H
字号:
#ifndef _ANALYZER_H_
#define _ANALYZER_H_

#include "SymbolTable.h"
#include "FunArgsCheck.h"

// build a syntax tree, then do semantic analysis,
// besides construct a symbol table
class CAnalyzer
{
public:
	CAnalyzer( CString& str );
	~CAnalyzer();

// Attributes
public:
	CTreeNode*		m_pProgram;
	CParser*		m_pParser;
	static CSymbolTable		m_SymbolTable;
	static CFunArgsCheck	m_FunArgs;

// Operations
public:
	void			BuildSymbolTable( CTreeNode* pNode );
	void			typeCheck( CTreeNode* pNode );

	void			Trace( LPCTSTR lpszPathName );
	void			TraceTypeCheck();

// help routines
private:
	void			traverse( CTreeNode* t, 
		                      void(* preProc)(CTreeNode*), void(* postProc)(CTreeNode*) );
	static void		nullProc( CTreeNode* t );
	static void		insertNode( CTreeNode* t );
	static void		checkNode( CTreeNode* t );

private:
	static int		location;
};

#endif // _ANALYZER_H_

⌨️ 快捷键说明

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