Jezik aritmetičnih izrazov razširite tako, da bo prepoznal tudi programe naslednje oblike:
var stevilo = 10;
var fakulteta = 1;
for (var i = 1, stevilo - 1) {
fakulteta = fakulteta * i;
}
print(fakulteta);
Dodatni terminalni simboli:
\[\begin{aligned} \text{assign} &= \texttt{=}\\ \text{define} &= \texttt{var}\\ \text{term} &= \texttt{;}\\ \text{for} &= \texttt{for}\\ \text{to} &= \texttt{,}\\ \text{begin} &= \texttt{\{}\\ \text{end} &= \texttt{\}}\\ \text{print} &= \texttt{print}\\ \end{aligned}\]Program naj iz vhodne datoteke prebere izvorni program in izpiše tokene v izhodno datoteko v formatu: terminal("leksem") terminal("leksem") ...
. Imeni datotek bo program dobil kot konzolna argumenta.
Uporaba knjižnic za regularne izraze ni dovoljena.
Nalogo oddajte na GitHub, link.