21Fermer23
BrunniLe 18/04/2009 à 03:29
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...