Beto, I think you're going to need to make a custom tree builder. I
would suggest restricting the minimum and/or maximum height of nodes
in your logic area with a straightforward GROW algorithm.
You could also modify PTC2 as follows: instead of populating the
remaining horizon spots with terminals, PTC2_MODIFIED might populate
them all with comparators, then pass through and populate again with
terminals and random values.
Ideally you could use the UNIFORM algorithm, which should suit you
almost perfectly. But unfortunately I think it's suffering from some
bit-rot, or so I'm told. And the typed version (which I built for ECJ
based on the untyped version in the literature) is quite complex --
and complex to debug. :-(