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

  FORUM HardWare.fr
  Programmation
  C

  gérer une boucle en YACC

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

gérer une boucle en YACC

n°1760982
psgkiki
Posté le 17-07-2008 à 16:27:17  profilanswer
 

Bonjour à tous,
 
J'ai crée un mini-langage (JHP) que je souhaite parser à l'aide de Lex et Yacc.
 
Mon problème que je rencontre, c'est comment gérer une boucle.
 
Voici un extrait de mon yacc qui permet de gérer les variables, les appels de fonctions ...

Code :
  1. codeJHP:   BO REP_IMG param BF {
  2.     insert_ligne_prg(TYPECDE_IMG, "repertoire_image", $3, "" );
  3.                                }
  4.                       | BO REP_GENE param BF {
  5.     insert_ligne_prg(TYPECDE_GEN, "repertoire_generation", $3, "" );
  6.                                }
  7.                       | BO EXT_GENE param BF{
  8.     insert_ligne_prg(TYPECDE_EXT, "extension_generation", $3, "" );
  9.                                }
  10.                       | BO FIC_SUI param BF{
  11.     insert_ligne_prg(TYPECDE_SUI, "fichier_suivi", $3, "" );
  12.                                }
  13.                       | BO NOUV_FIC param BF{
  14.     insert_ligne_prg(TYPECDE_NF, "nouveau_fichier", $3, "" );
  15.                                }
  16.                       | BO FERM_FIC param BF{
  17.     insert_ligne_prg(TYPECDE_FF, "fermeture_fichier", $3, "" );
  18.                                }
  19.                       | BO variable BF {
  20.     insert_ligne_prg(TYPECDE_VAR, "variable", $2, "" );
  21.                                }
  22.                       | BO CONNECT param BF {
  23.   insert_ligne_prg(TYPECDE_CONNECT, "connexion bdd", $3, "" );
  24. }
  25. ;
  26. param:   PO QSTRING PF { strcpy($$,$2);}
  27.         |variable {strcpy($$, $1);}
  28.                        ;
  29. variable:              PO IDF POINT IDF PF {
  30.     strcpy($$, $2);
  31.     strcat($$, "." );
  32.     strcat($$, $4);
  33. }
  34.                        | IDF POINT IDF {
  35.    strcpy($$, $1);
  36.    strcat($$, "." );
  37.    strcat($$, $3);
  38. }
  39.                        | PO IDF VIRG IDF PF {
  40.     strcpy($$, $2);
  41.     strcat($$, "," );
  42.     strcat($$, $4);
  43. }
  44.                        | IDF VIRG IDF {
  45.    strcpy($$, $1);
  46.    strcat($$, "," );
  47.    strcat($$, $3);
  48.    }


 
 
Je ne sais pas comment gérer la boucle.
La synthaxe d'une boucle est : BO FOR variable OF variable WITH variable BF.
 
Exemple : <* FOR (id,titre) OF (bd.table) WITH (num, titre) *>
 
Je ne sais pas comment récupérer mes variables.
 
Merci pour votre aide

mood
Publicité
Posté le 17-07-2008 à 16:27:17  profilanswer
 


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

  gérer une boucle en YACC

 

Sujets relatifs
[Résolu][C]condition de sortie d'une boucle while = retour chariotProbleme affichage + Boucle while
Boucle excelMS-DOS : Boucle For, IF et Find imbriqués, probleme d'affectation
Parcours XML + boucle : WINDEVprobleme de boucle pour
Webservices: comment gérer les grosses requêtes ?probleme avec une boucle if en cshell
Un petit batch avec boucle / Call / parametre et conditionBoucle which
Plus de sujets relatifs à : gérer une boucle en YACC


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