/* An environ represent a stack frame block. */ #ifndef ENVIRON_H #define ENVIRON_H #include "decl.hpp" #include "label.hpp" #include "type.hpp" class Environ { public: int level; DeclSeq* decls; DeclSeq* funcDecls; DeclSeq* typeDecls; vector types; vector labels; Environ* globals; Type* returnType; string funcLabel, breakLabel; list children; //for delete! Environ(const string& f, Type* r, int l, Environ* gs); ~Environ(); Decl* findDecl(const string& s); Decl* findFunc(const string& s); Type* findType(const string& s); Label* findLabel(const string& s); Label* insertLabel(const string& s, int def, int src, int sz); string setBreak(const string& s); }; #endif