Попробовал перенести текст программы просмотрщика файлов, созданных в DRAKON Editor в схемы этого же формата.
В принципе все получилось, но столкнулся с некоторыми сложностями.
Так, при обращении к БД строчка может быть о-о-о-чень длинной. Поэтому для того, чтобы сделать текст читаемым, я его разбиваю на строчки, например так:
Код:
view eval { select * from vitems where branch_id =:branch_id and type = "branch"} val {set x [expr $val(x)-$shift]
if {$x > $lastbranchx} then {set lastbranchx $x}
set x1 [expr $x + $val(w)]
if {$x1 > $right_x} then {set right_x $x1}
draw_branch $val(text) $x $val(y) $val(h) $val(w)}
Но если эту строчку буквально перенести в DRAKON Editor в икону Action - вылетает ошибка. Приходиться все писать в одну строчку. В результате простейшая схема выглядит абсолютно неудобоваримо (пример - на картинке внизу). Сложные схемы создавать в такой ситуации - бессмысленно. Мне кажется, надо продумать возможность переноса длинных строк в иконе.
Второй момент, сопровождающийся генерацией ошибок при исполнении кода, вылетел, на который я не обращал внимания: в tcl если использовать switch, то текстовой блок не надо брать в кавычки:
Код:
proc draw {type text text2 x y h w a color} {
switch $type {
beginend {draw_beginend $text $x $y $h $w $a}
branch {draw_branch $text $x $y $h $w}
address {draw_address $text $x $y $h $w}
...
default {draw_action "Не могу нарисовать" $x $y $h $w}
}
}
Однако в редакторе при использовании иконы "Выбор" генерируется последовательность операторов IF поэтому буквальный перенос кода из текста в схему дает ошибку, в иконе вариант в моем случае необходимо указывать не beginend, а "beginend". Если это не баг, а фича - ее нужно, наверное, задокументировать, чтобы народ не спотыкался на подобных вещах.