直譯器模式(interpreter):給定乙個語言,定義它的方法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子。
context命令類,包含直譯器之外的一些全域性資訊。
classcontext
set
}private
string
_output;
public
string
output
set
}}
abstractexpression抽象類(抽象表示式)
abstractclass
abstractexpression
terminalexpression(終結表示式),實現與方法中的終結符相關聯的解釋操作。實現抽象表示式中所要求的介面,主要是乙個interpret()方法。方法中每乙個終結符都有乙個具體終結表示式與之相對應。
classterminalexpression : abstractexpression
}
nonterminalexpression(非終結表示式),為方法中的非終結符實現解釋操作。對方法中每一條規則r1、r2......rn都需要乙個具體的非終結符表示式類。通過實現抽象表示式的interpret()方法實現解釋操作。解釋操作以遞迴方法呼叫上面所提到的代表r1、r2......rn中各個符號的例項變數。
classnonterminalexpression : abstractexpression
}
客戶端**
staticvoid main(string
args)
console.readkey();
}
直譯器模式
include include include include include using namespace std 直譯器模式 給定一種語言,定義它的文法的一種表示,並定義乙個直譯器 該直譯器使用該表示來解釋語言中的句子 類似於程式語言或者指令碼 假設情景是乙個指令碼控制系統 wasd上下左右方...
直譯器模式
1 模式定義 直譯器模式 interpreter pattern 定義語言的文法,並且建立乙個直譯器來解釋該語言中的句子,這裡的 語言 意思是使用規定格式和語法的 它是一種類行為型模式。2 模式結構 直譯器模式包含如下角色 abstractexpression 抽象表示式 terminalexpre...
直譯器模式
給定乙個語言,定義它的文法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子。要解決的問題 如果一種特定型別的問題發生的頻率足夠高,那麼可能就值得將該問題的各個例項表述為乙個簡單語言中的句子。這樣就可以構造乙個直譯器,該直譯器通過解釋這些句子來解決該問題。的好處 當有乙個語言需要解...