АнглийскийФранцузскийИспанский

Значок OnWorks

pmccabe - Интернет в облаке

Запустите pmccabe в бесплатном хостинг-провайдере OnWorks через Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS

Это команда pmccabe, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.

ПРОГРАММА:

ИМЯ


pmccabe - вычисляет цикломатическую сложность McCabe или количество строк без комментариев для C и
Программы на C ++

СИНТАКСИС


pmccabe [-bCdfFntTvV?] [файл (ы)]

ОПИСАНИЕ


pmccabe обрабатывает названные файлы или стандартный ввод, если ни один из них не назван. В режиме по умолчанию
он вычисляет статистику, включая цикломатическую сложность МакКейба для каждой функции. В
файлы должны быть либо C (ANSI или K&R), либо C ++.

-? Распечатайте информативное сообщение об использовании.

-v Печатать заголовки столбцов

-V Печать pmccabe номер версии

Комментирование Режим
-d Предназначен для подсчета исходных строк без комментариев с помощью чего-то вроде:

pmccabe -d * .c | grep -v '^ [ ] * $ '| wc -l

Комментарии удаляются, CPP директивы заменены на CPPстроковые литералы
заменяется СТРИНГЛИТЕРАЛ, символьные константы заменяются на ЧАРЛИТЕРАЛ,
полученный исходный код намного проще проанализировать. Это первый шаг, сделанный
pmccabe так что его парсер может быть проще.

Ни один из других вариантов не работает разумно с -d.

Подсчет строк Режим
-n Считает исходные строки без комментариев. Формат вывода идентичен формату
анак программы, за исключением того, что при желании должны быть запрошены заголовки столбцов и итоги.
Если вы хотите, чтобы заголовки столбцов добавляли -v. Если вы хотите добавить итоги -t. Если все, что ты хочешь, это
итоги добавить -T.

Многогранность Режим (По умолчанию)
-C Пользовательский формат вывода - не используйте его.

-c Сообщать о неоткомментированных, непустых строках для каждой функции (и файла) вместо необработанных
количество строк. Внимание который препроцессор Директивы НЕ посчитал.

-b Формат вывода, совместимый с инструментами просмотра ошибок компилятора, которые понимают
«классические» ошибки компилятора. Числовая сортировка по этому формату возможна с использованием:

сортировать -n +1 -t%

-t Распечатать итоги столбца. Обратите внимание, что общее количество строк - это * НЕ * количество не-
закомментированные исходные строки - это то же самое, что и "wc -l".

-T Вывести итоги столбца * ТОЛЬКО *.

-f Включите итоги по файлам вместе с итогами по функциям.

-F Печатайте итоги по файлам, но НЕ по функциям.

анализ
pmccabe игнорирует все CPP директивы препроцессора - вычисление сложности
внешний вид кода, а не сложность после того, как препроцессор изменит код.
Это особенно важно, поскольку такие простые вещи, как GetChar(3) развернуть в макросы, которые
увеличить сложность.

Результат Формат
В стандартный вывод выводится строка для каждой найденной функции вида:

Модифицированная цикломатическая сложность МакКейба
| Традиционная цикломатическая сложность Маккейба
| | # Заявления в функции
| | | Первая линия функции
| | | | # строки в функции
| | | | | имя файла (номер строки определения): функция
| | | | | |
5 6 11 34 27 gettoken.c(35): матчпарен

Столбец 1 содержит цикломатическую сложность, рассчитанную путем добавления 1 (для функции) к
случаи для, if, в то время как, переключатель, &&, ||и ?. В отличие от "нормальной" цикломатики МакКейба
сложность, каждый случай в операторе switch не считается дополнительной сложностью. Этот
обработка операторов переключения и сложности может быть более полезной, чем "нормальная" мера
для оценки усилий по обслуживанию и сложности кода.

Столбец 2 - цикломатическая сложность, рассчитанная "обычным" способом с учетом переключения.
заявления. В частности, он рассчитывается как в столбце 1, но с учетом каждого случаев скорее
чем переключатель и может быть более полезным, чем столбец 1, для оценки усилий по тестированию.

Столбец 3 содержит количество выписок. Он рассчитывается путем добавления каждого появления для,
if, в то время как, переключатель, ?, и точка с запятой внутри функции. Одним из возможных сюрпризов является то, что
для у операторов минимальное количество операторов - 3. Это реалистично, так как для; B;
В) {...} это действительно сокращение для A; в то время как (B) { ... С;}. Количество заявлений внутри
файл - это сумма количества операторов для каждой функции, реализованной в этом
файл, плюс по одному для каждой из этих функций (потому что функции тоже являются операторами), плюс
одно для каждого другого оператора в файловой области (обычно объявления).

