www.pudn.com > subpas.rar > util.h


/****************************************************/ 
/* File: util.h                                     */ 
/* Utility function implementation                  */ 
/* for SubPas compiler                              */ 
/****************************************************/ 
 
#ifndef _UTIL_H_ 
#define _UTIL_H_ 
#define  ERROR -1	//若在词法分析过程中遇到未知字符,则返回ERROR 
 
/* 返回树节点的数据类型 
 * @param tree 指向该节点的指针 
 * @return 类型的字符表达式,如"integer","boolean","real"等 
 */ 
char * getType(TreeNode * tree); 
 
/* 在listing文件中打印出token的识别 */ 
void printToken(TokenType token, const char *); 
 
/* 以下函数分别建立一个Pro节点,Stmt节点,Exp节点 */ 
TreeNode * newProNode(ProKind); 
TreeNode * newStmtNode(StmtKind); 
TreeNode * newExpNode(ExpKind); 
 
/* 分配相应空间,将一个字符串复制到该空间中,再返回 
 * 复制后的字符串指针	 
 */ 
char * copyString(char *); 
 
/*将一个字符串指针压入栈*/ 
void pushName(char *); 
 
/*将栈顶的字符串指针出栈*/ 
char * popName(void); 
 
/* 将语法分析后返回的语法树打印到listing文件中 */ 
void printTree(TreeNode *); 
 
#endif