直譯器模式

2022-03-08 17:03:16 字數 931 閱讀 1258

直譯器模式(interpreter):給定乙個語言,定義它的方法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子。

context命令類,包含直譯器之外的一些全域性資訊。

class

context

set

}private

string

_output;

public

string

output

set

}}

abstractexpression抽象類(抽象表示式)

abstract

class

abstractexpression

terminalexpression(終結表示式),實現與方法中的終結符相關聯的解釋操作。實現抽象表示式中所要求的介面,主要是乙個interpret()方法。方法中每乙個終結符都有乙個具體終結表示式與之相對應。

class

terminalexpression : abstractexpression

}

nonterminalexpression(非終結表示式),為方法中的非終結符實現解釋操作。對方法中每一條規則r1、r2......rn都需要乙個具體的非終結符表示式類。通過實現抽象表示式的interpret()方法實現解釋操作。解釋操作以遞迴方法呼叫上面所提到的代表r1、r2......rn中各個符號的例項變數。

class

nonterminalexpression : abstractexpression

}

客戶端**

static

void main(string

args)

console.readkey();

}

直譯器模式

include include include include include using namespace std 直譯器模式 給定一種語言,定義它的文法的一種表示,並定義乙個直譯器 該直譯器使用該表示來解釋語言中的句子 類似於程式語言或者指令碼 假設情景是乙個指令碼控制系統 wasd上下左右方...

直譯器模式

1 模式定義 直譯器模式 interpreter pattern 定義語言的文法,並且建立乙個直譯器來解釋該語言中的句子,這裡的 語言 意思是使用規定格式和語法的 它是一種類行為型模式。2 模式結構 直譯器模式包含如下角色 abstractexpression 抽象表示式 terminalexpre...

直譯器模式

給定乙個語言,定義它的文法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子。要解決的問題 如果一種特定型別的問題發生的頻率足夠高,那麼可能就值得將該問題的各個例項表述為乙個簡單語言中的句子。這樣就可以構造乙個直譯器,該直譯器通過解釋這些句子來解決該問題。的好處 當有乙個語言需要解...