c 設計模式 直譯器模式

2021-06-18 09:48:59 字數 600 閱讀 7455

直譯器模式(interpreter)定義了乙個類體系,用於實現乙個小型語言的直譯器。它與組合模式很相似,而且常常利用組合模式來實現語法樹的構建。

good:通常當乙個語言需要解釋執行,並且你可以將該語言中的句子表示成為乙個抽象的語法樹時,可以使用直譯器模式。

res:

c++實現:

#include #include #include using namespace std;

class context;

class abstractexpression;

class expression : public abstractexpression};

class nonterminalexpression : public abstractexpression};

int main(int argc, char* argv)

return 0;

}

設計模式 直譯器模式(C 實現)

直譯器模式 interpreter pattern 提供了評估語言的語法或表示式的方式,屬於行為型模式。這種模式實現了乙個表示式介面,該介面解釋乙個特定的上下文。常被用在 sql 解析 符號處理引擎等。1 當有乙個語言需要解釋執行 並且你可將該語言中的句子表示為乙個抽象語法樹時,可使用直譯器模式。而...

設計模式 二十 直譯器模式 C

直譯器模式需要解決的是,如果一種特定型別的問題發生的頻率足夠高,那麼可能就值得將該問題的各個例項表述為乙個簡單語言中的句子。這樣就可以構建乙個直譯器,該直譯器通過解釋這些句子來解決該問題。當有乙個語言需要解釋執行,並且你可將該語言中的句子表示為乙個抽象語法樹時,可使用直譯器模式。include in...

設計模式 直譯器模式

未來機器智慧型化已然成為趨勢,現在手機都能聽懂英語和普通話,那我大中華幾萬種方言的被智慧型化也許也是趨勢,我們的方言雖然和普通話相似,但是還是不一樣的。這可能需要乙個新的語法分析器來幫助我們。我們的直譯器模式就是描述了如何為簡單的語言定義乙個文法,如何在該語言中表示乙個句子,以及如何解釋這些句子。但...