Skip to content

aizikovich4/TensorAnalyser

Repository files navigation

TensorAnalyser

build steps:

  1. in directory with source - mkdir build
  2. cd build
  3. cmake ..
  4. make
  5. ./Tensor_Analyzer ~/projects/TensorAnalyser/test/ -I ~/projects/TensorAnalyser/test/include/ - as example

example output: "/home/baizikovich/projects/TensorAnalyser/test/1.cpp" header1.hpp header2.hpp header6.hpp(!) "/home/baizikovich/projects/TensorAnalyser/test/2.cpp" header1.hpp(!) header2.hpp(!) header6.hpp gcc version - 5.4.0 boost version - 1.58.0

Check it only on Ubuntu 16, windows - did not checked.

Формулировка задачи

Нужно написать анализатор файлов исходного кода на С++. Программа должна выводить дерево зависимостей и частоты включений файлов. Если найдены включения несуществующих файлов, то программа должна вывести пометку «(!)» после имени файла. В директории с исходными кодами могут быть вложенные папки (то есть обход должен производиться рекурсивно). Файлы имеют расширения ".h" и ".cpp" Требования к выполнению задачи

  1. Задача выполняется на С++ (стандарт C++03 или C++11 на выбор)
  2. Разрешается (и приветствуется) использование стандартной библиотеки языка С, стандартной библиотеки шаблонов (STL) и библиотеки BOOST
  3. Программа должна являться консольным приложением
  4. Программа должна собираться под Windows при помощи компилятора Microsoft Visual C++ (желательно MSVC 2010) и под Linux – с помощью компилятора GCC.
  5. Решение должно состоять из документа, описывающего реализацию, исходных кодов программы и исполняемого модуля, демонстрирующего работу класса. Входные параметры В качестве аргументов командной строки получает путь к каталогу с исходниками и пути для поиска заголовочных файлов (то есть файлы, включенные директивой вида #include <a.h> должны искаться в каталогах, указанных в параметрах командной строки) analyser <sources path> [options] Опции: -I – путь для поиска исходных файлов Пример вызова программы: analyser c:\mysources\ -I c:\mysources\includes -I c:\mylibrary (программа должна проанализировать исходники в каталоге c:\mysources, используя следующие пути для поиска заголовочных файлов: "c:\mysources\include" и "c:\mylibrary") Вывод результата Программа должна выводить дерево зависимостей исходных файлов и список файлов с частотами их включения в другие файлы. Список частот включений файлов должен быть отсортирован в порядке убывания частоты; записи с одинаковым значением частоты сортируются по алфавиту. Список частот отделён от дерева зависимостей пустой строкой.

About

my testing task for Tensor company

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published