Diagram składni stanowi schemat blokowy programu dokonującego rozbioru zdań i akceptującego zdania poprawne, który nazywany jest analizatorem składniowym. Jego celem jest sprawdzanie poprawności składni programu i generowanie komunikatów o ewentualnych błędach. Konstrukcja analizatora składniowego polega na zastępowaniu kolejnych fragmentów diagramu składni odpowiednimi instrukcjami według odpowiednich reguł. Budujemy w ten sposób program analizatora dla konkretnego języka. Można jednak stworzyć ogólny program rozbioru odpowiedni dla każdej gramatyki. Jest to analizator składniowy sterowny składnią. Aby tego dokonać, w pierwszej kolejności należy przejść od konkretnej gramatyki, reprezentowanej za pomocą diagramów składni, do struktury danych dynamicznych. Polega to na wprowadzeniu dla każdego symbolu jednego węzła struktury i powiązaniu tych węzłów za pomocą wskaźników.
Rekord realizujący węzeł struktury możemy przedstawić graficznie w następujący sposób:
A jego definicja w pseudokodzie Pascala ma postać:
type wskaźnik = ↑ węzeł;
węzeł =
rekord nast, człalt: wskaźnik;
case końcowy: boolean of
true: ( ksym: char );
false: ( psym: poczwsk )
end
Należy także zdefiniować węzeł początkowy, który graficznie możemy przedstawić w następujący sposób:
Aby przejść od diagramu składni do struktury danych, stosujemy następujące reguły:
W miarę możliwości zredukować liczbę diagramów, stosując odpowiednie podstawienia.
Każdy diagram należy zastąpić odpowiednią strukturą danych zgodnie z dalszymi regułami.
Ciąg elementów przedstawionych poniżej:

Zastępujemy listą węzłów danych:

Połączenie członów alternatywy:

zastępujemy poprzez listę alternatywną:

Pętlę:

Zastępujemy następującą strukturą danych:

Rozważmy przykładowy diagram składni pokazany na poniższym rysunku:

Struktura danych dynamicznych będzie wyglądała następująco:

Ponieważ komputer nie jest w stanie czytać diagramów, dlatego należy wczytać gramatykę do programu w trybie tekstowym, np. w notacji RBNF, która jest rozszerzeniem notacji BNF.
Podstawowe różnice pomiędzy notacjami przedstawia poniższa tabela:
| : : = | = |
| | | , |
| { | [ |
| } | ] |
Każda produkcja w notacji RBNF zakończona jest kropką.
Program analizatora wczytuje produkcje w notacji RBNF i na ich podstawie tworzy odpowiadające im struktury danych dynamicznych, zgodnie z gramatyką definiującą produkcje składniowe:
< produkcja > : : = < symbol > = < wyrażenie >
< wyrażenie > : : = < składnik > {,< składnik >}
< składnik > : : = < czynnik {< czynnik >}
< czynnik > : : = < symbol > | [< składnik >]
Sposób zastąpienia odpowiednich procedur produkcji w notacji RBNF strukturami danych dynamicznych pokazano na poniższych rysunkach:
Czynniki:
1. <symbol>
2. [<składnik>]
Składniki:
< czynnik - 1 > ... < czynnik - n >


Wyrażenia:
< składnik - 1 > < składnik - 2 > ... < składnik - n >

Analiza składniowa sterowana strukturą danych dynamicznych jest uniwersalna i może być stosowana dla wielu języków formalnych, dla których zdefinowana jest gramatyka formalna w notacji RBNF.