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

📄 util.h

📁 一个c语言的编译器的源代码
💻 H
字号:

#ifndef UTIL_H_
#define UTIL_H_

#include <iostream>
#include <string>
#include <map>
#include "scan.h"
#include "parse.h"
#include "symtable.h"
#include "pp_scan.h"

using namespace std;

extern int indent;

extern map<TokenType,string> TokenMap;

void init();

TreeNode *NewNode(Kind kind);

void PrintIndent(ostream &os);

/*
void PrintDeclar(TreeNode *p,ostream &os)
{
}
void PrintExp(TreeNode *p,ostream &os)
{
}
void PrintParam(TreeNode *p,ostream &os)
{
}
void PrintArgs(TreeNode *p,ostream &os)
{
}
*/
void PrintSyntaxTree(TreeNode *p,ostream &os);

void PrintOneTable(BucketList *p,ostream &os);

void PrintSymbolTable(TreeNode *p,ostream &os);

Type GetType(TreeNode *t);

SymbolType GetSymbolType(TreeNode *t);

string GetTokenString(TokenType token);

//
// Error reporting below
//
void ReportPos(int lineno, ostream &os);

void SemanticError(string errinfo,int lineno,
                   int ref_lineno=0,ostream &os=cout);

void ParseError(string errinfo,int lineno, ostream &os=cout);

void GenError(string errinfo, ostream &os=cout);

#endif

⌨️ 快捷键说明

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