3.) Navrhnite jednym pravidlom deklaraciu premennych Vars ak definicia zacina klucovym slovom var, potom nasleduje nenulovy pocet nazvov premennych, za nimi dvojbodka a nasledovny typ T.
malo byt nejak tak:
Vars -> "var" id { "," id } " : " T //id - tak oznacoval Kolar premenne
zostrojit syntakticky analyzator aj so zotavenim pre procedure Vars(k:symset)
ako by ste riesili ?
Vars -> "var" id { "," id } " : " T
Vars(k:symset){
if (symbol == "var") getsymbol();
else error(H(id) | "," | ":" | H(T) | K);
id("," | H(id) | ":" | H(T) | K));
check("," | H(id) | ":" | H(T) | K);
while(symbol &("," | H(id)){
if (symbol == ",") getsymbol();
else error("," | H(id) | ":" | H(T) | K);
id("," | H(id) | ":" | H(T) | K);
check("," | H(id) | ":" | H(T) | K);
}
if (symbol == ":") getsymbol();
else error(H(T) | K);
T(K);
}