📄 parse.h
字号:
// parse.h: interface for the Cparse class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_PARSE_H__9F8A343F_5E9E_40DB_A599_38AA6FE71360__INCLUDED_)
#define AFX_PARSE_H__9F8A343F_5E9E_40DB_A599_38AA6FE71360__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "global.h"
class Cparse : public Cglobal
{
/*********************************/
public:
TokenType token;
char * temp_name;
int line0;
static int indentno ;
int fp_num; /*输出时记录token个数的变量*/
Cparse();
virtual ~Cparse();
TreeNode * parse(void);
public:
Cglobal::TreeNode * program(void);
Cglobal::TreeNode * programHead(void);
Cglobal::TreeNode * declarePart(void);
Cglobal::TreeNode * typeDec(void);
Cglobal::TreeNode * typeDeclaration(void);
Cglobal::TreeNode * typeDecList(void);
Cglobal::TreeNode * typeDecMore(void);
void typeId(TreeNode * t);
void typeName(TreeNode * t);
void baseType(TreeNode * t);
void structureType(TreeNode * t);
void arrayType(TreeNode * t);
void recType(TreeNode * t);
Cglobal::TreeNode * fieldDecList(void);
Cglobal::TreeNode * fieldDecMore(void);
void idList(TreeNode * t);
void idMore(TreeNode * t);
Cglobal::TreeNode * varDec(void);
Cglobal::TreeNode * varDeclaration(void);
Cglobal::TreeNode * varDecList(void);
Cglobal::TreeNode * varDecMore(void);
void varIdList(TreeNode * t);
void varIdMore(TreeNode * t);
Cglobal::TreeNode * procDec(void);
Cglobal::TreeNode * procDeclaration(void);
void paramList(TreeNode * t);
Cglobal::TreeNode * paramDecList(void);
Cglobal::TreeNode * param(void);
Cglobal::TreeNode * paramMore(void);
void formList(TreeNode * t);
void fidMore(TreeNode * t);
Cglobal::TreeNode * procDecPart(void);
Cglobal::TreeNode * procBody(void);
Cglobal::TreeNode * programBody(void);
Cglobal::TreeNode * stmList(void);
Cglobal::TreeNode * stmMore(void);
Cglobal::TreeNode * stm(void);
Cglobal::TreeNode * assCall(void);
Cglobal::TreeNode * assignmentRest(void);
Cglobal::TreeNode * conditionalStm(void);
Cglobal::TreeNode * loopStm(void);
Cglobal::TreeNode * inputStm(void);
Cglobal::TreeNode * outputStm(void);
Cglobal::TreeNode * returnStm(void);
Cglobal::TreeNode * callStmRest(void);
Cglobal::TreeNode * actParamList(void);
Cglobal::TreeNode * actParamMore(void);
Cglobal::TreeNode * exp(void); /* 处理表达式函数 */
Cglobal::TreeNode * simple_exp(void); /* 处理简单表达式函数 */
Cglobal::TreeNode * term(void); /* 处理项函数 */
Cglobal::TreeNode * factor(void); /* 处理因子函数 */
Cglobal::TreeNode * variable(void);
void variMore(TreeNode * t);
Cglobal::TreeNode * fieldvar(void);
void fieldvarMore(TreeNode * t );
void syntaxError(char * message);
void match(LexType expected);
/*******************************/
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);
char * copyString(char * s);
void ReadNextToken(TokenType *p);
void printTree(TreeNode *tree);
void printSpaces(void);
void printTab(int tabnum);
};
#endif // !defined(AFX_PARSE_H__9F8A343F_5E9E_40DB_A599_38AA6FE71360__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -