LINUX.ORG.RU

Генерация классов на лету в Tcl

 ,


0

1

Есть Tcl 8.6, со встроенным TclOO.

Задача такова, есть команда в Tcl, например

proc generate-class {n} {
    oo::class create my-cool-class-$n {
          # Тело класса зависит от n
          # Для простоты это будет обычный puts
          puts $n
    }
}

Можно сделать так

proc generate-class {n} {
    oo::class create my-cool-class-$n "
          # Теперь нам нужно еще и экранирование
          puts $n
    "
}

Есть ли более элегантный способ решения задачи? upvar ругается

upvar won't create namespace variable that refers to procedure variable

Ответ на вопрос не сильно критичен, исходную задачу я переформулировал без необходимости упарываться тяжелыми веществами.

★★★★★

Ответ на: комментарий от buddhist

Дело не в обьеме кода, а в эффективности кодогенерации. Если что простое, то хоть format используйте. А там хоть xslt, хоть самодельный или внешний шаблонизатор/макропроцессор.

Лучше кстати что нить внешнее-у tcl «quoting hell» очень легкодоступен. Какойнить {*}$n внутри шаблона будет вызывть массу эмоций.

MKuznetsov ★★★★★ ()
Ответ на: комментарий от MKuznetsov

у tcl «quoting hell» очень легкодоступен

Ага, постоянно одергиваю себя :)

buddhist ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.