Expanded the source location code to handle multiple source locations for a scope (mostly needed for C++!)