Files
c_soft/soft/parser.h
2024-11-28 19:11:39 +08:00

56 lines
1.1 KiB
C

#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