Stos jest inicjowany przez . Bieżącym stanem będzie zawsze ten stan, który jest na szczycie stosu. Biorąc bieżący stan i bieżący symbol terminalny w strumieniu wejściowym, akcja jest brana z tabeli action. Mamy cztery przypadki: przesunięcie (ang. shift) sn: bieżący symbol terminalny jest usuwany ze strumienia wejściowego stan n jest wkładany na stos i staje się bieżącym stanem redukcja (ang. reduce) rm: liczba m oznaczająca numer reguły wyprowadzania jest wypisywana do strumienia wyjściowego dla każdego symbolu (terminalnego lub nieterminalnego) z prawej strony reguły m stan jest usuwany ze stosu biorąc stan który jest następnie na szczycie stosu i symbol nieterminalny, który jest po lewej stronie reguły m, nowy stan jest brany z tabeli goto i staje się nowym bieżącym stanem przez włożenie go na stos akceptacja: strumień symboli terminalnych jest zaakceptowany brak akcji: zgłaszany jest błąd syntaktyczny Krok 2 jest powtarzany dotąd aż strumień zostanie zaakceptowany lub zostanie zgłoszony błąd składni.

Konkretny przykład Aby wyjaśnić jak to działa użyjemy następującej małej gramatyki której startowym symbolem jest E:

(1) E → E * B (2) E → E + B (3) E → B (4) B → 0 (5) B → 1

i parsujemy następujący strumień wejściowy: 1 + 1