IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

petit analyseur lexical


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 72
    Par défaut petit analyseur lexical
    l'objectif de ce code est d analyser a partir d un fichier texte
    "e:\text.txt" par exemple
    l' analyseur doit afficher en sortie des messages relatifs à la reconnaissance d'unités lexicales
    la chaine à analyser est stockée dans le fichier texte
    j essai ce 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
    import java.util.*;
    import java.io.*;
    public class lexical{
    	public static  void main(String [] args) throws IOException
    	{
    		Scanner sc = new Scanner(new FileReader("e:\text.txt"));
    		while (sc.hasNext())
    		{
    			String s=sc.next();
    			if(s.matches("begin|end|if|else|while|for"))
    				 System.out.println(s + " connu");
    		}
    	}
    }
    bien sur il faut ajouter autres expressions regulieres
    le programme est compilé sans probléme mais a l execution affiche
    malgré le chemin de fichier est juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Exception in thread "main" java.io.FileNotFoundException: e:    ext.txt (Syntaxe du nom de fichier, de répertoire ou de volume incorrecte)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:106)
        at java.io.FileInputStream.<init>(FileInputStream.java:66)
        at java.io.FileReader.<init>(FileReader.java:41)
        at lexical.main(lexical.java:6)
     
    Process completed.
    aide moi svp

  2. #2
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Apparemment java interprète \t et le remplace par un tabulation. Tu devrais essayer de le doubler.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Scanner sc = new Scanner(new FileReader("e:\\text.txt"));

  3. #3
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 72
    Par défaut
    merci
    le probléme est résolu

    j ai un question
    est qu il ya un inconvénient d utiliser la classe scanner ?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 433
    Par défaut
    Un inconvénient je pense que oui, car en fait elle n'est apparue que dans la dernière version de Java (Java 6 il me semble) et donc ton programme ne pourra pas tourner sur une machine dont Java est aux version antérieures.

  5. #5
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par FabaCoeur Voir le message
    Un inconvénient je pense que oui, car en fait elle n'est apparue que dans la dernière version de Java (Java 6 il me semble) et donc ton programme ne pourra pas tourner sur une machine dont Java est aux version antérieures.
    En même temps le simple fait de compiler avec un JDK 6 aura le même effet donc pourquoi s'en privé.

    Si vous voulez une compatibilité avec d'anciens JDK alors il faut compiler avec la version la plus ancienne que vous voulez supporter...


    Sinon il y a plus problématique pour moi : le fichier n'est pas fermé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    		Scanner sc = new Scanner(new FileReader("e:\text.txt"));
    		try {
    			while (sc.hasNext())
    			{
    				String s=sc.next();
    				if(s.matches("begin|end|if|else|while|for"))
    					 System.out.println(s + " connu");
    			}
    		} finally {
    			sc.close();
    		}
    Autant prendre les bonnes habitudes

    a++

  6. #6
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 72
    Par défaut
    je veux dire un inconvenient dans l analyse des chaines de caractéres
    par exemple j' ajoute integer comme expression réguliere et le point virgule aussi ;
    donc integer ; est connu mais si on supprime l espace (integer ; devient integer alors l' analyseur ne connait pas integer tout seul comme un unité lexical

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. un petit analyseur lexical
    Par rchod dans le forum Général Java
    Réponses: 0
    Dernier message: 16/11/2011, 18h35
  2. Analyseur lexical en Pascal
    Par acacia dans le forum Langage
    Réponses: 5
    Dernier message: 29/11/2007, 15h43
  3. probléme dans l'analyseur lexical
    Par the sun dans le forum C#
    Réponses: 9
    Dernier message: 29/05/2007, 11h00
  4. Faire un analyseur lexical
    Par sylsau dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 29/03/2007, 12h41
  5. Analyseur lexical a 3 automates
    Par mehdouch dans le forum C
    Réponses: 2
    Dernier message: 29/03/2006, 11h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo