web解釋器模式的參與者有哪些

本文小編為大家詳細介紹“web解釋器模式的參與者有哪些”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當,希望這篇“web解釋器模式的參與者有哪些”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

創(chuàng)新互聯(lián)專注于企業(yè)營銷型網(wǎng)站、網(wǎng)站重做改版、密山網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、html5、購物商城網(wǎng)站建設、集團公司官網(wǎng)建設、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為密山等各大城市提供網(wǎng)站開發(fā)制作服務。

適用性

如果某種語言可以表示為足夠簡單的抽象語法樹,而且效率不是最重要因素,就可以使用解釋器模式。

結(jié)構(gòu)

web解釋器模式的參與者有哪些

參與者


? AbstractExpression (抽象表達式,如Expr)
—聲明抽象的解釋操作,這個操作被所有的子類共享。

?NonterminalExpression (非終結(jié)符表達式,如AdditiveExpr、MultiplicativeExpr等)
— 文法中所有可以分解為下級語法節(jié)點組合的語法節(jié)點都需要一個NonterminalExpression類來實現(xiàn)其功能。
—NonterminalExpression為下級語法節(jié)點維護一個AbstractExpression類型的列表。
— 實現(xiàn)解釋 (Interpret) 操作。解釋 (Interpret) 除了要遞歸調(diào)用表示下級語法節(jié)點的解釋操作之外,也可以對各個節(jié)點的解釋結(jié)果進行進一步計算。例如AdditiveExpr需要對每個MultiplicativeExpr的解釋結(jié)果進行廣義(加或減)的加法計算。

? TerminalExpression (終結(jié)符表達式,如IntegerLiteral等)

— 直接實現(xiàn)文法中的簡單操作或計算。
? Context(上下文)
— 包含解釋器之外的一些全局信息。
? Client(客戶)

— 構(gòu)建語法樹。

— 調(diào)用解釋操作。


協(xié)作


? Client構(gòu)建一個抽象語法樹. 然后初始化上下文并調(diào)用解釋操作。構(gòu)建語法樹也可以作為語法節(jié)點類的功能來實現(xiàn)。畢竟最熟悉語法節(jié)點的就是語法節(jié)點類自己。

? 每一非終結(jié)符表達式節(jié)點調(diào)用相應子表達式的解釋操作并合成處理結(jié)果。而各終結(jié)符表達式負責進行不依賴其他節(jié)點的簡單處理或計算。
? 每一節(jié)點的解釋操作可以通過上下文來存儲和訪問解釋器的狀態(tài)。例如取得或儲存的計算結(jié)果、取得事先定義的常量、調(diào)用預先登錄的函數(shù)等都需要通過上下文來實現(xiàn)。

讀到這里,這篇“web解釋器模式的參與者有哪些”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內(nèi)容的文章,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享題目:web解釋器模式的參與者有哪些
文章位置:http://muchs.cn/article8/ijoiip.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供微信小程序、靜態(tài)網(wǎng)站、手機網(wǎng)站建設、外貿(mào)建站、虛擬主機定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設