void LL(1)-Parsing() { i=0; // preAnalisis = w$(i); do { X = Pila.Top(); if ( X.esTerminal() ) { if ( w$(i) == X ) { Pila.Pop(); ++i; // aparea() } else { error "Token inesperado: ", w$(i); } } else { if ( M[X,w$(i)] == X --> Y1 ... Yn ) { Pila.Pop(); // elimina X (la parte izquierda) for ( i=N; i>0; --i ) { Pila.Push( Yi ); // agrega la parte derecha } } else { error "Producción incorrecta"; } } } while (w$[i] != '$'); }