📄 tree.h
字号:
#ifndef _TREE_H#define _TREE_H#include <stdio.h>#define MAX_HASH_TABLE 1009#define DEFTREECODE(SYM, STRING, TYPE, NARGS) SYM,enum tree_code { IDENTIFIER_NODE, NEGATE_EXPR, ADDR_EXPR, TRUTH_NOT_EXPR, CONVERT_EXPR, REAL_CST, INTEGER_CST, LAST_AND_UNUSED_TREE_CODE};#undef DEFTREECODEstruct tree_common { union tree_node * chain; union tree_node * type; enum tree_code code;};#define TREE_CODE(NODE) ((enum tree_code)(NODE)->common.code)#define TREE_SET_CODE(NODE,VALUE) ((NODE)->common.code = (int)(VALUE))#define TREE_TYPE(NODE) ((NODE)->common.type)#define TREE_CHAIN(NODE) ((NODE)->common.chain)struct tree_int_cst { char common[sizeof(struct tree_common)]; int value;};struct tree_real_cst { char common[sizeof(struct tree_common)]; double value;};struct tree_identifier { char common[sizeof(struct tree_common)]; char * name;};struct tree_vec { char common[sizeof(struct tree_common)]; int length; union tree_node * a[1];};struct tree_string { char common[sizeof(struct tree_common)]; int length; char * pointer;};struct tree_complex { char common[sizeof(struct tree_common)]; union tree_node * real; union tree_node * img;};struct tree_exp { char common[sizeof(struct tree_common)]; int complexity; union tree_node * operands[1];};struct tree_type { char common[sizeof(struct tree_common)]; union tree_node * values; union tree_node * size; union tree_node * pointer_to; union tree_node * reference_to;};struct tree_decl { char common[sizeof(struct tree_common)]; char * filename; int linenum; union tree_node * size; union tree_node * name; union tree_node * context; union tree_node * arguments; union tree_node * result; union tree_node * initial; char * print_name;};struct tree_list { char common[sizeof(struct tree_common)]; union tree_node * purpose; union tree_node * value;};union tree_node { struct tree_common common; struct tree_int_cst int_cst; struct tree_real_cst real_cst; struct tree_string string; struct tree_complex complexs; struct tree_identifier identifier; struct tree_decl decl; struct tree_type type; struct tree_list list; struct tree_vec vec; struct tree_exp exp;};typedef union tree_node * tree;static tree hash_table[MAX_HASH_TABLE];extern tree make_node (enum tree_code code);#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -