Maxim Likhachev
8eec96a8fc
|
5 years ago | |
---|---|---|
COPYING | 5 years ago | |
CoC.md | 5 years ago | |
README.md | 5 years ago | |
code2graph | 5 years ago | |
example.png | 5 years ago | |
robodoc.rc | 5 years ago |
README.md
Code2Graph
______ __ ___ ______ __
/ ____/___ ____/ /__ /__ \ / ____/________ ____ / /_
/ / / __ \/ __ / _ \__/ // / __/ ___/ __ `/ __ \/ __ \
/ /___/ /_/ / /_/ / __/ __// /_/ / / / /_/ / /_/ / / / /
\____/\____/\__,_/\___/____/\____/_/ \__,_/ .___/_/ /_/
A graph of Tcl code /_/ v 2.0
Построение графа вызовов процедур для исходного кода на языке программирования Tcl.
Зависимости
Программа зависит от следующих пакетов:
- package Tcldot - Пакет предоставляет доступ к API graphviz для создания dot-файла.
- package struct::list - Процедуры для работы со списками.
Использование
code2graph [опции...]
- -h - вывод справки.
- -i - входной файл с Tcl-кодом.
- -t - подпись изображения.
- -o - выходной файл. По умолчанию осуществляется вывод на экран.
- -f - формат. По умолчанию: dot. Может быть ps, mif, hpgl, plain, dot, gif, ismap.
Пример использования
Построение графа вызовов процедур для данной программы:
$ code2graph -t "Code2Graph" -i code2graph.tcl -f gif -o graph.gif
Известные проблемы
- Программа не работает на проектах, разделенных на несколько файлов.
- Код, помещенный в блок namespace eval name {<...>}, выполняется при загрузке в защищенный интерпретатор.
- Команды из namespace ensemble {<...>} не учитываются.
- Глобальные переменные не выводятся, т.к. верхний уровень не выполняется.
- Псевдонимы разделяются на несколько записей в узлах типа record.
Пример визуалицации (frets)
Лицензия
Copyright (C) 2011-2019, Maxim Lihachev, envrm@yandex.ru
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.