97Fermer99
FarewellLe 09/10/2009 à 13:00
Exactement :

-> MainEval( *( 3 - 2 + 1 ))			// On part de l'adresse d'une expression

Decompose( *( 3 - 2 + 1 )) 			// On décompose, on obtient int 3, SIGN -, PTR *( 2 + 1 )



-> Eval(3, -, *( 2 + 1 ))			// On évalue tout ça

Decompose( *( 2 + 1 ))				// On décompose, on obient int 2, SIGN +, PTR *(1)

ComparePriorité( -, + )				// On compare les priorités, elles sont égales,

Moins( 3, 2 ) -> 1				// Donc on résoud là première opération

-> Eval( 1, +, *( 1 ))				// On continue, vu qu'on a encore au moins un opérateur à traiter

Decompose( *( 1 ))				// On obtient int 1, SIGN NONE, PTR *( après 1)

Return( Plus( 1, 1 ))				// Comme SIGN == NONE, on résoud l'opération et on reviens