#ifndef jk_STATICPASS_HPP #define jk_STATICPASS_HPP #include "commons.hpp" #include "SymTable.hpp" #include "Node.hpp" namespace jk { class StaticPass { public: explicit StaticPass(std::shared_ptr sym, Logger& logger); virtual ~StaticPass(); void pass(std::shared_ptr node); void add_static(std::string const& name); private: std::shared_ptr m_sym; Logger& m_logger; std::vector> m_types; std::vector m_statics; void push(std::shared_ptr type); std::shared_ptr pop(); }; } #endif