行為型模式 直譯器 interpreter

2021-07-29 12:53:15 字數 2447 閱讀 4114

給定乙個語言,定義它的文法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子.

main.cc:

#include 

#include "context.h"

#include "terminal_expression.h"

#include "operator_nonterminal_expression.h"

/*design_pattern:"interpreter"

two digit four arithmetic operations.

*/int main()

context:

#ifndef helendp_source_context_h_

#define helendp_source_context_h_

#include

using

namespace

std;

#define expression_max_length 3

class context;

#endif

#include "context.h"

context::context(string str)

else

printf("context construct error,str length is %d\n",str.length());

}context::~context()

expression:

#ifndef helendp_source_expression_h_

#define helendp_source_expression_h_

#include "context.h"

class

expression;

#endif

#include "expression.h"

expression::expression()

expression::~expression()

terminalexpression:

//terminal_expression.h

#ifndef helendp_source_terminal_expression_h_

#define helendp_source_terminal_expression_h_

#include "expression.h"

class terminalexpression : public expression;

#endif

//terminal_expression.cc

#include "terminal_expression.h"

terminalexpression::terminalexpression(unsigned char

value)

terminalexpression::~ terminalexpression()

int terminalexpression::interpreter(context context)

operatornonterminalexpression:

//operator_nonterminal_expression.h

#ifndef helendp_source_operator_nonterminal_expression_h_

#define helendp_source_operator_nonterminal_expression_h_

#include "expression.h"

class operatornonterminalexpression : public expression;

#endif

//operator_nonterminal_expression.cc

#include "operator_nonterminal_expression.h"

operatornonterminalexpression::operatornonterminalexpression(expression *expression_1,expression *expression_2)

operatornonterminalexpression::~operatornonterminalexpression()

int operatornonterminalexpression::interpreter(context context)

return result;

}

**和uml圖(ea)工程檔案,最後會整理打包上傳.

行為型模式 直譯器

給定乙個語言,定義它的文法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子。直譯器模式 interpreter 是一種針對特定問題設計的一種解決方案。例如,匹配字串的時候,由於匹配條件非常靈活,使得通過 來實現非常不靈活。舉個例子,針對以下的匹配條件 因此,需要一種通用的表示方法...

行為型模式 直譯器

直譯器模式 interpreter 是一種針對特定問題設計的一種解決方案。例如,匹配字串的時候,由於匹配條件非常靈活,使得通過 來實現非常不靈活。舉個例子,針對以下的匹配條件 因此,需要一種通用的表示方法 正規表示式來進行匹配。正規表示式就是乙個字串,但要把正規表示式解析為語法樹,然後再匹配指定的字...

行為型模式 直譯器模式

定義乙個語言的文法,並且建立乙個直譯器來解釋該語言中的句子,這裡的 語言 是指使用規定格式和語法的 直譯器模式是一種類行為型模式。abstract class abstractexpression class terminalexpression extends abstractexpression...