EnglishFranceseSpagnolo

Favicon di OnWorks

pmccabe - Online nel cloud

Esegui pmccabe nel provider di hosting gratuito OnWorks su Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

Questo è il comando pmccabe che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

PROGRAMMA:

NOME


pmccabe - calcola la complessità ciclomatica McCabe o il conteggio delle righe non commentate per C e
Programmi C++

SINOSSI


pmccabe [-bCdfFntTvV?] [File)]

DESCRIZIONE


pmccabe elabora i file nominati o l'input standard se non ne viene nominato nessuno. In modalità predefinita
calcola statistiche inclusa la complessità ciclomatica McCabe per ogni funzione. Il
i file dovrebbero essere C (ANSI o K&R) o C++.

-? Stampa un messaggio informativo sull'utilizzo.

-v Stampa intestazioni di colonna

-V Stampa pmccabe numero di versione

De-commentare modo
-d Destinato ad aiutare a contare le righe di origine non commentate tramite qualcosa come:

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

I commenti vengono rimossi, cpp le direttive sono sostituite da cpp, i letterali stringa sono
sostituito da STRINGLETTERALE, le costanti di carattere sono sostituite da CARLITERALE.
il codice sorgente risultante è molto più facile da analizzare. Questo è il primo passo compiuto da
pmccabe in modo che il suo parser possa essere più semplice.

Nessuna delle altre opzioni funziona in modo ragionevole con -d.

Conteggio righe modo
-n Conta le righe di origine non commentate. Il formato di output è identico a quello del
anak programma tranne che le intestazioni di colonna e i totali devono essere richiesti se lo si desidera.
Se vuoi aggiungere le intestazioni di colonna -v. Se vuoi aggiungere i totali -t. Se tutto ciò che vuoi è
somma totale -T.

Complessità modo (Default)
-C Formato di output personalizzato: non usarlo.

-c Riporta le righe non commentate e non vuote per funzione (e file) invece del raw
numero di righe. Note: che pre-processore direttive sono NON contato.

-b Formato di output compatibile con gli strumenti di navigazione degli errori del compilatore che comprendono
Errori "classici" del compilatore. L'ordinamento numerico su questo formato è possibile utilizzando:

ordina -n +1 -t%

-t Stampa i totali delle colonne. Nota che il numero totale di righe è *NON* il numero di non-
righe sorgente commentate - è lo stesso che sarebbe riportato da "wc -l".

-T Stampa i totali delle colonne *SOLO*.

-f Includere i totali per file insieme ai totali per funzione.

-F Stampa i totali per file ma NON i totali per funzione.

parsing
pmccabe ignora tutto cpp direttive del preprocessore - calcolo della complessità del
l'aspetto del codice piuttosto che la complessità dopo che il preprocessore ha alterato il codice.
Questo è particolarmente importante perché cose semplici come getchar(3) espandere in macro che
aumentare la complessità.

Uscita Formato
Viene scritta una riga sullo standard output per ogni funzione trovata della forma:

Complessità ciclomatica McCabe modificata
| Complessità ciclomatica tradizionale McCabe
| | # Dichiarazioni in funzione
| | | Prima linea di funzione
| | | | # righe in funzione
| | | | | nome file (numero della riga di definizione): funzione
| | | | | |
5 6 11 34 27 gettoken.c(35): matchparent

La colonna 1 contiene la complessità ciclomatica calcolata aggiungendo 1 (per la funzione) al
occorrenze di per, if, while, interruttore, &&, || e ?. A differenza della "normale" ciclomatica McCabe
complessità, ogni caso in un'istruzione switch non viene conteggiato come complessità aggiuntiva. Questo
il trattamento delle dichiarazioni di commutazione e della complessità può essere più utile della misura "normale"
per giudicare lo sforzo di manutenzione e la difficoltà del codice.

La colonna 2 è la complessità ciclomatica calcolata nel modo "consueto" per quanto riguarda l'interruttore
dichiarazioni. Nello specifico viene calcolato come nella colonna 1 ma contando ciascuno Custodie piuttosto
rispetto interruttore e può essere più utile della colonna 1 per giudicare lo sforzo di test.

La colonna 3 contiene un conteggio delle istruzioni. Si calcola sommando ogni occorrenza di per,
if, while, interruttore, ?e punto e virgola all'interno della funzione. Una possibile sorpresa è che
per le dichiarazioni hanno un conteggio minimo di 3. Questo è realistico poiché per un; B;
C){...} è davvero una scorciatoia per A; while (B) { ... C;}. Il numero di dichiarazioni all'interno
un file è la somma del numero di istruzioni per ogni funzione implementata all'interno di esso
file, più uno per ciascuna di quelle funzioni (perché anche le funzioni sono istruzioni), più
uno per ogni altra istruzione con ambito file (di solito dichiarazioni).

La colonna 4 contiene il numero della prima riga nella funzione. Questo non è necessariamente lo stesso
riga su cui compare il nome della funzione.

La colonna 5 è il numero di righe della funzione, dal numero nella colonna 4 attraverso il
riga contenente la parentesi graffa di chiusura.

La colonna finale contiene il nome del file, il numero di riga su cui si verifica il nome della funzione,
e il nome della funzione.

APPLICAZIONI


L'ovvia applicazione di pmccabe è illustrato dal seguente che fornisce un elenco di
le "top ten" funzioni più complesse:

pmccabe *.c | sort -nr | testa -10

Molti file contengono più di una funzione C e talvolta sarebbe utile estrarli
ciascuna funzione separatamente. matchparent() (vedi l'output di esempio sopra) può essere estratto da
gettoken.c estraendo 27 righe che iniziano con la riga 34. Questo può costituire la base degli strumenti
che operano su funzioni invece che su file (ad esempio, usare come front-end per diff(1)).

DIAGNOSTICA


pmccabe restituisce uno stato di uscita diverso da zero se non è stato possibile aprire i file e dopo averlo incontrato
alcuni errori di analisi.

Messaggi di errore all'errore standard, che di solito spiegano che il parser è confuso su
qualcosa, imita i classici messaggi di errore del compilatore C.

AVVERTENZE


pmccabe è confuso da parentesi graffe o parentesi non corrispondenti che a volte si verificano con
uso frettoloso di cpp direttive. In questi casi viene stampata una diagnostica e la complessità
i risultati per i file indicati potrebbero essere inaffidabili. La maggior parte delle volte le direttive "#ifdef" possono essere
modificato in modo che le parentesi graffe corrispondano. Nota che se pmccabe è confuso da a cpp
direttiva, lo sarà anche la maggior parte delle stampanti carine. In alcuni casi, la preelaborazione con unifdef(1)
può essere appropriato.

Il conteggio delle istruzioni potrebbe probabilmente essere migliorato da: contando le occorrenze della virgola
operatore, assegnazioni multiple, assegnazioni all'interno di test condizionali e logica
congiunzione. Tuttavia, poiché non esiste una definizione di istruzione nitida dalla lingua o
da persone che ho interrogato, il conteggio delle dichiarazioni probabilmente non sarà migliorato. Se hai un
definizione nitida sarò felice di prenderla in considerazione.

causa modelli pmccabelo scanner per uscire.

È un peccato che ctag l'output non è fornito.

Usa pmccabe online utilizzando i servizi onworks.net


Server e workstation gratuiti

Scarica app per Windows e Linux

Comandi Linux

Ad