⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tree.h

📁 使用yacc和lex编写的cmm语言的词法分析和语法分析程序.
💻 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 + -