天天看點

設計模式之二十三:解釋器模式

解釋器模式: 

給定一個語言,定義了它的文法的一種表示,并定義了一個解釋器,這個解釋器使用該表示來解釋語言中的句子。 

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,如需轉載請自行聯系原作者

繼續閱讀