#ifndef _STG_H
#define _STG_H


#include <vector>

using namespace std;

// struktura nesouci data o jednom prechodu
struct Tran{
int stavInd;              // index pod nimz je ulozen nazev prechodu
char riseOrFall;          // zda je prechod rostouci nebo klesajici
int* indexPlace;          // dynamicke pole nesouci index ve vectoru Place v STG
int numOfip;              // pocet prvku v index place
};

// struktura nesouci data o jednom mistu
struct Place{             
char token;               // nese informaci zda obsahuje token nebo ne
int indexTran;            // nesouci index ve vectoru Tran v STG
};


// nosna struktura STG
struct Stg {
      int sizeCode;             //velikost kodu
      char *initCode ;          // pocatecni kod
      vector<Place*>  place;    //vektor mist
      vector<Tran*>   tran;     //vektor prechodu
      int pocetPlace;           //pocet mist ve vektoru
      int pocetTran;            //pocet prechodu ve vektoru
      int* vyP;                 // index vystupu
      int pocetVyP;             // pocets vystupu
      vector<string>  nazvy;    // jmena signalu
      vector<int>  nazvyp;
      string nameFile;          // jmeno vzstupniho souboru
};

#endif
