If you want to know, which part of code is responsible for what function, look here.
The code is thematically divided into directories. The top-level directory contains only main.c file, which just starts everything as needed.
Each directory contains a module (.c and .h files) with the same name as the directory. That one coordinates functions of the whole directory — it has directory global initialization function, which in turn calls initialization functions of each module, and the like.
This directory contains miscellaneous utilities and routines, like linked lists, memory management, debugging support.
This one holds routines for transforming source scripts to syntax trees.
Contains definition of syntax structures and evaluation. This one is kind of heart of remake — it makes the language alive, contexts and variables live here.
This one holds the hierarchy builder. It uses parser and language evaluator to build hierarchy of contexts from source scripts.
Oversees the compilation, what is called and when.
This holds routines cooperating with outside world — calling external programs, coroutines will be implemented here (kind of userland semi-threads, to allow parallel compilation).
Cache stores data between runs of remake. It is somehow buggy.