Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2436 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Parsing de fichier?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Parsing de fichier?

n°1445548
burgergold
5$? va chez l'diable!
Posté le 21-09-2006 à 01:06:23  profilanswer
 

j'ai un fichier qui ressemble à ceci
 


(init s1)
(goal s7)
(transitions
 ((s2 s3
  ((s4 1 foo)
   (s5 8 toto)
        ))
 ((s6 s8
  ((s7 4 tata)
   (s9 3 titi)
        ))
)


 
j'ai commencé à faire le parsing en lisant tout le fichier et le placant dans une String. Ensuite, j'utilise des regex pour me créer un objet qui contient l'init, le goal, un hashmap de transitions, ...
 
y'a t-il une meilleure méthode que les regex?

mood
Publicité
Posté le 21-09-2006 à 01:06:23  profilanswer
 

n°1445557
0x90
Posté le 21-09-2006 à 05:02:09  profilanswer
 

( Lisp [:cupra] )
 
si vraiment t'es sûr du format de tes lignes ca peut faire l'affaire, si tu risque de faire face à un peu de variété ou que t'as simplement envie de faire quelque chose de propre, un classique couple d'analyseur lexical/syntaxique me semble pas mal. Les deux était ultrasimplistes pour un machin pareil ;)
 
Sinon ca m'etonnerait pas que ca existe pas déja en tout fait ou fortement prémaché ton truc...


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1445749
burgergold
5$? va chez l'diable!
Posté le 21-09-2006 à 13:55:14  profilanswer
 

ouf j'ai eu un cours d'analyseur lexical et syntaxique la dernière session et j'ai pas vraiment envi de m'embarquer dans un truc pareil pour le peu que j'ai à faire
 
c'est un cours d'AI, je dois faire un algo A*
Le but du tp c'est pas de faire l'algo de parsing de fichier
 
jcrois que jvais continuer avec les regex alors, sauf si quelqu'un autre me suggere une méthode rapide et plus efficace

n°1445754
souk
Tourist
Posté le 21-09-2006 à 13:58:35  profilanswer
 

je pense qu'avec les regex tu vas en chier ... ce serait certainement plus simple de te faire un lexer et un parser (meme a la main, ca a pas trop l'air compliquer la)

n°1445766
burgergold
5$? va chez l'diable!
Posté le 21-09-2006 à 14:14:43  profilanswer
 

souk a écrit :

je pense qu'avec les regex tu vas en chier ... ce serait certainement plus simple de te faire un lexer et un parser (meme a la main, ca a pas trop l'air compliquer la)


 
ok... jpeux bien y jetter un oeil
vous avez des conseils/tuto pour faire ca en java?
 
on utilisait une vieille suite d'outils dans mon cours (cocktail) avec des trucs comme rex, ell, ...

n°1445771
souk
Tourist
Posté le 21-09-2006 à 14:24:13  profilanswer
 

j'aime bien le couple jflex+cup
sinon javacc aussi, un peu plus simple je pense et largement suffisant pour ton cas

n°1445778
burgergold
5$? va chez l'diable!
Posté le 21-09-2006 à 14:33:01  profilanswer
 

jsuis en train de regarder javacc, ca ressemble beaucoup à ce que j'ai déjà fait par le passé
 
jvais commencé par créer mes tokens et je verrai par la suite si jsuis capable de générer quelque chose

n°1445798
burgergold
5$? va chez l'diable!
Posté le 21-09-2006 à 15:12:45  profilanswer
 

(init <etat> )
(goal <etat> )
(transitions <listeDeTransitions> )
 
òu init, goal et transitions sont des mots clés, indiquant respectivement l’état
initial, le but et les transitions; <etat> est un symbole alphanumérique,
commençant par une lettre (par exemple « s1 ») et <transitions> est une
séquence de doublets (<etat> <h-value> <listeSuccesseurs> ), avec <h-value>
un nombre réel (la valeur h de l’état) et <listeSuccesseurs> une séquence de
doublets (<etat> <cout> <action> ) òu <cout> est un nombre réel (le coût de la
transition) et <action> est un symbole alphanumérique commençant par une
lettre (le nom de la transition).
 
 
donc pour commencé, je me suis déclarer les tokens suivant

Code :
  1. TOKEN :
  2. {
  3.   < ETAT: ["a"-"z","A"-"Z"] ( ["a"-"z","A"-"Z","0"-"9"] )* >
  4. | < NUM: ( ["0"-"9"] )+ >
  5. | < REAL: NUM ( "." ( NUM )+ )? >
  6. }


 
ensuite j'accroche un peu, jdois commencer par avoir mon programme principal (dans mon cas il se nommera Problem vu que ce que je lis, c'est un problème à résoudre avec un algo AStar)
 
jme base sur l'exemple NL_Xlator dans le dossier SimpleExample venant avec javacc...

n°1445804
burgergold
5$? va chez l'diable!
Posté le 21-09-2006 à 15:18:52  profilanswer
 

nouvelle source de doc pour moi
le prof qui donne le cours cette session ci le fais avec jflex, javacc, cup :P
 
http://www.dmi.usherb.ca/~kabanza/cours/ift451/
 
edit: merde la matière sur javacc est présentement pas disponible


Message édité par burgergold le 21-09-2006 à 15:22:45
n°1445852
souk
Tourist
Posté le 21-09-2006 à 16:01:30  profilanswer
 

de toute facon jflex et cup rulez [:dawao]

mood
Publicité
Posté le 21-09-2006 à 16:01:30  profilanswer
 

n°1445963
burgergold
5$? va chez l'diable!
Posté le 21-09-2006 à 19:05:36  profilanswer
 

ouarf, commence à faire pas mal de temps que je passe sur ce parsing
 
commencé par la regex, ensuite entamé avec javacc mais jsuis encore loin d'un résultat final
 
jcrois que jvais laisser faire pour jflex et cup, et p-e meme pour javacc, mais jtrouve ca quand même interessant de savoir que ca l'existe pour des situations futur ou j'aurai plus de temps


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Parsing de fichier?

 

Sujets relatifs
Listing de fichier comme sur FTPComposer un nom de fichier
Taille du fichier index[BATCH][WINXP]Supprimer fichier de plus de 3 mois
fichier temporaire memoire ou pipeExtraire des adresses email dans un gros fichier texte
Ecrire sur un fichierRécupérer la date de création d'un fichier
[MySQL/PHP] Impossible de renommer un fichier proposé en downloadDate de création d'un fichier
Plus de sujets relatifs à : Parsing de fichier?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR