Create a single separate file that contains a grammar rule that lists all alternative subgrammars for atomic component types. The core grammar can the simply include this grammar file.
This way, we do not need to change the core grammar, when we add a new component type.