什麼是直譯器模式?
直譯器模式:擬定一種 「語言」,定義該語言文法的一種表示,並定義一種直譯器,這個直譯器使用該表示文法來解釋語言中的句子。
直譯器模式**示例:
(1)**示例1:
1 #include 2 #include 3 #includeview code4using
namespace
std;56
class
context;78
class
abstractexpression9;
1314
class terminalexpression : public
abstractexpression
1521
};22
23class nonterminalexpression : public
abstractexpression
2430
};31
32class
context33;
3738
intmain()
3951
52return0;
53}54//
result:
55/*
56終端直譯器
57非終端直譯器
58終端直譯器
59終端直譯器
60*/
(2)**示例2:
1 #include 2 #include 3 #include 45view codeusing
namespace
std; 67
class
context817
18int getvalue(string
key)
1922
};23
24class
abstractexpression25;
2930
class addnonterminalexpression : public
abstractexpression
3142
43int
interpreter(context context)
4447
};48
49class subtractnonterminalexpression : public
abstractexpression
5061
62int
interpreter(context context)
6366
};67
68class terminalexpression : public
abstractexpression
6976
77int
interpreter(context context)
7881
};82
83int
main()
84
應用通常當乙個語言需要解釋執行,並且你可以將語言中的句子表示成為乙個抽象的語法樹時,可以使用直譯器模式。
good good study, day day up.
順序 選擇 迴圈 總結
直譯器模式
include include include include include using namespace std 直譯器模式 給定一種語言,定義它的文法的一種表示,並定義乙個直譯器 該直譯器使用該表示來解釋語言中的句子 類似於程式語言或者指令碼 假設情景是乙個指令碼控制系統 wasd上下左右方...
直譯器模式
1 模式定義 直譯器模式 interpreter pattern 定義語言的文法,並且建立乙個直譯器來解釋該語言中的句子,這裡的 語言 意思是使用規定格式和語法的 它是一種類行為型模式。2 模式結構 直譯器模式包含如下角色 abstractexpression 抽象表示式 terminalexpre...
直譯器模式
給定乙個語言,定義它的文法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子。要解決的問題 如果一種特定型別的問題發生的頻率足夠高,那麼可能就值得將該問題的各個例項表述為乙個簡單語言中的句子。這樣就可以構造乙個直譯器,該直譯器通過解釋這些句子來解決該問題。的好處 當有乙個語言需要解...