首页 > 代码库 > Interpreter模式(C++解释器模式)
Interpreter模式(C++解释器模式)
Interpreter模式提供了一个实现语法解释器的框架,其目的就是使用一个解释器为用户提供一个一门定义语言语法表示的解释器,并且通过这个解释器来解释语言中的句子。
Interpreter模式使用类来表示文法规则,因此方便于文法的扩展。
代码如下:
#include <iostream> #include <string> using namespace std; class Context { public: Context(){} ~Context(){} }; class AbstractExpression { public: virtual ~AbstractExpression(){} virtual void Interpret(const Context& c){} protected: AbstractExpression(){} }; class TerminalExpression:public AbstractExpression { public: TerminalExpression(const string& statement) {m_statement=statement;} ~TerminalExpression(){} void Interpret(const Context& c) {cout<<"TEMINALEXPRESSION"<<endl;} private: string m_statement; }; class NonterminalExpression:public AbstractExpression { public: NonterminalExpression(AbstractExpression* ex,int times) { m_ex=ex; m_times=times; } ~NonterminalExpression(){}; void Interpret(const Context& c) { for(int i=0;i < m_times; i++) m_ex->Interpret(c); } private: AbstractExpression* m_ex; int m_times; }; void main() { Context* c=new Context(); AbstractExpression* abs=new TerminalExpression("Hello"); AbstractExpression* nabs=new NonterminalExpression(abs,2); nabs->Interpret(*c); delete nabs; delete abs; delete c; }
Interpreter模式(C++解释器模式)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。