dawn-cmake/docs/tint/layering.md

69 lines
2.9 KiB
Markdown

# Tint Source Layering
The `BUILD.gn` is setup with small source units for various components
in Tint. The hierarchy of sources almost matches to folder structure in
tint (except for `base` which is a mix of things in `src/tint` and
`src/tint/util`.
```
+-----------------------------------------+
| Readers | Writers |
+-----------------------------------------+
|
V
+-----------------------------------------+
| Val | Demangler | Inspector | Transform |
+-----------------------------------------+
| |
+--------------+------------------------------+
| |
V V
+-----------------------------------------+ +-----------+
| AST | | Utils IO |
+-----------------------------------------+ +-----------+
| |
V |
+-----------------------------------------+ |
| Program | Sem | |
+-----------------------------------------+ |
| |
V |
+-----------------------------------------+ |
| AST Hdrs | |
| (program and sem cause a cycle) | |
+-----------------------------------------+ |
| |
V |
+-----------------------------------------+ |
| Clone Context Hdrs | |
| (program and sem cause a cycle) | |
+-----------------------------------------+ |
| |
V |
+-----------------------------------------+ |
| Constant | |
+-----------------------------------------+ |
| |
V |
+-----------------------------------------+ |
| Types | |
+-----------------------------------------+ |
| |
V |
+-----------------------------------------+ |
| Builtin | |
+-----------------------------------------+ |
| |
|------------------------------+
V
+-----------------------------------------+
| Base |
+-----------------------------------------+
|
V
+-----------------------------------------+ +-------------+
| Text (unicode) | | Initializer |
+-----------------------------------------+ +-------------+
```