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

  FORUM HardWare.fr
  Programmation
  Java

  [Javacc] reconnaissance token le plus grand

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Javacc] reconnaissance token le plus grand

n°1812253
ffomnislas​h
Posté le 14-11-2008 à 19:33:42  profilanswer
 

:hello:  
 
J'ai un petit problème avec javacc que j'avait déjà eu il y a quelques années avec d'autres outils (sans doute lex&yacc). JavaCC me reconnait le token utilisant le plus de caractères possibles.  
 
Voici 3 tokens

TOKEN :
{
     < NUMBER: (["0"-"9"])+ >
|    < WORD : (~[" "])+ >
|    < WORDS: (<WORD>|" " )+ >
}


 
et je demande à javaCC de trouver un <NUMBER>.  
Si je lui passe comme chaine "12 3\n", il va alors reconnaitre un WORDS "12 3\n".
Si je rajoute dans le token WORD que je ne veut pas de "1", il va alors me trouver le NUMBER "12" puis le WORD "3\n"
 
Je comprend plus ou moins le prolbème mais je ne voit pas comment le résoudre  :(

mood
Publicité
Posté le 14-11-2008 à 19:33:42  profilanswer
 

n°1813115
ffomnislas​h
Posté le 17-11-2008 à 18:06:46  profilanswer
 

personne n'a d'idée :(
 
Le code complet desfois que ...
 

Code :
  1. options {
  2.       STATIC = false ;
  3. }
  4. PARSER_BEGIN(Adder)
  5.       class Adder {
  6.            public static void main( String[] args )
  7.            throws ParseException, TokenMgrError {
  8.                 Adder parser = new Adder( System.in ) ;
  9.                 parser.Start() ; }
  10.       }
  11. PARSER_END(Adder)
  12. SKIP :
  13. {
  14.     "\r"
  15. }
  16. TOKEN :
  17. {
  18.      < NUMBER: (["0"-"9"])+ >
  19. |    < WORD : (~[" ","\n"])+ >
  20. |    < WORDS: (<WORD>|" " )+ >
  21. |    < EOL: ("\n" ) >
  22. }
  23. void Start() :
  24. {
  25.     int n;
  26.     Token t;
  27. }
  28. {
  29.     (t = <NUMBER>
  30.     {
  31.         n = Integer.parseInt(t.image);
  32.         System.out.println(n);
  33.     }
  34.     " "<WORD>
  35.     " "<WORDS>
  36.     <EOL>
  37.     )+
  38.     <EOF>
  39. }


 
et le message d'erreur

Citation :

echo "123 mot1 mot2 mot3" | java Adder
Exception in thread "main" ParseException: Encountered " <WORDS> "123 mot1 mot2 mot3 "" at line 1, column 1.
Was expecting:
    <NUMBER> ...


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

  [Javacc] reconnaissance token le plus grand

 

Sujets relatifs
Création d'un logiciel ouvrant un programme par reconnaissance vocaleRequete site web à la manière d'excel mais en plus grand
[VB6] Question, "Le grand livre visual basic 6"liens comment faire apparaitre la photo en grand ?
Mauvaise reconnaissance de la fin d'un fichier[Grand Sites Internet] Génération de pages PHP ou HTML
creer un grand nombre d'objetsIE affiche un padding bien plus grand que 10px
utilisation de nombre entier tres grand!JAVA Ne pas afficher le E sur les nombres dit scientific
Plus de sujets relatifs à : [Javacc] reconnaissance token le plus grand


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)