| # 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 | 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 |
| +-----------------------------------------+ |
| | Symbols | |
| +-----------------------------------------+ |
| | |
| V |
| +-----------------------------------------+ +-------------+ |
| | Utils | | Initializer | |
| +-----------------------------------------+ +-------------+ |
| ``` |