//**************Classe permettant de créer un symbole*******************
//*Un symbole utilise un objet de type regle et un objet de type       *
//*interpreteGraphique. Comme une regle est une collection de symbole  *
//*la classe regle n'est pas encore définit. On déclare le classe regle*
//*incompléte***********************************************************

class regle;
#include<string>
#include "interpreteGraphique.h"  
using namespace std;
class symbole{
 private:
  string nom;                  //le caractère du symbole
  regle *regle_croissance;     //la règle de croissance associée au symbole
  interpreteGraphique inter;   //l'interpretation du symbole (symbole logo, ou autre...)

 public:
  //Les constructeurs
  symbole(){};
  symbole(string s){nom = s;};
  symbole(string s, regle *r){nom = s; regle_croissance = r;};
  symbole(string s, interpreteGraphique inte){nom = s; inter = inte;};
 
  //les méthodes
  void lireSymbole();
  void affecteRegle(regle *r); //permet d'affecter une nouvelle règle à un symbole
  regle* getRegle();           //renvoie la règle du symbole
  string getNom();             //renvoie le caractère du symbole
  interpreteGraphique getInterpreteGraphique(); //renvoie l'interpretation graphique du symbole 
};

