Ajout de l'analyse syntaxique des expresion :
- ()
- +
- *
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
#include "analyseur_syntaxyque.h"
|
||||
|
||||
int uniteCourante;
|
||||
extern char yytext[100];
|
||||
|
||||
|
||||
|
||||
void expArith (void) {
|
||||
affiche_balise_ouvrante("expArith", 1);
|
||||
|
||||
terme();
|
||||
expArithBis();
|
||||
|
||||
affiche_balise_fermante("expArith", 1);
|
||||
}
|
||||
|
||||
void expArithBis (void) {
|
||||
affiche_balise_ouvrante("expArithBis", 1);
|
||||
|
||||
if(uniteCourante == PLUS) {
|
||||
uniteCourante = yylex();
|
||||
affiche_xml_texte(yytext);
|
||||
|
||||
expArith();
|
||||
}
|
||||
|
||||
affiche_balise_fermante("expArithBis", 1);
|
||||
}
|
||||
|
||||
void terme (void) {
|
||||
affiche_balise_ouvrante("terme", 1);
|
||||
|
||||
facteur();
|
||||
termeBis();
|
||||
|
||||
affiche_balise_fermante("terme", 1);
|
||||
}
|
||||
|
||||
void termeBis (void) {
|
||||
affiche_balise_ouvrante("termeBis", 1);
|
||||
|
||||
if(uniteCourante == FOIS) {
|
||||
uniteCourante = yylex();
|
||||
affiche_xml_texte(yytext);
|
||||
|
||||
terme();
|
||||
}
|
||||
|
||||
affiche_balise_fermante("termeBis", 1);
|
||||
}
|
||||
|
||||
void facteur (void) {
|
||||
affiche_balise_ouvrante("facteur", 1);
|
||||
|
||||
if(uniteCourante == PARENTHESE_OUVRANTE) {
|
||||
uniteCourante = yylex();
|
||||
affiche_xml_texte(yytext);
|
||||
|
||||
expArith();
|
||||
|
||||
if(uniteCourante != PARENTHESE_FERMANTE) {
|
||||
printf("Erreur de syntaxe");
|
||||
exit(-1);
|
||||
}
|
||||
} else if(uniteCourante == NOMBRE) {
|
||||
uniteCourante = yylex();
|
||||
affiche_xml_texte(yytext);
|
||||
} else {
|
||||
printf("Erreur de syntaxe");
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
affiche_balise_fermante("facteur", 1);
|
||||
}
|
||||
Reference in New Issue
Block a user