L'utilitaire ProcNames
Cette annexe décrit ProcNames, un programme utilitaire MPW Shell que vous pouvez utiliser pour produire une liste de tous les noms de procédures et de fonctions dans votre programme ou unité Pascal.
Syntaxe
ProcNames [option ... ][file ... ] |
Description
Accepte un programme ou une unité Pascal en entrée et produit une liste de tous ses noms de procédures et de fonctions. Les noms sont affichés en retrait en fonction de leur niveau d'imbrication. Les informations sur le niveau d'imbrication et le numéro de ligne sont également affichées.
Le ProcNames peut être utilisé conjointement avec PasMat Pascal "pretty-printer" lorsque cet utilitaire est utilisé pour formater des fichiers d'inclusion séparés. Dans ce cas, PasMat exige que le niveau d'indentation initial soit spécifié. Ce niveau correspond exactement aux informations fournies par ProcNames.
Les informations sur les numéros de ligne affichées par ProcNames correspondent exactement à celles produites par l'utilitaire de référence croisée Pascal PasRef (avec ou sans USES en cours de traitement), donc ProcNames peut être utilisé conjointement avec la liste produite par PasRef pour afficher uniquement les numéros de ligne de chaque entête de procédure ou de fonction.
Une autre utilisation possible de la sortie ProcNames consiste à utiliser le numéro de ligne et les informations de fichier pour rechercher rapidement des procédures et des fonctions avec les commandes d'édition du Shell.
Entrée
Les paramètres du fichier spécifient une liste de noms de fichiers sources Pascal à traiter. L'entrée standard est traitée si aucun nom de fichier n'est spécifié. Sauf si l'option -d est spécifiée, la liste entière des fichiers est traitée comme un seul groupe de fichiers à traiter dans son ensemble, produisant une seule procédure ou un résumé de fonction. Spécifier l'option -d équivaut à exécuter ProcNames individuellement pour chaque fichier spécifié.
Sortie
La liste des noms de procédure ou de fonction est écrite dans le fichier de sortie standard. Les caractères de saut de page sont placés dans le fichier avant chaque nouvelle liste (sauf si l'option -e est spécifiée).
Diagnostique
Les erreurs sont écrites dans le fichier de diagnostic.
État
Les codes d'état suivants peuvent être renvoyés au Shell :
Valeur | Description |
---|---|
0 | Terminaison normale |
1 | Erreur de paramètre ou d'option |
2 | Exécution terminée |
Options
Paramètre | Description |
---|---|
-c | Ne traitez pas une unité utilisée si le nom du fichier d'interface $U de l'unité est spécifié dans la liste des fichiers à traiter. Cette option a le même effet sur la numérotation des lignes que l'option -c de l'utilitaire PasRef. |
-d | Réinitialisez le nombre total de lignes à 1 pour chaque nouveau fichier. Si une liste de fichiers est spécifiée, le nombre total de lignes peut soit commencer à 1, soit continuer là où il s'est arrêté dans le fichier précédent. La valeur par défaut est d'accepter la liste produit par PasRef lorsqu'il traite une liste de fichiers, c'est-à-dire de continuer le décompte. Cependant, si vous souhaitez que ProcNames traite chaque fichier indépendamment, vous pouvez spécifier l'option -d afin que le nombre total de lignes soit réinitialisé à 1 avant le traitement de chaque fichier. |
-e | Supprime l'éjection de page (saut de page) entre chaque procédure ou liste de fonctions. |
-f | Mode de compatibilité du format PasMat. La valeur par défaut répertorie les noms de procédures et de fonctions en fonction du niveau d'indentation du compilateur Pascal. Cependant, à des fins d'indentation uniquement, un cas particulier est constitué des procédures de niveau 1 dans la section IMPLEMENTATION d'une unité. PasMat formate ces procédures en retrait sous le mot IMPLEMENTATION. Elles sont donc indentées comme s'il s'agissait de procédures de niveau 2. Si vous avez l'intention d'utiliser les informations de niveau pour PasMat, vous devez alors spécifier l'option -f. |
-i pathname [, pathname ... ] | Recherchez les fichiers d'inclusion ou USES dans les répertoires spécifiés. Plusieurs options -i peuvent être spécifiées. Au maximum, 15 répertoires seront recherchés. L'ordre de recherche est spécifié sous la description de l'option -i pour la commande Pascal. |
-n | Supprime tous les numéros de ligne et informations de niveau dans l'affichage de sortie. Seuls les noms de procédures et de fonctions seront affichés avec un retrait approprié. |
-o | Le fichier source est un programme Pascal Objet. L'identificateur OBJECT est considéré comme un mot réservé pour permettre le traitement des déclarations Object Pascal. La valeur par défaut suppose que la source est un programme Object Pascal. |
-p | Afficher les informations de version et les informations de progression sur le fichier de diagnostic. |
-u | Traiter les déclarations USES. La seule raison pour laquelle vous auriez besoin de traiter USES avec ProcNames serait de faire en sorte que les informations sur le numéro de ligne correspondent à une liste PasRef contenant également des USES traités. La valeur par défaut ne traite pas les déclarations USES car elles n'ont aucun effet sur la liste des noms de procédure, uniquement sur les numéros de ligne associés. Ainsi, si vous spécifiez l'option -n pour supprimer les informations sur le numéro de ligne, cela n'a aucun sens de traiter USES, donc l'option -u sera ignorée lorsque l'option -n est spécifiée. |
Exemples
ProcNames Memory.p >names |
Répertoriez toutes les procédures et fonctions du programme Pascal Memory.p et écrivez la sortie dans les noms de fichiers. La liste ci-dessous est la sortie générée dans le fichier de noms :
Procedure/Function names for Memory.p 11 11 0 Memory [Main] Memory.p 37 37 1 RsrcID 43 43 1 DRVROpen 63 63 1 DRVRClose 74 74 1 DRVRControl 76 76 2 DrawWindow 83 83 3 PrintNum 93 93 3 GetVolStuff 108 108 3 PrtRsrcStr 168 168 1 DRVRPrime 173 173 1 DRVRStatus *** End ProcNames: 11 Procedures and Functions |
Les deux premières colonnes de chaque ligne contiennent des informations sur le numéro de ligne. La troisième colonne est le numéro de niveau. La première colonne affiche le numéro de ligne d'une routine dans la source totale. La deuxième colonne affiche le numéro de ligne dans un fichier d'inclusion (les inclusions sont toujours traitées). À mesure que chaque fichier d'inclusion change, le nom du fichier à partir duquel l'entrée est traitée est affiché avec le nom de la routine sur la première ligne après le changement de source. Les noms de segments (issus des directives $S du compilateur Pascal) sont traités de la même manière. Ceux-ci sont affichés entre crochets (le nom du segment vide est affiché comme "[Main]").
Limitations
Seuls les programmes syntaxiquement corrects sont acceptés par ProcNames. Les directives de compilation conditionnelle du compilateur ne sont pas traitées.