天天看点

设计模式之二十三:解释器模式

解释器模式: 

给定一个语言,定义了它的文法的一种表示,并定义了一个解释器,这个解释器使用该表示来解释语言中的句子。 

Given a language, define a representation for its grammar along with an interpreter that uses the representation to interpret sentences in the language.

UML图: 

设计模式之二十三:解释器模式

主要包括:

AbstractExpression:声明了一个运行操作的接口。

TerminalExpression:终结符表达式。实现与文法中终结符相关联的操作。

NonterminalExpression:非终结符表达式,为文法中非终结符实现解释操作。

对文法中的每一条规则R1,R2,R3…..都须要一个详细的非终结符表达式类。

Context:包括解释器外的一些全局信息。

Client:定义了一个抽象的语法树,这棵语法树用来表示语言中特定的句子。语法树由NonterminalExpression和TerminalExpression构成。

C++实现:

运行输出: 

本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5093575.html,如需转载请自行联系原作者

继续阅读