One option is MetaEdit+ (www.metacase.com) as this tool comes with a repository storing not only the metamodel, covering abstract syntax (like XMI), but it also stores concrete syntax (diagram, matrix, table) as well as generators and other model checking reports. Combination of these is relevant as just storing abstract syntax is not normally enough.
The evaluation version of the tool includes a repository with over 1000 language constructs and generators for various languages. Perhaps most important, and different to other tools, is that you can also work with the models at the same time when inspecting, or even modifying, the metamodels. Based on our experience having immediate access for both models and metamodels makes language design and testing much easier than working with metamodels only. It also significantly reduces the effort needed to define languages and build tools for it (days, not months or years). I hope this helps.