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 |
+-----------------------------------------+ +-------------+