本文小編為大家詳細介紹“web解釋器模式的知識點有哪些”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當(dāng),希望這篇“web解釋器模式的知識點有哪些”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。
成都創(chuàng)新互聯(lián)致力于網(wǎng)站建設(shè),網(wǎng)站制作設(shè)計,營銷網(wǎng)頁按需求定制網(wǎng)站,成都外貿(mào)網(wǎng)站制作,企業(yè)網(wǎng)站建設(shè),微信小程序定制開發(fā),網(wǎng)站SEO優(yōu)化,網(wǎng)站設(shè)計制作案例豐富,是成都做網(wǎng)站公司和建站公司,歡迎咨詢。
語法建模
作為解釋器模式的標(biāo)準(zhǔn)做法,定義了語言的語法之后的步驟就是為每種語言要素準(zhǔn)備一個類。對于四則運算的例子,其類結(jié)構(gòu)如下:
類圖稍微大了一些,下面以幾條規(guī)則為例進行說明。
1. 泛化關(guān)系
示例:[5]PrimaryExpr::=NumericLiteral|ParenthesizedExpr| FunctionCall
式[5]的含義為基本表達式PrimaryExpr可以是數(shù)值型字面值NumerLiteral、帶括號表達式ParemthesizedExpr、函數(shù)調(diào)用中的某一種。轉(zhuǎn)化成類關(guān)系就是泛化關(guān)系。所有適用PrimaryExpr的地方都可以使用NumericLiteral、ParenthesizedExpr、FunctionCall中的一種來代替。
2.組合關(guān)系
[2]AdditiveExpr::=MultiplicativeExpr(("+">
當(dāng)AdditiveExpr由多個MultiplicativeExpr構(gòu)成時,二者之間的關(guān)系又可以看作是組合關(guān)系。
當(dāng)只有一個MultiplicativeExpr的時候,式[2]可以退化為:
AdditiveExpr::=MultiplicativeExpr
這種情況可以認為二者之間是簡單的泛化關(guān)系。
3.簡單組合關(guān)系
[7]ParenthesizedExpr::="(" Expr ")"
式[7]可以看作1對1的簡單組合關(guān)系。
形成語法樹
回頭看一下前一篇文章中的表達式:
100.0 * sin(29 + (23 * 6)) + sqrt(cos(34 * 5))
這個表達式轉(zhuǎn)換成語法樹如下:
分析過程是沿著類圖由上而下進行,直至找到適合的類型為止。例如最初的分析從AdditiveExpr開始,它的下級節(jié)點應(yīng)該是多個MultiplicativeExpr,但是右側(cè)不符合MultiplicativeExpr的條件,因此沿著類圖向下搜索直至找到符合條件的FuncitonCall為止。如此周而復(fù)始就可以得到整個語法樹。
讀到這里,這篇“web解釋器模式的知識點有哪些”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
本文標(biāo)題:web解釋器模式的知識點有哪些
URL分享:http://jinyejixie.com/article44/pgshee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、小程序開發(fā)、建站公司、App設(shè)計、App開發(fā)、域名注冊
聲明:本網(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)