86 lines
920 B
Markdown
86 lines
920 B
Markdown
|
|
# 你要做什么
|
||
|
|
|
||
|
|
解析文件代码太复杂,不统一。希望能制作出新的文件语言,能方便的解析所有文件,支持序列化与反序列化。
|
||
|
|
|
||
|
|
- 能快速高效的解析文件OBJ、XML、JSON...
|
||
|
|
- 占用空间小,
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
# 数据内容
|
||
|
|
|
||
|
|
数据拆分与合并
|
||
|
|
|
||
|
|
## 二进制流
|
||
|
|
|
||
|
|
- 数据分段
|
||
|
|
- 数据分层
|
||
|
|
|
||
|
|
## 语言描述
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
## 内存对象
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
# 数据解析
|
||
|
|
|
||
|
|
## 词法解析
|
||
|
|
|
||
|
|
## 语法解析
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
# 数据操作
|
||
|
|
|
||
|
|
## 序列化
|
||
|
|
|
||
|
|
- 对象顺序 + 数据对象 = 二进制流
|
||
|
|
|
||
|
|
## 反序列化
|
||
|
|
|
||
|
|
- 二进制流
|
||
|
|
- 数据地址+数据类型 = 数据对象
|
||
|
|
|
||
|
|
# 数据对象
|
||
|
|
|
||
|
|
## 数据类型
|
||
|
|
|
||
|
|
- 基础类型
|
||
|
|
- 数据大小固定
|
||
|
|
- 依赖类型
|
||
|
|
- 数据大小与数据内容有关
|
||
|
|
|
||
|
|
## 复合对象
|
||
|
|
|
||
|
|
- 数据类型组合得到对象
|
||
|
|
|
||
|
|
# 数据语言
|
||
|
|
|
||
|
|
## 对象描述
|
||
|
|
|
||
|
|
## 顺序描述
|
||
|
|
|
||
|
|
## 解析描述
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
# 示例
|
||
|
|
|
||
|
|
## XML
|
||
|
|
|
||
|
|
```python
|
||
|
|
COFF ==> Header DataSet
|
||
|
|
Header ==>
|
||
|
|
```
|
||
|
|
|
||
|
|
## JSON
|
||
|
|
|
||
|
|
```python
|
||
|
|
```
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
## INI
|