pmccabe - Online w chmurze

To jest polecenie pmccabe, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online Windows lub emulator online MAC OS

PROGRAM:

IMIĘ


pmccabe - oblicz złożoność cyklomatyczną McCabe'a lub liczbę linii bez komentarza dla C i
Programy C++

STRESZCZENIE


pmccabe [-bCdfFntTvV?] [pliki)]

OPIS


pmccabe przetwarza nazwane pliki lub standardowe wejście, jeśli żadne nie są nazwane. W trybie domyślnym
oblicza statystyki, w tym złożoność cyklomatyczną McCabe dla każdej funkcji. ten
oczekuje się, że pliki będą miały format C (ANSI lub K&R) lub C++.

-? Wydrukuj informacyjną wiadomość o użytkowaniu.

-v Drukuj nagłówki kolumn

-V pmccabe Numer wersji

Odkomentowanie tryb
-d Ma na celu pomóc zliczyć niekomentowane wiersze źródłowe za pomocą czegoś takiego:

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

Komentarze są usuwane, Cpp dyrektywy są zastępowane przez Cpp, literały ciągów to
zastąpiony przez STRINGLITERALNY, stałe znakowe są zastępowane przez CHARLITERALNY,
wynikowy kod źródłowy jest znacznie łatwiejszy do przeanalizowania. To pierwszy krok wykonywany przez
pmccabe aby jego parser mógł być prostszy.

Żadna z pozostałych opcji nie działa rozsądnie -d.

Liczenie linii tryb
-n Liczy nieskomentowane wiersze źródłowe. Format wyjściowy jest identyczny z formatem
anak z wyjątkiem tego, że nagłówki kolumn i sumy muszą być wymagane w razie potrzeby.
Jeśli chcesz dodać nagłówki kolumn -v. Jeśli chcesz sumy dodać -t. Jeśli wszystko czego chcesz to
sumy dodaj -T.

Złożoność tryb (Domyślne)
-C Niestandardowy format wyjściowy — nie używaj go.

-c Zgłoś nieskomentowane, niepuste wiersze na funkcję (i plik) zamiast surowych
Liczba linii. Note że preprocesor Dyrektywy jest NIE liczone.

-b Format wyjściowy zgodny z narzędziami do przeglądania błędów kompilatora, które rozumieją
"klasyczne" błędy kompilatora. Sortowanie numeryczne w tym formacie jest możliwe przy użyciu:

sortuj -n +1 -t%

-t Wydrukuj sumy kolumn. Zauważ, że całkowita liczba wierszy to *NIE* liczba nie-
skomentowane wiersze źródłowe - to to samo, co zostałoby zgłoszone przez "wc -l".

-T Wydrukuj sumy kolumn *TYLKO*.

-f Uwzględnij sumy dla pliku wraz z sumami dla funkcji.

-F Drukuj sumy dla plików, ale NIE sumy dla funkcji.

Rozbiór gramatyczny zdania
pmccabe ignoruje wszystko Cpp dyrektywy preprocesora - obliczanie złożoności
wygląd kodu, a nie złożoność po zniekształceniu kodu przez preprocesor.
Jest to szczególnie ważne, ponieważ proste rzeczy, takie jak dostaćchar(3) rozwiń do makr, które
zwiększyć złożoność.

Wydajność utworzony
Na standardowe wyjście wypisywana jest linia dla każdej znalezionej funkcji w postaci:

Zmodyfikowana złożoność cyklomatyczna McCabe
| Tradycyjna złożoność cyklomatyczna McCabe
| | # Oświadczenia w funkcji
| | | Pierwsza linia funkcji
| | | | # linii w funkcji
| | | | | nazwa pliku (numer wiersza definicji): funkcja
| | | | | |
+5 (6) 11 34 27 gettoken.c(35): partner meczowy

Kolumna 1 zawiera złożoność cyklomatyczną obliczoną przez dodanie 1 (dla funkcji) do
wystąpienia dla, if, Podczas, wyłącznik, &&, ||, ?. W przeciwieństwie do „normalnego” cyklomatycznego McCabe
złożoność, każdy przypadek w instrukcji switch nie jest liczony jako dodatkowa złożoność. Ten
traktowanie oświadczeń o zmianie i złożoności może być bardziej przydatne niż „normalna” miara
do oceny prac konserwacyjnych i trudności w kodzie.

