syntaxnode.h

来自「用、Visual++6.0 开发的控制台程序」· C头文件 代码 · 共 36 行

H
36
字号

typedef enum { StmtK,ExpK }NodeKind;
typedef enum { IfK,RepeatK,AssignK,ReadK,WriteK }StmtKind;
typedef enum { OpK,ConstK,IdK }ExpKind;

#define MAX_CHILD 3

typedef struct TreeNode{

	struct TreeNode *child[MAX_CHILD];
	struct TreeNode *sibling;
	int lineno;
	NodeKind nodeKind;
	union{ StmtKind stmt; ExpKind exp; } kind;
	union{  int val; char *name;} attr;

	}TreeNode;

void Match(TokenType expected);

TreeNode *StmtNode(StmtKind kind);
TreeNode *ExpNode(ExpKind kind);
void  parseTree(TreeNode *root);
TreeNode *parse();

TreeNode* stmt_sequence();
TreeNode* statement();
TreeNode* if_stmt();
TreeNode* repeat_stmt();
TreeNode* assign_stmt();
TreeNode* read_stmt();
TreeNode* write_stmt();
TreeNode* exp();
TreeNode* simple_exp();
TreeNode* term();
TreeNode* factor();

⌨️ 快捷键说明

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