Zadanie bolo nasledovne: program mal postupne spracovat riadky vstupneho suboru a rozhodnut, ci je riadok zapisany syntakticky spravne. Riadok mal nasledovnu strukturu:
deklaracia; deklaracia; vyraz
Zopar konkretnych prikladov spravnych riadkov:
a:int; meno, titul: string; (1 + a) * meno + " " +titul
1 + 2
a : int; a : int; 4 / 5
a : int ;" ahoj" + "\" + """ + 3 * "pozor" + ("r" * 2)
;; 4
1 / 0
int:int; string:string; int * string
Chybne riadky:
---a:int; 1
a: kapusta; b:string; 2
a:int; a:string; 3
a:int; b:string; (a + 2) * (b + "retacez") + 2
(1 + 2) * (1 + 3) - ( 23 - (1
V deklaracii boli povolene c-kovske identifikatory ([A-Za-z_][A-Za-z0-9_]*) oddelene ciarkou ',' - na konci bol za dvojbodkou ':' uvedeny typ a to bud 'int', alebo 'string'.
Obidve deklaracie su optional.
Za poslednou bodkociarkou na riadku ';' sa nachadzal vyraz, ktory mal program preskumat a zhodnotit, ci je syntakticky spravny. Int-y bolo mozne nasobit, delit, scitavat, odcitavat. Int a string bolo mozne nasobit (vysledkom bol string) a stringy bolo mozne scitavat.
Ak bol riadok spravny, do vystupneho suboru program zapisal "Ok", v opacnom pripade zapisal na vystupny riadok jednoducho "Error". Inymi slovami: program nemal vyraz vyhodnotit (i ked i s touto myslienkou chvilu zadavatel ulohy koketoval ;-) ) - len urcit ci je spravne zadany => cisla i identifikatory mohli byt lubovolne dlhe.
Uspesnost nebola vysoka. Zapocet nakoniec bolo mozne dostat, i ked program v niektorych krajnych pripadoch nepodal spravny vysledok a bolo jasne, ze je mozne chybu v priebehu 20 min opravit :-).