interpreter
模式提供了乙個實現語法直譯器的框架,其目的就是使用乙個直譯器為使用者提供乙個一門定義語言語法表示的直譯器,並且通過這個直譯器來解釋語言中的句子。
interpreter
模式使用類來表示文法規則,因此方便於文法的擴充套件。
**如下:
#include #include using namespace std;
class context
~context(){}
};class abstractexpression
virtual void interpret(const context& c){}
protected:
abstractexpression(){}
};class terminalexpression:public abstractexpression
~terminalexpression(){}
void interpret(const context& c)
private:
abstractexpression* m_ex;
int m_times;
};void main()
C 設計模式之Interpreter
名稱 interpreter 結構 意圖 給定乙個語言,定義它的文法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子。適用性 當有乙個語言需要解釋執行,並且你可將該語言中的句子表示為乙個抽象語法樹時,可使用直譯器模式。而當存在以下情況時該模式效果最好 該文法簡單對於複雜的文法,文...
設計模式 interpreter模式
理解 可以廣義的理解為創造一種語言,實現該語言的直譯器,然後用創造的語言編寫程式 對比 如xml就是一種語言,解析xml的 就是直譯器 例子 目標 定義4中幾種命令,使用c 解析 如下 command go end command back end command right end command...
C 設計模式 直譯器(Interpreter)
給定乙個語言,定義它文法的一種表示,並定義乙個直譯器,用於解釋該表示。主要組成 abstractexpression 抽象表示式 terminalexpression 終止符表示式 nonterminalexpression 非終止符表示式 context 上下文 using system name...