# Zápočtový test 26. 1.

<{ForumPost(poster="kedrigern", timestamp=2011-01-26 19:50:46)}>
Dneska jsme programovali jednoduchý interpret jazyka s operacemi:  
- deklarování proměnné  
- dekrementace prom.  
- inkrementace prom.  
- IF ... GOTO (+ label)  
  
Podmínka byla jednoduchá pouze porovnání konstanty a proměnné.  
  
Čili celkem dva větší úkoly. Nějak to naparsovat ze souboru a pak to spočítat. Plus ještě vypisovat nějaké základní chyby.  
  
S využitím datových struktur a funkcí .NETu to nebylo těžké.  
Parsoval jsem pomocí: 

    Console.ReadLine().Split(new char[] {' ', '\t'} , StringSplitOptions.RemoveEmptyEntries);

A pak nějákých podmínek. V zadání byl hint s RegExpy (a konkrétní třída), ale  to co znám mi přišlo jednodušší.  
  
Proměnné a labely jsem měl v System.Collection.Generic.Dictionary.
<{/ForumPost}>

<{ForumPost(poster="Tommassino", timestamp=2011-01-27 15:15:57)}>
Interpret měl umět detekovat některé nekonečné cykly (pro každý řádek si pamatovat všechny předchozí stavy hodnot proměnných a kontrolovat na shodu), skoky dopředu (znamenalo labely zaznamenavat už při parsování a při runtime do jiného dictionary), dozadu a vypisovat různé chyby - redeklarace proměnných, labelů; nedeklarace proměnných, labelů etc.  
Regexpy mi prisly jednodussi... :)  
proměnné jsem měl v sorteddictionary
<{/ForumPost}>

