五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

[編譯原理] JavaScript 實(shí)現(xiàn)簡易標(biāo)記語言編譯器

2022-05-15 09:12 作者:BHznJNs  | 我要投稿

目標(biāo)

目標(biāo):將一個(gè)簡單語法的標(biāo)記語言編譯為 HTML

語言語法如下:

編譯后:

編譯產(chǎn)生數(shù)組經(jīng) Array.prototype.join() 即生成所需 HTML 代碼


步驟

眾所周知,一般的編譯器在編譯過程中都要經(jīng)過?詞法分析語法分析(生成AST)、語義分析、生成目標(biāo)代碼錯(cuò)誤處理?等過程,但那是針對一般的編程語言,對于筆者這樣簡易的標(biāo)記語言,完全可以省略多數(shù)步驟,僅保留?詞法分析(分詞)、語法分析生成目標(biāo)代碼?三個(gè)步驟。

那么,在開始編碼前,我們需要明確一下各階段的輸入和輸出。

詞法分析(分詞)

輸入(即原始文本):

輸出:

語法分析

因?yàn)榇a輸出仍為一維數(shù)組,沒有樹狀結(jié)構(gòu),所以不將其稱為AST。

輸入(與詞法分析輸出相同):

輸出:

生成目標(biāo)代碼

輸入(與語法分析輸出相同):

輸出(即最終代碼):


具體實(shí)現(xiàn)

全局變量

詞法分析

注:此階段將單個(gè)詞稱作`term`(雖然函數(shù)名為tokenizer)

語法分析

核心代碼如下:

完整代碼:

目標(biāo)代碼生成

完整代碼實(shí)現(xiàn)

感謝閱讀。


[編譯原理] JavaScript 實(shí)現(xiàn)簡易標(biāo)記語言編譯器的評論 (共 條)

分享到微博請遵守國家法律
巴林左旗| 哈巴河县| 古浪县| 彭山县| 宜君县| 云林县| 内丘县| 奉化市| 任丘市| 古交市| 灵寿县| 桓仁| 镇康县| 弥渡县| 盐亭县| 安阳市| 甘肃省| 福泉市| 庆云县| 柳河县| 沙田区| 渝北区| 肥西县| 同江市| 五大连池市| 昭通市| 六安市| 呼伦贝尔市| 鹿邑县| 北辰区| 平南县| 襄垣县| 六盘水市| 久治县| 汪清县| 沽源县| 正阳县| 桃园市| 郯城县| 黄平县| 西贡区|