class variable {
private:
  string name;
  string value;
  //  typedef  enum vartype = {global, local, undefined};
  int vartype;

public:
  void setValue(string v) {value=v;}
  string getValue(){return value;}
  void setVarType(string t) {vartype=t;}
  variable(string n):name(n), value(""),vartype(0); //?
  variable(string n, string v):name(n),value(v), vartype(0);
  variable(string n, int t):name(n),value(""),vartype(t);
  variable(string n, string v, int t):name(n),value(v),vartype(t);
};

class procedure {
private:
  string name;
  vector<string> localVars;
};

class frame {
private: 
  procedure* invocationOf;
  map<string,variable*> variableInstance;

};






