add_to_s a [] = [a]
add_to_s a b = b ++ [a]
-x = 5
-y = 1
-stack = []
-
Start = vijffaculteit
eenfaculteit = d(notc(gre(sub(e 1(e 1(notc(sub(e 1(roll(e 1(e 3(dup(roll(e 1(e 2[1,1])))))))))))))))
tweefaculteit = d(notc(gre(sub(e 1(e 1(notc(sub(e 1(roll(e 1(e 3(dup(roll(e 1(e 2 tweefaculteit1)))))))))))))))
tweefaculteit1 = roll(e 1(e 2(d(roll(e 2(e 3(sub(e 1(roll(e 1(e 3(dup(roll(e 1(e 2(d(roll(e 1(e 2(mul(roll(e 1(e 4(dup(roll(e 2(e 3(dup tweefaculteit2))))))))))))))))))))))))))))
-tweefaculteit2 = d(notc(gre(sub(e 1(e 1(notc(sub(e 1(roll(e 1(e 3(dup(roll(e 1(e 2(e 1 (e 2 stack)))))))))))))))))
+tweefaculteit2 = d(notc(gre(sub(e 1(e 1(notc(sub(e 1(roll(e 1(e 3(dup(roll(e 1(e 2(e 1 (e 2 [])))))))))))))))))
vijffaculteit = d(notc(gre(sub(e 1(e 1(notc(sub(e 1(roll(e 1(e 3(dup(roll(e 1(e 2 vijffaculteit1)))))))))))))))
vijffaculteit1 = roll(e 1(e 2(d(roll(e 2(e 3(sub(e 1(roll(e 1(e 3(dup(roll(e 1(e 2(d(roll(e 1(e 2(mul(roll(e 1(e 4(dup(roll(e 2(e 3(dup vijffaculteit2))))))))))))))))))))))))))))
vijffaculteit6 = d(notc(gre(sub(e 1(e 1(notc(sub(e 1(roll(e 1(e 3(dup(roll(e 1(e 2 vijffaculteit7)))))))))))))))
vijffaculteit7 = roll(e 1(e 2(d(roll(e 2(e 3(sub(e 1(roll(e 1(e 3(dup(roll(e 1(e 2(d(roll(e 1(e 2(mul(roll(e 1(e 4(dup(roll(e 2(e 3(dup [1,5]))))))))))))))))))))))))))))
//[1,5] is the outcome of vijffaculteit8, but it won't run if not substituted
-vijffaculteit8 = d(notc(gre(sub(e 1(e 1(notc(sub(e 1(roll(e 1(e 3(dup(roll(e 1(e 2(e y (e x stack)))))))))))))))))
+vijffaculteit8 = d(notc(gre(sub(e 1(e 1(notc(sub(e 1(roll(e 1(e 3(dup(roll(e 1(e 2(e 1 (e 5 [])))))))))))))))))
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 \ |\ pop\ |\ add\ |\ subtract\
+\\$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