/**
  * Recursive function to generate 
  * @param  CDialectBase $tables [description]
  * @param  CTable $tbl    [description]
  * @param  string $eol    [description]
  */
 private function generateTableDsl($tables, $tbl, $eol = "\n")
 {
     $nullablecols = array();
     $uniquecols = array();
     $tblName = $tbl->getName();
     $tableFormat = $this->tableFormat;
     $this->writtenTables[] = $tblName;
     $fkcolumns = $tbl->getForeignKeyColumns();
     list($tableDslString, $fkDslString) = $this->getDslTextForTable($tbl, $nullablecols, $uniquecols, $fkcolumns);
     $returnText = "[" . $tableFormat($tbl) . "|" . $tableDslString;
     $returnText .= ($fkDslString ? "|" . $fkDslString : null) . "]";
     $this->addForeignKeys($returnText, $tbl, $tables, $nullablecols, $uniquecols);
     return $returnText . $eol;
 }