A entrada deste processador é C++, sob a forma escrita pelo programador da aplicação e devidamente pré-processado. Além do ficheiro de entrada, o processador aceita uma classe de partida para o processamento, especificada, directa ou indirectamente, pelo programador. A hierarquia é percorrida a partir dessa classe em ambos os sentidos, no das subclasses e no das superclasses, para que seja criada uma imagem da hierarquia em CORBA IDL (CIDL). O resultado de é uma descrição em CIDL de cada classe Line.
A CIDL permite herança múltipla de interfaces, pelo que a tradução da hierarquia de classes C++ para uma hierarquia de interfaces CIDL não apresenta problemas neste aspecto, i.e., é possível replicar integralmente a hierarquia de classes C++ em CIDL, se forem exceptuadas as classes cuja herança é especificada protected ou private. Os problemas ocorrem na representação dos tipos de uma linguagem utilizando os tipos da outra.
Para cada interface gerada incluem-se apenas os métodos públicos de cada classe de entrada. Proceder de outra forma não teria sentido, pois nenhum outro método é invocável a partir de código exterior à classe. O mecanismo friend não é suportado.
A informação relativa a herança virtual na hierarquia original é perdida, assim como a informação relativa a métodos virtuais. Quando se dá a reconversão de CIDL para C++ todos os métodos e superclasses são virtuais. Normalmente, a perda desta informação poderia dar origem a problemas graves na selecção dos métodos a executar (virtual perdido das suas declarações), ou na representação da estrutura interna dos objectos (virtual perdido das especificações de herança). No entanto, neste caso particular, o código gerado a partir de IDL não toma decisões acerca de quais métodos invocar e a estrutura dos próprios objectos não é importante, pois são utilizados apenas como intermediários fornecendo apenas funcionalidade e nenhuns dados.
CIDL contém informação sofre o fluxo dos dados nas definições dos vários métodos de uma interface, nomeadamente, in para dados de entrada, out para os de saída e inout para os bidireccionais. Em C++ não existe este tipo de informação, apenas se pode dizer que um objecto é passado por valor ou por referência (utilizando a notação tipo* ou tipo&). A convenção adoptada no tradutor for a de fazer corresponder qualificadores in à passagem de parâmetros por valor e inout à passagem por referência, embora em alguns casos a aplicação possa ser exclusivamente in e noutros exclusivamente out.