真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

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

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

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

適用性

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

結(jié)構(gòu)

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

參與者


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

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

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

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

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

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


協(xié)作


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

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

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


標(biāo)題名稱:web解釋器模式的參與者有哪些
網(wǎng)站URL:http://weahome.cn/article/ijoiip.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部