summaryrefslogtreecommitdiff
path: root/ws2015/eip/blaetter/04/H4-1.md
blob: cb5695f55d3a5bd9f04d0948059b2eecdfcd3fe1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
---
header-includes:
    - \usepackage[perp]{backnaur}
    - \newcommand{\nonterminal}[1]{\ensuremath{\langle \text{\emph{#1}} \rangle}}
---

# Backus-Naur-Form

a)
    i) Ja. 
        
        - Wir starten in \nonterminal{Smiley}.
        - Wir springen in \nonterminal{FröhlicherSmiley}.
        - Von den möglichen Terminalen \texttt{:}, \texttt{;}, und \texttt{B} passt keines auf \texttt{8}.
        - Wir springen zurück in \nonterminal{Smiley}.
        - Wir springen in \nonterminal{TraurigerSmiley}.
        - Von den möglichen Terminalen \texttt{:}, und \texttt{8} passt \texttt{8}.
        - Wir springen in \nonterminal{Nase}.
        - Von den möglichen Terminalen \texttt{o}, und \texttt{-} passt \texttt{o}.
        - Wir sind am Ende von \nonterminal{Nase}.
        - Wir springen in \nonterminal{TraurigerMund}.
        - Von den möglichen Terminalen \texttt{(}, und \texttt{|} passt \texttt{|}.
        - Wir sind am Ende von \nonterminal{TraurigerMund}, \nonterminal{TraurigerSmiley}, \nonterminal{Smiley}.

    ii) Nein.
    Nach dem ersten \texttt{(} werden die restlichen \texttt{(} nicht mehr gematcht ­ im Gegensatz zu \nonterminal{FröhlicherMund} erlaubt \nonterminal{TraurigerMund} keine Wiederholungen.

b) \texttt{:-)))}
c)

\begin{bnf*}
    \bnfprod{SmileyListe}{\bnfpn{TraurigerSmiley} \bnfsp (\bnfpn{SmileyListe'} \bnfor \bnfes)} \\
    \bnfprod{SmileyListe'}{\bnfpn{FröhlicherSmiley} \bnfsp (\bnfpn{SmileyListe} \bnfor \bnfes)}
\end{bnf*}