blob: edbae5b1a2b44119a83a5731fa8d1ff8f13dce29 (
plain) (
blame)
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
|
% vim: set spelllang=nl:
\subsection{Commando's}
\label{sec:intro:commands}
We zullen nu kort op informele wijze de verschillende commando's in Smurf
beschrijven. We geven telkens de notatie in Smurf syntax en een leesbaarder
alternatief dat we hieronder zullen gebruiken. Wanneer een commando iets met
elementen op de stack doet, worden die elementen altijd verwijderd.
\begin{description}[style=nextline,font=\normalfont]
\item[\smurfinline{"..."} of $\StmPush~\texttt{...}$]
waarbij `\texttt{...}' een string is. Zet de string \texttt{...} op de
stack.
\item[\smurfinline{+} of $\StmCat$]
Concateneert de bovenste twee strings (laagste eerst) op de stack en zet
het resultaat op de stack.
\item[\smurfinline{i} of $\StmInput$]
Plaatst een string van `user input' op de stack. Hierbij wordt
\texttt{\textbackslash} gebruikt om LF-karakters, dubbele aanhalingstekens
en backslashes te escapen.
\item[\smurfinline{o} of $\StmOutput$]
Stuurt het bovenste element van de stack naar `de output'.
\item[\smurfinline{p} of $\StmPut$]
Zet de waarde van de variabelenaam bovenop de stack tot de string daaronder
op de stack.
\item[\smurfinline{h} of $\StmHead$]
Zet het eerste karakter van de string bovenop de stack als string op de
stack.
\item[\smurfinline{t} of $\StmTail$]
Zet alles behalve de head van de string bovenop de stack op de stack.
\item[\smurfinline{q} of $\StmQuotify$]
Manipuleert de string bovenop de stack zodat die als $\StmPush$-commando in
een Smurfprogramma kan worden gebruikt: escapet LF-karakters, dubbele
aanhalingstekens en backslashes met een backslash, en plaatst dubbele
aanhalingstekens om de hele string. Het resultaat wordt op de stack gezet.
\item[\smurfinline{x} of $\StmExec$]
Voert de string bovenop de stack uit als Smurfprogramma. Het programma
begint met een schone toestand, d.w.z. met een lege stack en variable
store. Dit commando maakt condities, recursie en iteratie mogelijk.
\end{description}
|