Commit 1d039475 authored by Vladimír Štill's avatar Vladimír Štill
Browse files

doc: Tweak userref, add newly allowed symbols

parent 75446557
Loading
Loading
Loading
Loading
Loading
+11 −2
Original line number Original line Diff line number Diff line
@@ -94,7 +94,7 @@ Neterminál je tvořen:
* sekvencí malých a velkých písmen anglické abecedy, číslic nebo znaku `_` uzavřenou do lomených závorek `<`, `>` (např. `<a>`, `<abAB>`, `<S_0>`),
* sekvencí malých a velkých písmen anglické abecedy, číslic nebo znaku `_` uzavřenou do lomených závorek `<`, `>` (např. `<a>`, `<abAB>`, `<S_0>`),
* jedním malým písmenem anglické abecedy nebo předchozím typem neterminálu (velké písmeno, sekvence v závorkách) s jedním nebo více apostrofy (např. `S'`, `a''`, `<aB_0>'`).
* jedním malým písmenem anglické abecedy nebo předchozím typem neterminálu (velké písmeno, sekvence v závorkách) s jedním nebo více apostrofy (např. `S'`, `a''`, `<aB_0>'`).


Terminálem může být jedno malé písmeno anglické abecedy, číslice `0–⁠9` nebo sekvence jakýchkoliv znaků (kromě `"` a bílých znaků) v uvozovkách.
Terminálem může být jedno malé písmeno anglické abecedy, číslice `0–⁠9, jeden ze znaků `~`, `=`, `-`, ` nebo sekvence jakýchkoliv znaků (kromě `"` a bílých znaků) v uvozovkách.


Pravidla regulární gramatiky mohou být tvaru:
Pravidla regulární gramatiky mohou být tvaru:


@@ -126,7 +126,10 @@ B' -> a


## Bezkontextové gramatiky
## Bezkontextové gramatiky


Pro zápis CFG platí všechna pravidla jako pro regulární gramatiky kromě omezení tvaru pravé strany pravidel. Pravé strany pravidel nemusí být jen typu samotný terminál nebo dvojice terminál a neterminál, ale mohou obsahovat terminály i neterminály v libovolné kombinaci nebo ε.
Pro zápis CFG platí všechna pravidla jako pro regulární gramatiky kromě omezení
tvaru pravé strany pravidel. Pravé strany pravidel tedy mohou obsahovat
terminály i neterminály v libovolné kombinaci nebo ε (bezkontextová gramatika
může obsahovat ε-kroky).


### Příklad
### Příklad


@@ -136,6 +139,12 @@ A -> aAa | bab | bbb
B-> bBaBb | A | a
B-> bBaBb | A | a
```
```


```
S → a<aB>B
<aB> → aB | ε
B → bB | ε
```

<!--
<!--
vim: spell spelllang=cs
vim: spell spelllang=cs
-->
-->