This patch is a follow up of D96422 and move CharacterType and BoxCharType to
Is this a matter of updating the TableGen backend to forward declare all classes before emitting the content?
you have a non negligible amount of C++ here, consider replacing this with simple calls to static functions implemented in the cpp file. TableGen files don't have all the C++ IDE features...
Can you move the printer/parser to C++ instead? You just have to remove these fields and then you can provide your own definition for CharacterType::parse and CharacterType::print.