#ifndef INCLUDE_TCG_SENTENCETRANSLATOR_BASETRANSLATOR_H_ #define INCLUDE_TCG_SENTENCETRANSLATOR_BASETRANSLATOR_H_ #include "Public/Public.h" #include "Public/TAC.h" #include "TCG/SymbolManager.h" #include "TCG/ASM.h" class BaseTranslator { public: // 完成对语句的翻译 ASMLines SentenceTranslate(SymbolManager&, TACLine&); virtual ASMLines SentenceTranslate_(SymbolManager&, TACLine&) = 0; }; inline ASMLines BaseTranslator::SentenceTranslate(SymbolManager& SymbolManager_, TACLine& TACLine_) { SymbolManager_.set_scope(TACLine_.scope); return this->SentenceTranslate_(SymbolManager_, TACLine_); } #endif // INCLUDE_TCG_SENTENCETRANSLATOR_BASETRANSLATOR_H_