Gramatyka formalna: Różnice pomiędzy wersjami

[wersja nieprzejrzana][wersja nieprzejrzana]
Usunięta treść Dodana treść
Nie podano opisu zmian
Webprog (dyskusja | edycje)
→‎Symbole terminalne i nieterminalne: zmiana regułka na reguła
Linia 23:
 
Nie ogranicza nas też specjalnie podział na symbole terminalne i nieterminalne.
Jeśli chcemy możemy nawet wymagać, żeby po '''lewej''' stronie każdej regułkireguły były '''tylko symbole nieterminalne'''.
 
Jeśli mamy w którymś miejscu symbol terminalny <math>a</math>, a chcemy mieć tam symbol nieterminalny,
to tworzymy specjalny symbol nieterminalny <math>X_a</math>, i regułkęregułę <math>X_a \rightarrow a</math>.
Wtedy wszędzie oprócz tej regułkireguły zamiast <math>a</math> używamy <math>X_a</math>.
 
Dla przykładu, załóżmy że mamy gramatykę:
Linia 34:
* <math>b \rightarrow ca</math>
* <math>c \rightarrow ab</math>
I chcemy żeby po lewej stronie były tylko symbole nieterminalne. Dodajemy więc regułkinastępujące reguły:
* <math>X_a \rightarrow a</math>
* <math>X_b \rightarrow b</math>