Я в прошлом году делал генератор исходника текста. Код, отвечающий за генерацию, выглядит примерно так:

## Код:
```
(* Browse. Создание и заполнение таблицы *)
      proc.Sign(f, 'Browse', '', export);
      proc.Begin;
         proc.WriteOp('NEW('+interactor+')');
         proc.WriteOp(interactor+'.NewTitle(1)');
         proc.WriteOp('UpdateView');
         proc.WriteComment('Форма открывается строго после создания таблицы!');
         proc.WriteOp('StdCmds.OpenAuxDialog("Gen\Rsrc\TableService", "TableService")');
      proc.End;
```


Плюс в том, что не требуется дополнительный язык. Минус - много букв