?? util.h
字號:
/****************************************************/
/* 文件 util.h */
/* 說明 TINY編譯器的功能函數頭文件 */
/* 主題 編譯器結構: 原理和實例 */
/****************************************************/
/* 如已經聯入該頭文件util.h則不再聯入 */
#ifndef _UTIL_H_
#define _UTIL_H_
void printTokenlist( );
void ChainToFile (ChainNodeType *p);
void ReadNextToken(TokenType *p);
char * copyString(char * s);
/***********************************/
void Push(int i,int j);
void Pop();
/*讀棧頂標志,看是終極符還是非終極符*/
int readStackflag();
/*非終極符時*/
NontmlType readstackN();
/*終極符*/
TmlType readstackT();
/*壓棧的實現過程,壓入的是指向樹節點的指針的地址*/
void PushPA(TreeNode **t);
/*彈棧的實現過程*/
TreeNode ** PopPA();
/*操作符棧的壓棧實現過程,壓入的是指向樹節點的指針*/
void PushOp(TreeNode *t);
/*操作符棧的彈棧實現過程*/
TreeNode * PopOp();
LexType ReadOpStack();
/*操作數棧的壓棧實現過程,壓入的是指向樹節點的指針*/
void PushNum(TreeNode *t);
/*操作數棧的彈棧實現過程*/
TreeNode * PopNum();
/*******************************/
TreeNode * newTypeNode();
TreeNode * newVarNode();
TreeNode * newRootNode(void);
TreeNode * newPheadNode(void);
TreeNode * newDecANode(NodeKind kind);
TreeNode * newDecNode(void);
TreeNode * newProcNode(void);
TreeNode * newStmlNode(void);
TreeNode * newStmtNode(StmtKind kind);
TreeNode * newExpNode(ExpKind kind);
void printTree(TreeNode *tree);
static void printSpaces(void);
/*********************************/
ArgRecord *NewTemp (AccessKind access );
int NewLabel();
ArgRecord *ARGAddr(char *id ,int level, int off, AccessKind access);
ArgRecord *ARGLabel(int label );
ArgRecord *ARGValue(int value);
CodeFile *GenCode (CodeKind codekind , ArgRecord *Arg1 ,ArgRecord *Arg2 ,ArgRecord *Arg3 );
void PrintCodeName(CodeKind kind);
void PrintContent(ArgRecord *arg);
void PrintOneCode(CodeFile *code);
void PrintMidCode(CodeFile *firstCode);
int DivBaseBlock();
void PrintBaseBlock(int blocknum);
void printValuNum();
void printUsbleExpr();
void printTempEqua();
void PushLoop(LoopInfo *t);
LoopInfo *PopLoop();
void FindAdd(TreeNode * t);
void findSp(int varlevel);
void freeTree(TreeNode * t);
void freeDec(TreeNode * p);
void freeStm(TreeNode * p);
void freeExp(TreeNode * t);
void freeTable(void);
void freeMidCode(void);
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -