1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| #ifndef SYTAXIQUE_HPP
#define SYTAXIQUE_HPP
#include "lexical.hpp"
#include <vector>
typedef enum {TID,TENTIER,TNBREEL,TOPREL,TPO,TPF,TPROG,TDEBUT,TFIN,TNOUVEAU,TET,
TOU,TBOOLEEN,TNON,TSI,TALORS,TFSI,TPOUR,TDEPUIS,TJUSQUE,TPAS,TFAIRE,
TFAIT,TTANTQUE,TREFAIRE,TSINONSI,TSINON,TLAISSE,TTYPE,TVAR,TCONST,
TSTRUCT,TENT,TREEL,TCAR,TBOOL,TEST,TFIX,TMOD,TCLASSE,TOBJ,TATTR,TMETH,
TPOLY,TDERIVE,TABSTR,TPUB,TPRIV,TPROTG,TADD,TMOINS,TETOILE,TSLASH,TCO,
TCF,TPOINT,TPTVIRG,TCHAINE,TDEUXPTSEGAL,TDEUXPTS,TCARACTERE,TCHAPEAU,
TADRESSE,TDOLAR,
programme,E,Eprim,T,Tprim,F,C,listeC,listeCprim,Cprim,Tl,
Tlprim,Fl,R,sequence,sequenceOpt,instr,RInstr,si,listeSns,alternative,
vginstr,vginstrprim,VG,complementVG,champ,champO,chapeaux,indices,
complementO,complement,adresseprim,corps,ds,resteCorps,declaration,
declarationVar,declarationConst,declarationTab,declarationObj}
termsEtNonTerms;
class syntaxe{
private:
lexical a;
ULex pe;
termsEtNonTerms X;
std::vector<termsEtNonTerms> pile;
termsEtNonTerms convertUlex[NBULEX] = {TID,TENTIER,TNBREEL,TOPREL,TPO,TPF,
TPROG,TDEBUT,TFIN,TNOUVEAU,TET,TOU,TBOOLEEN,TNON,TSI,TALORS,TFSI,
TPOUR,TDEPUIS,TJUSQUE,TPAS,TFAIRE,TFAIT,TTANTQUE,TREFAIRE,TSINONSI,
TSINON,TLAISSE,TTYPE,TVAR,TCONST,TSTRUCT,TENT,TREEL,TCAR,TBOOL,TEST,
TFIX,TMOD,TCLASSE,TOBJ,TATTR,TMETH,TPOLY,TDERIVE,TABSTR,TPUB,TPRIV,
TPROTG,TADD,TMOINS,TETOILE,TSLASH,TCO,TCF,TPOINT,TPTVIRG,TCHAINE,
TDEUXPTSEGAL,TDEUXPTS,TCARACTERE,TCHAPEAU,TADRESSE,TDOLAR};
public:
syntaxe();
void init();
void syntaxique();
void erreurTerm();
void erreurC();
void erreurCprim();
void erreurE();
void erreurEprim();
/*void erreurSequence();
void erreurTl();
void erreurTlprim();
void erreurFl();
void erreurR();*/
};
#endif |
Partager