給定乙個語言,定義它文法的一種表示,並定義乙個直譯器,用於解釋該表示。
主要組成:
abstractexpression-抽象表示式
terminalexpression-終止符表示式
nonterminalexpression-非終止符表示式
context-上下文
using system;
namespace interpreter
/// /// 布林表示式
///
class booleanexp : expressionclass
public override bool interpret()
}/// /// 或表示式
///
class orexp : expressionclass
public override bool interpret()
}/// /// 與表示式
///
class andexp : expressionclass
public override bool interpret()}}
呼叫:
using system;
namespace interpreter}}
結果:
c 設計模式 直譯器模式
直譯器模式 interpreter 定義了乙個類體系,用於實現乙個小型語言的直譯器。它與組合模式很相似,而且常常利用組合模式來實現語法樹的構建。good 通常當乙個語言需要解釋執行,並且你可以將該語言中的句子表示成為乙個抽象的語法樹時,可以使用直譯器模式。res c 實現 include inclu...
設計模式 直譯器模式(C 實現)
直譯器模式 interpreter pattern 提供了評估語言的語法或表示式的方式,屬於行為型模式。這種模式實現了乙個表示式介面,該介面解釋乙個特定的上下文。常被用在 sql 解析 符號處理引擎等。1 當有乙個語言需要解釋執行 並且你可將該語言中的句子表示為乙個抽象語法樹時,可使用直譯器模式。而...
設計模式 二十 直譯器模式 C
直譯器模式需要解決的是,如果一種特定型別的問題發生的頻率足夠高,那麼可能就值得將該問題的各個例項表述為乙個簡單語言中的句子。這樣就可以構建乙個直譯器,該直譯器通過解釋這些句子來解決該問題。當有乙個語言需要解釋執行,並且你可將該語言中的句子表示為乙個抽象語法樹時,可使用直譯器模式。include in...