Code generators of first kind of are passive ones that are used to guide a user to generate syntactically correct sentences of current level of language. Code generators of the second kind are active generators driven by the output of the first one to generate software components.
IntelliSense or auto-completion technologies are widely used in software integrated development environment (IDE). The quality of the said system differs from a vender to another. The code generator of the first kind plays similar role when used it is called generator instead of aid because the code generated by random selection form the auto-completion options cannot have syntax errors, and it has to able to generate all possible sentences in a language, no more and no less. Most IntelliSense or auto-completion scheme cannot reach that precision at present.
We have made significant progress in various forms at this front. The code generator for the sub-SQL DSL (see above) appears in our end products, like the file system database introduced here, that can intelligently guide an ordinary user to perform complex query, either visually or by using a text editor.
Code generators of second kind are interpreter of the corresponding meta-language. They are either auto-generated by meta-languages at a higher level or manually written or mixed. Code generators are not rare on the market, but most of them are visual user interface based. The ones driven by a meta-language whose scripts are generated by the corresponding generator of the first kind are unaware of by us.