int adrProm(char *id) { PrvekTab *p = hledejId(id); if (!p) { Chyba(id, "neni deklarovan"); return 0; } else if (p->druh != IdProm) { Chyba(id, "neni identifikatorem promenne"); return 0; } else return p->hodn; }
DruhId idPromKonst(char *id, int *v) { PrvekTab *p = TabSym; while (p) if (strcmp(id,p->ident)==0) { *v = p->hodn; return p->druh; } else p = p->dalsi; Chyba(id, "neni deklarovan"); return Nedef; }
bool isArr(char* id) { PrvekTab* help = hledejId(id); if (help == NULL) { Chyba(id, "neni deklarovan"); return false; } if (help->druh == IdPole) return true; return false; }
void deklKonst(char *id, int val) { PrvekTab *p = hledejId(id); if (p) { Chyba(id, "druha deklarace"); return; } if (TabSym == NULL) TabSym = new PrvekTab(id, IdKonst, val, NULL); else { PrvekTab *help = TabSym; while (help->dalsi != NULL) help = help->dalsi; help->dalsi = new PrvekTab(id, IdKonst, val, NULL); } }
void deklProm(char *id) { PrvekTab *p = hledejId(id); if (p) { Chyba(id, "druha deklarace"); return; } if (TabSym == NULL) TabSym = new PrvekTab(id, IdProm, volna_adr, NULL); else { PrvekTab *help = TabSym; while (help->dalsi != NULL) help = help->dalsi; help->dalsi = new PrvekTab(id, IdProm, volna_adr, NULL); } volna_adr++; }
void deklPole(char* id, int s, int e) { PrvekTab *p = hledejId(id); if (p) { Chyba(id, "druha deklarace"); return; } for (; s < e; ++s) { if (TabSym == NULL) TabSym = new PrvekTab(id, IdPole, volna_adr, NULL); else { PrvekTab *help = TabSym; while (help->dalsi != NULL) help = help->dalsi; help->dalsi = new PrvekTab(id, IdPole, volna_adr, NULL); } volna_adr++; } }
int main () { hra_t* hra = malloc(sizeof(hra_t)); if (hra == NULL) Chyba(ERRMALLOC, NULL, NULL); char* prikaz = malloc(MAXDELKAPRIKAZU); if (prikaz == NULL) Chyba(ERRMALLOC, NULL, hra); char kontrola; Inicializace(hra); hra->barva = BILA; AktualizujGrafiku(hra); // Inicializace síťového připojení if (hra->barva == BILA) { while (true) { while (true) { printf("Zadej tah "); if (hra->barva == BILA) printf ("(bílý): "); else printf ("(černý): "); kontrola = NactiPrikaz(prikaz, MAXDELKAPRIKAZU); if (kontrola == ERRKONEC) Chyba(OK, prikaz, hra); else if (kontrola == ERRPRIKAZ) Chyba(kontrola, prikaz, hra); else if (kontrola != OK) { printf("Špatný příkaz "); continue; } if (!ZpracujPrikaz(prikaz, hra)) { printf("Špatný příkaz "); continue; } break; } if (hra->barva == CERNA) hra->barva = BILA; else hra->barva = CERNA; AktualizujGrafiku(hra); if (hra->flagy[BMAT] == true || hra->flagy[CMAT] == true) { break; } } } // while (true) // { // printf("Cykl"); // // Uložení příchozího příkazu do proměné příkaz // if (!ZpracujPrikaz(prikaz, hra)) Chyba(ERRPRIKAZ, prikaz, hra); // AktualizujGrafiku(hra); // while (true) // { // kontrola = NactiPrikaz(prikaz, MAXDELKAPRIKAZU); // if (kontrola == ERRPRIKAZ) Chyba(ERRPRIKAZ, prikaz, hra); // if (kontrola == OK) break; // } // if (!ZpracujPrikaz(prikaz, hra)) Chyba(ERRPRIKAZ, prikaz, hra); // AktualizujGrafiku(hra); // } Chyba(OK, prikaz, hra); return 0; }