給定乙個語言,定義它的文法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子.
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...