Bonjour à tous
je dois parser un fichier C qui n'appartient pas un à projet CDT
j'ai regardé CDOM et PDOM, mais les parseur font toujours référence à un projet
Il y a t 'il un moyen de contourner ce problème
merci d'avance
Bonjour à tous
je dois parser un fichier C qui n'appartient pas un à projet CDT
j'ai regardé CDOM et PDOM, mais les parseur font toujours référence à un projet
Il y a t 'il un moyen de contourner ce problème
merci d'avance
Page sur Developpez : http://pbriand.developpez.com
Bonjour à tous,
j'ai pu trouver une solution , la voici donc ici
la solution passe par la création d'un projet virtuel. En faite je crée par logiciel un projet ou je stocke mes fichiers, et dans ce cas je peux alors parser mes fichiers C
Voici le code d'une méthode permettant de créer un projet, puis d'y inclure un répertoire source ou ou je vais pouvoir placer mes fichiers
ensuite pour placer mes fichiers voici le code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 private IFolder createProject() { IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); virtualProject = root.getProject("VirtualProject"); IFolder folder = null; try { /* Si le projet existe déjà ,je le détruit pour repartir sur une base saine */ if (virtualProject.exists()) { root.delete(true,true,null); } virtualProject.create(null); folder = virtualProject.getFolder("src"); if (!virtualProject.isOpen()) { virtualProject.open(null); } folder.create(IResource.NONE, true, null); } catch (CoreException e) { e.printStackTrace(); } return folder; }
maintenant, il ne reste plus qu'a parser mon fichier comme ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 /* Création d'un projet pour stocker les fichiers */ IFolder folder = createProject(); IFile file = folder.getFile(fileObject.getName()); FileInputStream source; try { source = new FileInputStream(fileObject.getFullPath()); try { file.create(source, IResource.NONE, null); } catch (CoreException e) { e.printStackTrace(); } } catch (FileNotFoundException e) { e.printStackTrace(); }
fileObject est un objet d'une classe que j'ai écrit. cela permet de sotcker un nom de fichier et aussi le chemin complet au fichier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 IParserConfiguration conf = new ParserConfiguration(); IASTTranslationUnit tu; try { tu = dom.getTranslationUnit(file,new CodeReaderFactory(),conf); Activator.msgStream.println("parse du fichier " + fileObject.getName() + " faite"); } catch (UnsupportedDialectException e) { // TODO Auto-generated catch block e.printStackTrace(); }
ParserConfiguration est aussi une classe que j'ai écrite et qui permet de personnaliser mon scanner. Le reste est standard CDT
Cordialement
Page sur Developpez : http://pbriand.developpez.com
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager