Автоматизированный конвейер для студентов, превращающий исходный код в идеальные блок-схемы строго по ГОСТ 19.701-90 и чистый псевдокод. Больше никакой ручной отрисовки стрелочек в Visio или Draw.io. Генерируй схемы в один клик и получай свои заслуженные 9 и 10 на лабах!
- Полная всеядность: Автоматически распознает и парсит файлы на C++ (
.cpp,.hpp) и Python (.py). - Тотальный клининг текста: Вырезает плюсовый и питонячий мусор (
int main(),std::,endl,;). - ГОСТ-оформление: Автоматически форматирует ввод/вывод в стиле
Ввод: .../Вывод: ..., разворачивает инкременты (i++->i = i + 1) и ставит красивые математические знаки (×,÷,≠).
pip install git+https://github.com/sc0dyx/pseudogen.gitИли другую версию (которую вам надо)
pip install git+https://github.com/sc0dyx/pseudogen.git@0.2.2Обратите внимание, что вы не сможете поставить версию ниже 0.2.2, т.к. они утеряны и автор их не тегал. Но вам они и не нужны, т.к. версии ниже 0.2.2 багованные (рабочие на коленках) и в реальных задачах бесполезны
pseudogen -i input.cpp -g default.pgen -o output.txt -t pseudocodepseudogen -i лаба.cpp -o schema.json -t blockscheme(Для Python-файлов просто скорми .py вместо .cpp — скрипт сам переключит парсер под капотом).
- Генератор блок-схем из кода на Python и C++. Изначально создавался для автоматизации рутинного оформления лабораторных работ по программированию.
- Многие преподаватели требуют, чтобы программа имела ровно одну точку входа и одну точку выхода – никаких скрытых выходов через
returnв середине функции, никаких преждевременных завершений. Кроме того, в учебных задачах часто запрещены операторыbreakиcontinue– логика должна быть выражена только через структурыif-elif-elseи циклы с условиями. Эти правила восходят к принципу SISO (Single Input, Single Output) — «один вход, один выход», который был сформулирован в конце 1960-х годов и лёг в основу структурного программирования.
❌ Не поддерживаются break и continue – генератор ожидает, что выход из цикла происходит только по условию.
❌ Не поддерживается return в середине функции – предполагается единственная точка выхода.
❌ Ограниченная поддержка C++ – парсер C++ всё ещё уступает Python-версии
❌ Нет автоматического выравнивания блоков – координаты блоков пока фиксированы, схему может потребоваться «разъехать» вручную в редакторе.
❌ Нет поддержи do while в с++
❌ Нет поддержки функций
- Сгенерируй JSON-файл схемы с помощью команды выше.
- Зайди на сайт: Редактор блок-схем programforyou.ru
- И загрузи свой JSON.
- Забирай идеальную схему со стрелочками!
Написал я вот такой код на С++
#include <iostream>
int main(){
std::cout << "Начало счетчика" << std::endl;
for (int i = 0; i < 10; i++){
std::cout << i << std::endl;
}
std::cout << "Конец счётчика" << std::endl;
return 0;
}файл назвал example.cpp
⚙ scodyx@localhost ~/git/pseudogen main python3 -m src.pseudogen -i example.cpp -o output.json -t blockscheme
[C++] Diagram has been saved as output.json
Upload it here: https://programforyou.ru/block-diagram-redactor
⚙ scodyx@localhost ~/git/pseudogen main теперь загружаем файл output.json на сайт
и вот результат
Проект вобрал в себя лучшие идеи из заброшенных студенческих репозиториев и взлетел благодаря кодовой базе истинного мастера кодинга:
- GachiLord (ГачиЛорд) — настоящий Dungeon Master статического анализа. Спасибо ему за базовую логику парсинга, реализованную в проектах Python2FlowChart и PyChart. Оригинальный код перенёс суровый fisting со стороны Python 3, был полностью очищен от багов с импортами, избавлен от циклического наследования и адаптирован под монолитную архитектуру. Boy Next Door одобряет! ♂️ 👑
Сделано студентом для студентов. Пользуйтесь, кайфуйте и закрывайте дедлайны по щелчку пальцев! 🍻
Планируем переписать python код на С++ (скоро ... )