#ifndef parser_h__ #define parser_h__ // c语言语义分析 // 变量类型 typedef enum { VTYPE_VOID = 0 , VTYPE_CHAR = 1 , VTYPE_SHORT = 2 , VTYPE_INT = 3 , VTYPE_PTR = 4 , VTYPE_FUNC = 5 , }variable_type_def; // 语句类型 typedef enum { STYPE_NONE = 0,// 代码文件 STYPE_TYPEDEF = 1 ,// 类型定义 typedef STYPE_VDECLARE = 2 ,// 变量声明 STYPE_FDECLARE = 3 ,// 函数声明 STYPE_STRUCT = 4 ,// 结构体语句 STYPE_ENUM = 5 ,// 枚举语句 STYPE_UNION = 6 ,// 联合体语句 STYPE_FDEF = 7 ,// 函数定义 STYPE_PARLIST = 8 ,// 参数列表 STYPE_BLOCK = 9,// 代码块 }sentence_type_def; // 属性类型 可以组合 typedef enum { ATYPE_VOID = 0 ,// 无属性 ATYPE_STATIC = 1 ,// 静态 ATYPE_CONST = 2 ,//只读 ATYPE_EXTERN = 4 ,// 外部 ATYPE_UNSIGNED = 8,// 无符号 }attr_def; struct token_def; typedef struct _par_node { int sentence_type; int attr_type; token_def* token_list; int token_len; struct _par_node* next; struct _par_node* chid; char name[1024]; }par_node_def; #endif