\subsection{Originele Syntax}
De ware syntax voor piet is makkelijk te beschrijven in een zeer grote tabel
die gedeeltelijk beschreven is in tabel \ref{tab:sy1}.
\begin{table}[h]
	\caption{Gedeelte van ware syntax van \textit{Piet}}
	\label{tab:sy1}
	\begin{tabular}{l|cccccc} %p{1em}|p{1em}p{1em}p{1em}p{1em}p{1em}p{1em}p{1em}}
		\textbackslash & {\color{lred}\#}  & {\color{lyellow}\#} & 
					     {\color{lgreen}\#}& {\color{lcyan}\#} &
					     {\color{lblue}\#} & ...\\
		\hline
		{\color{lred}\#}		& - & inc & dup & gre & ... & ...\\
		{\color{lyellow}\#}		& add & - & inc & dup & ... & ...\\
		{\color{lgreen}\#}		& div & add & - & inc & ... & ...\\
		{\color{lcyan}\#}		& gre & div & add & - & ... & ...\\
		{\color{lblue}\#}		& dup & gre & div & add & ... & ...\\
		{\color{lmagenta}\#}	& inc & dup & gre & div & ... & ...\\
		{\color{red}\#}			& pus & oun & rol & ... & ... & ...\\
		{\color{yellow}\#}		& sub & pus & oun & ... & ... & ...\\
		{\color{green}\#}		& mod & sub & pus & ... & ... & ...\\
		{\color{cyan}\#}		& poi & mod & sub & ... & ... & ...\\
		{\color{blue}\#}		& rol & poi & mod & ... & ... & ...\\
		{\color{magenta}\#}		& oun & rol & poi & ... & ... & ...\\
		{\color{dred}\#}		& pop & ouc & ouc & ... & ... & ...\\
		{\color{dyellow}\#}		& mul & pop & ouc & ... & ... & ...\\
		{\color{dgreen}\#}		& not & mul & pop & ... & ... & ...\\
		{\color{dcyan}\#}		& swi & not & mul & ... & ... & ...\\
		{\color{dblue}\#}		& inn & swi & not & ... & ... & ...\\
		{\color{dmagenta}\#}	& ouc & ouc & swi & ... & ... & ...\\
		{\color{black}\#}		& blo & blo & blo & ... & ... & ...\\ 
		{\color{white}\#}		& ski & ski & ski & ... & ... & ...\\
	\end{tabular}
\end{table}

\subsection{Tussentaal}
Om de notatie leesbaar en overzichtelijk te houden beschrijven we de syntax
niet in de oorspronkelijke kleurennotatie maar gebruiken we een textuele
notatie. Dan ziet de grammatica er als volgt uit:\\
\\$S ::= S_1 ; S_2\ |\ push \: n\ |\ pop\ |\ add\ |\ subtract\
|\ multiply\ |\ divide\ |\mod\ |\\ not\ |\ greater\
|\ pointer\ |\ switch\ |\ duplicate\ |\ roll\ |\
innum\ |\ outnum$\\ 
\\Waarbij $n \in \mathbb{N}_1$. $\mathbb{N}_1$ word ook wel gebruikt om de set  $\mathbb{N}$ zonder 0 aan te geven. De parameter \textit{n} is hier toegevoegd omdat er anders in de tussentaal de grootte van het codel op het moment van de \textit{push} niet bekend is.\\
De commando's in(char) en out(char) worden in tegenstelling tot in(number) en out(number) in dit werkstuk niet behandeld.\\

\subsection{Piet'}
Omdat sommige simpele expressies in \textit{While} veel regels in beslag nemen
als deze omgeschreven zouden worden naar een semantisch equivalent programma in
de bovengenoemde tussentaal hebben we ook nog een tweede syntax: Piet'.  In
Piet' worden de commando's die beschreven worden in de tussentaal aangegeven
door de eerste drie letters van het commando, met uitzondering van het commando
\textit{push}. Voor het ophalen van een variabele zoals staat beschreven in
Paragraaf~\ref{subsec:unair} gebruiken we ook \textit{get n}. De commando's
worden gescheiden door komma's in plaats van puntkomma's.
