TreeNormalizer
and NodeNormalizer
can be implemented to introduce custom normalization steps.
CompoundNormalizer
and NormalizerPass
use to
composite pattern to assemble normalization steps freely. All other classes
are concrete normalization steps.