Réserver une Démo
Pré. Proc.

Création d'une nouvelle base de données Code Miner

L'analyseur de code d' Enterprise Architect , les fonctionnalités Intelli-sense de ses éditeurs de code et ses outils de recherche utilisent tous les bases de données Code Miner .

Une base de données Code Miner est créée en analysant les fichiers de code source selon les règles grammaticales du langage sélectionné et en stockant l'arbre de syntaxe abstrait résultant dans une base de données optimisée pour la lecture. Une ou plusieurs bases de données peuvent être combinées pour former une Bibliothèque Code Miner .

Accéder

Fenêtre de l'analyseur de code

Dans la fenêtre Code Analyzer, cliquez sur le bouton de menu, , dans la barre d'outils, puis choisissez l'option de menu « Créer une base de données ».

Exécution Éditeur de Script Analyseur

Avec la fenêtre Éditeur de Script de l' Analyseur d'Exécution ouverte, sélectionnez la page ' Code Miner > Librairies', puis cliquez sur le bouton 'Créer'.

Créer Dialogue de base de données Code Miner

La dialogue « Créer une base de données Code Miner » permet de lancer le processus d'analyse des fichiers de code source pour créer une base de données Code Miner . Dans le dialogue , vous spécifiez une plage d'entrées utilisées par le processus, telles que le dossier de code source, le fichier de langue et de liste de macros, ainsi que le nom du fichier de sortie. Les champs dialogue sont décrits dans le tableau présenté ci-dessous.

Champ

Description

Voir aussi

Utiliser le répertoire

Sélectionnez cette option lorsque tous les fichiers sources à traiter résident dans un même répertoire.

Lorsque cette option est sélectionnée, la case à cocher « Traiter les sous-répertoires » est activée.

Utiliser la liste des répertoires

Sélectionnez cette option lorsque le code source de votre projet réside dans plusieurs répertoires distincts. Dans ce cas, utilisez le champ « Source » pour spécifier un fichier contenant une liste de répertoires contenant le code source à traiter.

Sous-répertoires de processus

Cette case à cocher est activée lorsque l'option « Utiliser le répertoire » est sélectionnée. Lorsque cette option est sélectionnée, le fichier de code source résidant dans l'un des sous-répertoires du répertoire « Source » spécifié sera également traité.

Source

Ce champ est utilisé pour spécifier le répertoire (ou les répertoires) contenant les fichiers de code source qui seront traités pour créer la base de données Code Miner .

Lorsque l'option « Utiliser le répertoire » est sélectionnée, ce champ est utilisé pour spécifier le dossier racine dans lequel rechercher les fichiers de code source.

Lorsque l'option « Utiliser la liste de répertoires » est sélectionnée, ce champ est utilisé pour spécifier un fichier créé par l'utilisateur contenant une liste de noms de chemins d'accès aux répertoires contenant les fichiers sources à traiter. Cliquer sur le bouton Browse. ouvre une dialogue « Sélecteur de fichiers » qui vous permet de rechercher et de choisir un fichier avec l'extension « .ssdirlist ». Pour plus d'informations, consultez la section Fichier de liste de répertoires ci-dessous.

Base de données

Ce champ spécifie le chemin d'accès complet du fichier de base de données Code Miner qui sera créé. L'extension de nom de fichier « .cdb » est utilisée pour ce fichier.

Langue

Il s'agit d'une liste déroulante dans laquelle vous spécifiez la langue utilisée dans les fichiers de code source en cours de traitement. Il existe un certain nombre de langues pour lesquelles Enterprise Architect fournit support « intégrée ». (Il existe des grammaires intégrées utilisées pour analyser les langues prises en charge).

Il existe également une option permettant de choisir une langue « personnalisée ». Si vous choisissez d'utiliser une langue personnalisée, vous devrez créer votre propre grammaire pour support l'analyse de cette langue. Lorsque l'option « Personnalisé » est sélectionnée, le champ « Fichier de grammaire » s'affiche, vous permettant de spécifier le fichier qui définit votre grammaire personnalisée.

Extensions de fichiers

Ce champ répertorie un certain nombre d'extensions de nom de fichier généralement associées aux fichiers de code source du langage choisi. Seuls les fichiers dont les extensions de nom de fichier correspondent à celles de la liste seront traités par l'analyseur. Vous pouvez ajouter ou supprimer des extensions de nom de fichier en fonction de vos besoins.

Liste des macros

Lorsque le langage sélectionné est « C++ », le champ de sélection « Liste des macros » s'affiche. Le champ Liste des macros vous permet de spécifier un fichier qui fournit une liste de macros que l'analyseur doit ignorer lorsqu'il les rencontre.

Pour le langage C++, les macros posent un problème à l'analyseur car elles masquent les constructions natives du langage. L'ajout du nom d'une macro au fichier de liste de macros et la mise à jour de la base de données permettent généralement d'effacer toutes les erreurs liées à cette macro.

Pour plus d’informations, consultez la section Extension du fichier de liste de macros ci-dessous.

