Separate generator parsers from UniformParser

& add CaveParser