Je vais peut être paraître un peu con mais j'ai beaucoup de peine à voir comment je pourrais caser la construction de mon arbre syntaxique pendant l'analyse syntaxique :/
J'ai défini une grammaire, et donc un moyen de la parser (je rappelle juste la construction pour les expressions):
static void EXPR() {
// [OP_UNAIRE] (CTE_ENTIERE | ID [TUPLE] | TUPLE) [OP_BINAIRE EXPR]
if (opUnaire())
lit();
if (prochain(CTE_ENTIERE))
lit();
else if (prochain(IDENTIFICATEUR)) {
lit();
if (prochain(PAR_OUVRANTE))
TUPLE();
}
else if (prochain(PAR_OUVRANTE))
TUPLE();
else
erreur("expression attendue");
// Opérateur binaire + autre expr
if (opBinaire()) {
lit();
EXPR();
}
}
Vous m'avez dit que le parse tree ne servait alors à rien puisqu'il donnait une construction comme ceci qui ne m'avance pas:
EXPR
identifiant: rouge
plus: +
EXPR
identifiant: vert
Mettons maintenant que je veux transformer mon expression en RPN pour la foutre dans mon arbre syntaxique. Je vais utiliser un algo connu avec une pile et tutti. Mon analyse syntaxique devient alors inutile puisqu'on travaille directement avec les lexèmes, non?
Qu'est-ce que je devrais faire à ce moment? Je ne comprends pas bien...