Fichier de grammaire

Sparx Systems a développé des grammaires pour toutes les langues répertoriées dans la liste de sélection déroulante.

C++, C# , Java, XML et également MDGTechnology.

Il existe également une option permettant de sélectionner une langue « personnalisée ». Les utilisateurs qui développent une langue personnalisée devront spécifier des règles grammaticales pour cette langue et les enregistrer dans un fichier nBNF, afin que Code Miner puisse analyser correctement le code source écrit dans cette langue. L'éditeur de grammaire d' Enterprise Architect est conçu spécifiquement à cet effet.

Lorsque vous sélectionnez « Personnalisé » comme langue, vous devez ensuite spécifier le fichier de grammaire que vous avez créé pour cette langue, afin que Code Miner puisse analyser correctement votre code source.

Le Help Topic Grammar Framework fournit des informations détaillées sur la rédaction d'une grammaire nBNF.

Cadre grammatical

Fenêtre de sortie

La fenêtre de sortie affiche la progression de l'analyse des fichiers de code source. Une fois l'analyse terminée, elle affiche également les noms du fichier de base de données et du fichier log qui ont été créés ainsi que le nombre d'erreurs rencontrées.

Bouton Compiler/Arrêter

Le bouton « Compiler » permet de démarrer l'opération de traitement. Ce bouton se transforme en bouton « Arrêter » une fois le traitement lancé, ce qui permet à l'utilisateur d'interrompre l'opération.

Bouton Ajouter

Une fois qu'une base de données a été compilée, le bouton « Ajouter » peut être utilisé pour ajouter cette base de données à une Bibliothèque Code Miner .

Plusieurs bases de données peuvent être ajoutées ensemble pour constituer une bibliothèque couvrant de nombreux projets de code source.

Note : lorsque la dialogue « Créer une base de données Code Miner » est ouverte à partir de la fenêtre Code Analyzer, le bouton « Ajouter » ne s'affiche pas.

Fichier de liste de répertoires

Si vous choisissez de spécifier un fichier de liste de répertoires, vous devrez créer un fichier texte simple utilisant l'extension de nom de fichier « .ssdirlist », qui répertorie le chemin d'accès complet à chaque répertoire que vous souhaitez traiter, avec un chemin par ligne. Par exemple :

c:\mesprojets\project1\tools\scintilla

c:\mesprojets\project2\src

d:\mylibs\lib1\src

Si vous souhaitez traiter de manière récursive les sous-répertoires d'un répertoire répertorié, faites précéder ce chemin d'un point d'exclamation comme ceci :

!d:\mylibs\lib1\src

Toute ligne commençant par un caractère # est traitée comme un commentaire :

# inclure scintilla

c:\mesprojets\project1\tools\scintilla

Extension du fichier de liste de macros

Pour le langage C++, les macros posent un problème pour les grammaires car elles cachent les constructions natives du langage. L'analyseur ne peut pas effectuer de substitution sur les macros car elles sont souvent définies de manière conditionnelle et l'analyseur n'a aucune idée de l' architecture . Le fichier Macro List fournit une liste de macros que l'analyseur doit ignorer lorsqu'il les rencontre.

Lorsque vous créez une base de données Code Miner pour un référentiel de code source C++, des erreurs peuvent s'afficher. Lorsqu'une erreur se produit, utilisez le log des erreurs pour rechercher et inspecter la ligne de code à l'origine de l'erreur. Cela permet presque toujours d'identifier une macro à l'origine de l'échec de grammaire. L'ajout de ce nom à la liste des macros et la mise à jour de la base de données effaceront généralement toutes les erreurs liées à cette macro.

Par exemple, le log des erreurs affiche cette erreur :

C:\ea\EA750\SQLAPITester\SQLAPI\include\asa\sqlfuncs.h, ligne:12, col:18, Symbole inattendu ','.

Après inspection, la ligne de code à l'origine de l'erreur est la suivante :

FONCTION_INFO( externe , vide , _esqlentry_, arrêt sql, (SQLCA *))

(Il existe également de nombreuses autres lignes similaires utilisant la macro « FUNC_INFO ».)

Nous modifions donc le fichier de liste de macros par défaut, « AtxAflMacros.nbnf », en ajoutant cette ligne :

"FUNC_INFO" " ( " skipBalanced( " ( " , " ) " ) " ) " |

Cette ligne demande à l'analyseur, lorsqu'il rencontre la macro "FUNC_INFO" , d'appliquer la fonction skipBalanced( " ( " , " ) " ), qui prend deux paramètres ; dans ce cas, il s'agit des parenthèses ouvrantes et fermantes. L'analyseur reçoit donc pour instruction d'ignorer tout ce qui se trouve entre les parenthèses ouvrantes et fermantes.

Lorsque la modification apportée au fichier de liste de macros est enregistrée et que la base de données est recompilée (mise à jour), toutes les erreurs relatives à la macro « FUNC_INFO » ont été éliminées.

Apprenez Plus