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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
\documentclass[a4paper]{scrartcl}
\usepackage[utf8]{inputenc}
\input{etc.tex}
\begin{document}
\section*{Darstellung der Syntax von \texttt{if-then-else} in Python}
\begin{lstlisting}[gobble=2,basicstyle=\footnotesize,multicols=2,caption={}]
\node [] {};
\node [terminal] {if};
\node [nonterminal] {Bedingung};
\node [terminal] {:};
\node [nonterminal]
{Anweisungsblock};
\node (ersteReiheEnde) [point] {};
\node (ersteReiheEndeUnten)
[point, below=of
ersteReiheEnde] {};
\node (zweiteReiheStartOben)
[point, left=of
ersteReiheEndeUnten,
xshift=-75mm] {};
\node (zweiteReiheStart)
[point, below=of
zweiteReiheStartOben] {};
{
[start chain=elif going right]
\chainin (zweiteReiheStart);
\node [terminal] {elif};
\node [nonterminal]
{Bedingung};
\node [terminal] {:};
\node [nonterminal]
{Anweisungsblock};
\node (elifEnde) [point] {};
\node (elifEndeOben) [point,
above=of elifEnde] {};
\draw[->,left] (elifEndeOben)
-- (ersteReiheEndeUnten);
}
\node (dritteReiheStart) [point,
below=of zweiteReiheStart,
yshift=-5mm] {};
\node (vierteReiheStart) [point,
below=of dritteReiheStart,
yshift=-5mm] {};
\node (vierteReiheEnde) [point,
xshift=84mm] {};
{
[start chain=else going right]
\chainin (dritteReiheStart);
\node [terminal] {else};
\node [terminal] {:};
\node (elseEnde) [nonterminal]
{Anweisungsblock};
\draw[->] (elseEnde)
-| (vierteReiheEnde);
}
\node (ende) [endpoint] {};
\end{lstlisting}
\vspace{0.6cm}
\hrule width \textwidth
\vspace{1cm}
\begin{tikzpicture}[syntaxdiagramm]
\node [] {};
\node [terminal] {if};
\node [nonterminal] {Bedingung};
\node [terminal] {:};
\node [nonterminal] {Anweisungsblock};
\node (ersteReiheEnde) [point] {};
\node (ersteReiheEndeUnten) [point, below=of ersteReiheEnde] {};
\node (zweiteReiheStartOben) [point, left=of ersteReiheEndeUnten, xshift=-75mm] {};
\node (zweiteReiheStart) [point, below=of zweiteReiheStartOben] {};
{
[start chain=elif going right]
\chainin (zweiteReiheStart);
\node [terminal] {elif};
\node [nonterminal] {Bedingung};
\node [terminal] {:};
\node [nonterminal] {Anweisungsblock};
\node (elifEnde) [point] {};
\node (elifEndeOben) [point, above=of elifEnde] {};
\draw[->,left] (elifEndeOben) -- (ersteReiheEndeUnten);
}
\node (dritteReiheStart) [point, below=of zweiteReiheStart, yshift=-5mm] {};
\node (vierteReiheStart) [point, below=of dritteReiheStart, yshift=-5mm] {};
\node (vierteReiheEnde) [point, xshift=84mm] {};
{
[start chain=else going right]
\chainin (dritteReiheStart);
\node [terminal] {else};
\node [terminal] {:};
\node (elseEnde) [nonterminal] {Anweisungsblock};
\draw[->] (elseEnde) -| (vierteReiheEnde);
}
\node (ende) [endpoint] {};
\end{tikzpicture}
\end{document}
|