The structure of Storm is currently:

Code	      Code generation.
Compiler      The Storm compiler itself.
Core	      Core types in Storm. Included in DLL:s as well as the main compiler.
Core/Gen      Template files for the CppTypes preprocessor.
CppTyes	      Preprocessor for C++ code. Extracts the neccessary type information.
doc	      Documentation.
Experiments   C++ sources which are compiled into asm to examine C++ behaviour.
External      External Storm code, not to be committed in the main repository.
Graphics      The graphics library, for loading image files in various formats.
Gui           The Gui library.
Linux         Contains various projects required by Storm on Linux (as submodules).
Main	      Entry-point for the standalone compiler. Produces Storm.exe.
mps	      The MPS garbage collector. This is a Git submodule.
OS	      OS-specific interface, provides threading, generic function calls and more.
Plugin	      Plugins for various editors (currently only Emacs).
root	      Root for Storm code.
scripts	      Various useful scripts. Mostly for automatic releases.
Shared	      Basic shared library, mainly for testing purposes.
Sound	      Sound library, for sound playback.
SoundLib      Libraries used for sound decoding (mp3, ogg and flac are supported at the moment).
Test	      Test cases for all parts of Storm. Alter its behaviour in 'stdafx.h'
Test/Code     Tests for code generation.
Test/Core     Tests for the core Storm classes required for proper operation of the compiler.
Test/Gc	      Tests for the Gc-integration.
Test/Lib      Test library.
Test/OS	      Tests of the OS library.
Test/Storm    Tests for the compiler itself.
TestLib	      The test library used for writing tests.
TestData      Data required for some tests.
Utils	      Generic C++ utilities. A majority of the things here should be moved elsewhere.
