Thanks for emailing the Not.hdl file.
Here's what's happening. From your Not.hdl:
CHIP Not {
IN a;
OUT out;
PARTS:
Not(in = a out = nota)
This Not chip is trying to use itself in its definition, which is causing an infinite loop!
The only part that you can use in your Not is the Nand.
Then build your And using only Not and Nand, etc.
Also note that you need ';' at the end of all the part statements.
--Mark