Kolumna 2 to złożoność cyklomatyczna obliczona w „zwykły” sposób w odniesieniu do przełącznika
sprawozdania. W szczególności jest obliczany jak w kolumnie 1, ale licząc każdy walizka raczej
niż wyłącznik i mogą być bardziej przydatne niż kolumna 1 do oceny pracochłonności testowania.

Kolumna 3 zawiera licznik wyciągów. Oblicza się ją, dodając każde wystąpienie dla,
if, Podczas, wyłącznik, ?i średnik w funkcji. Jedną z możliwych niespodzianek jest to, że
dla oświadczenia mają minimalną liczbę oświadczeń równą 3. Jest to realistyczne, ponieważ dla; B;
C){...} to naprawdę skrót od A; Podczas (B) { ... C;}. Liczba oświadczeń w ciągu
plik jest sumą liczby instrukcji dla każdej funkcji zaimplementowanej w tym pliku
file, plus po jednym dla każdej z tych funkcji (ponieważ funkcje też są instrukcjami), plus
po jednej dla każdej instrukcji o zasięgu plikowym (zwykle deklaracje).

Kolumna 4 zawiera numer pierwszego wiersza funkcji. To niekoniecznie jest to samo
wiersz, w którym pojawia się nazwa funkcji.

Kolumna 5 to liczba wierszy funkcji, od liczby w kolumnie 4 do
linia zawierająca zamykający nawias klamrowy.

Ostatnia kolumna zawiera nazwę pliku, numer wiersza, w którym występuje nazwa funkcji,
i nazwę funkcji.

APLIKACJE


Oczywiste zastosowanie pmccabe ilustruje to, co przedstawia listę
„dziesięć najlepszych” najbardziej złożonych funkcji:

pmccabe *.c | sortuj -nr | głowa -10

Wiele plików zawiera więcej niż jedną funkcję C i czasami przydałoby się wyodrębnić
każdą funkcję osobno. para dopasowująca () (patrz przykładowy wynik powyżej) można pobrać z
gettoken.c przez wyodrębnienie 27 wierszy zaczynających się od wiersza 34. Może to stanowić podstawę narzędzi
które operują na funkcjach zamiast na plikach (np. użyj jako front-end dla diff(1)).

DIAGNOSTYKA


pmccabe zwraca niezerowy kod zakończenia, jeśli pliki nie mogły zostać otwarte i po napotkaniu
niektóre błędy parsowania.

Komunikaty o błędach do standardowego błędu, zwykle wyjaśniające, że parser jest zdezorientowany
coś, naśladować komunikaty o błędach klasycznego kompilatora C.

OSTRZEŻENIA


pmccabe jest zdezorientowany przez niedopasowane nawiasy klamrowe lub nawiasy, które czasami występują z
pospieszne użycie Cpp dyrektywy. W takich przypadkach drukowana jest diagnostyka i złożoność
wyniki dla wymienionych plików mogą być niewiarygodne. W większości przypadków dyrektywy „#ifdef” mogą być
zmodyfikowane tak, aby pasowały nawiasy klamrowe. Zauważ, że jeśli pmccabe jest zdezorientowany przez Cpp
dyrektywy, większość ładnych drukarek też będzie. W niektórych przypadkach wstępne przetwarzanie za pomocą unifdef(1)
może być odpowiednie.

Liczenie zdań można prawdopodobnie poprawić poprzez: liczenie wystąpień przecinka
operator, przypisania wielokrotne, przypisania w ramach testów warunkowych i logiczne
spójnik. Jednak ponieważ nie ma wyraźnej definicji oświadczenia z języka lub
od osób, z którymi rozmawiałem, liczenie wypowiedzi prawdopodobnie nie ulegnie poprawie. Jeśli masz
wyraźna definicja Chętnie to rozważę.

Szablony powodują pmccabeskanera do wyjścia.

Szkoda, że tagi dane wyjściowe nie są dostarczane.

Korzystaj z pmccabe online za pomocą usług onworks.net



Najnowsze programy online dla systemów Linux i Windows