SimpleTorrent
首页
相关页面
结构体
文件
文件列表
全局定义
bparser.h
浏览该文件的文档.
1
6
#ifndef BPARSER_H
7
#define BPARSER_H
8
9
#include <stddef.h>
10
#include <inttypes.h>
11
15
enum
BNodeType
16
{
17
B_NA,
18
B_STR,
19
B_INT,
20
B_LIST,
21
B_DICT,
22
NR_BTYPE
23
};
24
39
struct
BNode
40
{
41
enum
BNodeType
type
;
42
union
43
{
44
struct
{
45
struct
BNode
*
l_item
;
46
struct
BNode
*
l_next
;
47
};
48
struct
{
49
char
*
d_key
;
50
struct
BNode
*
d_val
;
51
struct
BNode
*
d_next
;
52
};
53
struct
{
54
size_t
s_size
;
55
char
*
s_data
;
56
};
57
long
i
;
58
};
59
char
*
start
;
60
char
*
end
;
61
};
62
63
// 解析 B 编码数据获取抽象语法树
64
struct
BNode
*
bparser
(
char
*bcode);
65
66
// 释放 B 编码的抽象语法树
67
void
free_bnode
(
struct
BNode
**pbnode);
68
69
#endif // BPARSER_H
BNode::start
char * start
结点在源缓冲区的开始处
Definition:
bparser.h:59
BNode::type
enum BNodeType type
类型标签
Definition:
bparser.h:41
BNode::l_next
struct BNode * l_next
余下列表项
Definition:
bparser.h:46
BNode::s_size
size_t s_size
串长度
Definition:
bparser.h:54
BNode::s_data
char * s_data
串内容(深拷贝)
Definition:
bparser.h:55
BNode::end
char * end
结点在源缓冲区的结束处
Definition:
bparser.h:60
free_bnode
void free_bnode(struct BNode **pbnode)
释放 B 编码的抽象语法树
Definition:
bparser.c:302
BNode
B 编码结点
Definition:
bparser.h:39
BNode::d_key
char * d_key
字典键(在 B 编码中是串,但是可以保证是字符串)
Definition:
bparser.h:49
BNode::l_item
struct BNode * l_item
列表项
Definition:
bparser.h:45
BNode::d_next
struct BNode * d_next
余下字典项
Definition:
bparser.h:51
bparser
struct BNode * bparser(char *bcode)
解析 B 编码
Definition:
bparser.c:284
BNodeType
BNodeType
B 编码语法结点类型标签
Definition:
bparser.h:15
BNode::i
long i
整型
Definition:
bparser.h:57
BNode::d_val
struct BNode * d_val
字典值
Definition:
bparser.h:50
制作者
1.8.11