
Building gcc with --HEAD results in most of the executables not having a version suffix, e.g. Building/installing gcc 6 would result in gcc-6, g++-6, etc. being installed, while building/installing gcc --HEAD would result in gcc-, g++-, etc. being installed. The lack of a version suffix prevented brew from recognizing a valid gcc install, resulting in brew instructing users to install gcc before building certain formulae even though gcc is installed. A patch to the gcc formula makes the version number for --HEAD builds the major version number of the stable version + 1 (7 at this time). This patch teaches brew to recognize current --HEAD builds as valid compilers.
Homebrew's Formula API
This is the (partially) documented public API for Homebrew.
The main class you should look at is the {Formula} class (and classes linked from there). That's the class that's used to create Homebrew formulae (i.e. package descriptions). Assume anything else you stumble upon is private.
You may also find the Formula Cookbook and Ruby Style Guide helpful in creating formulae.
Good luck!