CBlueUI  
C++ 跨平台跨框架的数据可视化工具
载入中...
搜索中...
未找到
SyntaxTree.h 文件参考

struct  syntax_tree_node
 
struct  syntax_info
 
struct  syntax_param_node
 语法参数链表 更多...
 

宏定义

#define AST_EXP
 语法结构树
 
#define INIT_ASTOP_4(op, a, b, c, d)
 
#define IS_ASTOP_4(op, a, b, c, d)   (op).ch[0] == (char)a && (op).ch[1] == (char)b && (op).ch[2] == (char)c && (op).ch[3] == (char)d
 

类型定义

typedef struct syntax_tree_node syntax_tree_node
 
typedef struct syntax_info syntax_info
 

函数

int syntax_tree_insert (syntax_tree_node *entry, syntax_tree_node *parent, syntax_tree_node *prevSlib)
 插入语法节点
 
int syntax_tree_insert_last (syntax_tree_node *entry, syntax_tree_node *parent)
 插入到最后一个子节点
 
void syntax_tree_delete (syntax_tree_node *entry)
 删除节点
 
void syntax_tree_print (syntax_tree_node *ast, int indent)
 打印层级结构
 
void syntax_param_insert (syntax_param_node *entry, syntax_param_node *prev, syntax_param_node *next)
 插入到参数列表
 
void syntax_param_add (syntax_param_node *entry, syntax_param_node *head)
 插入到参数列表最后
 
void syntax_param_list_free (syntax_param_node *head)
 释放链表
 
void insert_param_to_ast (syntax_param_node *head, syntax_tree_node *parent)
 将参数列表转换为树结构
 
void AST_EXP parse_syntax_common (syntax_info *out_syntax, const char *src_txt, bool is_only_lex=false)
 解析自研语法格式
 

宏定义说明

◆ AST_EXP

#define AST_EXP

语法结构树

◆ INIT_ASTOP_4

#define INIT_ASTOP_4 (   op,
  a,
  b,
  c,
 
)
值:
(op).ch[0] = (char)a; \
(op).ch[1] = (char)b; \
(op).ch[2] = (char)c; \
(op).ch[3] = (char)d;

◆ IS_ASTOP_4

#define IS_ASTOP_4 (   op,
  a,
  b,
  c,
 
)    (op).ch[0] == (char)a && (op).ch[1] == (char)b && (op).ch[2] == (char)c && (op).ch[3] == (char)d

类型定义说明

◆ syntax_info

typedef struct syntax_info syntax_info

◆ syntax_tree_node

函数说明

◆ insert_param_to_ast()

void insert_param_to_ast ( syntax_param_node head,
syntax_tree_node parent 
)

将参数列表转换为树结构

◆ parse_syntax_common()

void AST_EXP parse_syntax_common ( syntax_info out_syntax,
const char *  src_txt,
bool  is_only_lex = false 
)

解析自研语法格式

◆ syntax_param_add()

void syntax_param_add ( syntax_param_node entry,
syntax_param_node head 
)

插入到参数列表最后

参数
entry当前节点
head链表头

◆ syntax_param_insert()

void syntax_param_insert ( syntax_param_node entry,
syntax_param_node prev,
syntax_param_node next 
)

插入到参数列表

参数
entry当前节点
prev前向指针
next后继指针

◆ syntax_param_list_free()

void syntax_param_list_free ( syntax_param_node head)

释放链表

◆ syntax_tree_delete()

void syntax_tree_delete ( syntax_tree_node entry)

删除节点

◆ syntax_tree_insert()

int syntax_tree_insert ( syntax_tree_node entry,
syntax_tree_node parent,
syntax_tree_node prevSlib 
)

插入语法节点

参数
entry待插入节点
parent父节点
prevSlib前一个兄弟节点
返回
int 返回0 代表成功

◆ syntax_tree_insert_last()

int syntax_tree_insert_last ( syntax_tree_node entry,
syntax_tree_node parent 
)

插入到最后一个子节点

参数
entry待插入节点
parent父节点
返回
int 返回0 代表成功

◆ syntax_tree_print()

void syntax_tree_print ( syntax_tree_node ast,
int  indent 
)

打印层级结构

参数
ast当前节点
indent缩进等级
鄂公网安备42018502007752 鄂ICP备2024082886
Copyright © 2025 · CBlueStudio 版权所有