A typical project structure for a program building on a class library is to have a root project containing the project specific source files an to load the library project as subproject. Library projects are frequently trees of projects themselves.
Whenever a project is opened or when a file or a subproject is loaded into the current project its source code is analyzed and the information about the symbols defined therein is stored in Sniff's symbol table.