Столбец 4 содержит номер первой строки функции. Это не обязательно то же самое
строка, в которой появляется имя функции.

Столбец 5 - это количество строк функции, от числа в столбце 4 до
строка, содержащая закрывающую фигурную скобку.

Последний столбец содержит имя файла, номер строки, в которой встречается имя функции,
и название функции.

ПРИМЕНЕНИЕ


Очевидное применение pmccabe проиллюстрирован следующим, который дает список
«десятка» самых сложных функций:

pmccabe * .c | sort -nr | голова -10

Многие файлы содержат более одной функции C, и иногда бывает полезно извлечь
каждая функция отдельно. matchparen () (см. пример вывода выше) можно извлечь из
gettoken.c путем извлечения 27 строк, начинающихся со строки 34. Это может лечь в основу инструментов
которые работают с функциями вместо файлов (например, используются в качестве интерфейса для Разница(1)).

ДИАГНОСТИКИ


pmccabe возвращает ненулевой статус выхода, если файлы не могут быть открыты и при обнаружении
некоторые ошибки парсинга.

Сообщения об ошибках для стандартной ошибки, обычно объясняющие, что синтаксический анализатор не понимает
что-то, имитирующее классические сообщения об ошибках компилятора C.

ПРЕДУПРЕЖДЕНИЯ


pmccabe сбивает с толку непревзойденные фигурные скобки или круглые скобки, которые иногда встречаются с
поспешное использование CPP директивы. В этих случаях распечатывается диагностика, а сложность
результаты для названных файлов могут быть недостоверными. В большинстве случаев директивы "#ifdef" могут быть
изменен таким образом, чтобы фигурные скобки совпадали. Обратите внимание, что если pmccabe смущен CPP
директиве, самые красивые принтеры тоже будут. В некоторых случаях предварительная обработка с unifdef(1)
может быть уместным.

Подсчет утверждений, возможно, можно улучшить с помощью: подсчета вхождений запятой
оператор, множественные присваивания, присваивания в условных тестах и ​​логические
соединение. Однако, поскольку нет четкого определения оператора из языка или
от людей, которых я опрашивал, подсчет операторов, вероятно, не улучшится. Если у тебя есть
четкое определение. Я буду рад это рассмотреть.

Шаблоны вызывают pmccabeсканер для выхода.

Обидно что Ctags вывод не предусмотрен.

Используйте pmccabe онлайн с помощью сервисов onworks.net


Бесплатные серверы и рабочие станции

Скачать приложения для Windows и Linux

  • 1
    SAGA GIS
    SAGA GIS
    САГА - Автоматизированная система
    Геонаучный анализ - это географический
    Программное обеспечение информационной системы (ГИС) с
    огромные возможности для геоданных
    обработка и анализ ...
    Скачать ГИС САГА
  • 2
    Панель инструментов для Java / JTOpen
    Панель инструментов для Java / JTOpen
    IBM Toolbox for Java / JTOpen — это
    библиотека классов Java, поддерживающая
    клиент/сервер и интернет-программирование
    моделей в систему под управлением OS/400,
    i5/ОС, о...
    Скачать набор инструментов для Java/JTOpen
  • 3
    D3.js
    D3.js
    D3.js (или D3 для документов, управляемых данными)
    это библиотека JavaScript, которая позволяет вам
    для создания динамических интерактивных данных
    визуализации в веб-браузерах. С D3
    вы...
    Скачать D3.js
  • 4
    Shadowsocks
    Shadowsocks
    Быстрый туннельный прокси, который поможет вам
    обход брандмауэров Это приложение
    который также можно получить из
    https://sourceforge.net/projects/shadowsocksgui/.
    Это ха ...
    Скачать Shadowsocks
  • 5
    Темы GLPI
    Темы GLPI
    Скачать выпуск на
    https://github.com/stdonato/glpi-modifications/
    Цветовые темы для GLPI 0.84 и 0.85 Новое
    Модификации для GLPI Это
    приложение, которое c ...
    Скачать темы GLPI
  • 6
    SMPlayer
    SMPlayer
    SMPlayer - бесплатный медиаплеер для
    Windows и Linux со встроенными кодеками
    который также может воспроизводить видео с YouTube. Один
    из наиболее интересных особенностей
    SMPlayer: ...
    Скачать SMPlayer
  • Больше »

Команды Linux

Ad