最近在手搓紅黑樹時(shí)遇到一個(gè)問題:類模板的派生類使用智能指針時(shí)的向下轉(zhuǎn)換錯(cuò)誤,總之涩盾,經(jīng)過一番研究,智能指針無法實(shí)現(xiàn)類模板指針的向下轉(zhuǎn)換丧蘸,最終還是用...
在上一章中,我們完成了一個(gè)符號表,作為一個(gè)基礎(chǔ)工作力喷,接下來刽漂,我們要利用這個(gè)基礎(chǔ)實(shí)現(xiàn)一個(gè)功能:語義分析。 語義分析 什么是語義分析弟孟?形如這樣的代碼...
OK贝咙,接下來我們需要面對更加嚴(yán)肅的問題:如何構(gòu)建一個(gè)真正的解釋器?前幾章的內(nèi)容已經(jīng)足夠的有趣拂募,但是僅僅是添加grammar庭猩,然后一步一步實(shí)現(xiàn)Le...
好吧在上一章中的Pascal語法并不準(zhǔn)確,接下來陈症,我們要修正那些語法錯(cuò)誤蔼水,并加入更多的Pascal語言特性,本章我們將更接近真正的Pascal解...
接下來的內(nèi)容將更加硬核录肯,我們距離創(chuàng)造自己的編程語言更近一步——實(shí)現(xiàn)一個(gè)初步的Pascal解釋器趴腋。 Pascal 好吧這是一門古老的語言,在很久很...
這一章论咏,我們要接觸一些稍微硬核點(diǎn)的知識优炬,理解一個(gè)概念——抽象語法樹。 抽象語法樹和語法解析樹 對于文法: 當(dāng)輸入2*7+3時(shí)潘靖,可以構(gòu)造成如下語法...
本章穿剖,我們將繼續(xù)擴(kuò)展我們的解釋器蚤蔓,使其支持乘除運(yùn)算符和運(yùn)算符優(yōu)先級卦溢,我們將更加深入編譯原理,加入文法分析( grammar analysis )...
這一章秀又,我們將實(shí)現(xiàn)形如"1+12+123-123"這樣連續(xù)的多位數(shù)加減法實(shí)現(xiàn)单寂,為此,我們需要一點(diǎn)點(diǎn)編譯原理吐辙。 語法圖與語法分析 對于上述表達(dá)式宣决,...
在上一篇中,我們實(shí)現(xiàn)了一個(gè)簡單的加法解釋器昏苏,它僅支持一位數(shù)加法尊沸,接下來,我們向解釋器添加以下特性: 支持多位整數(shù) 可以跳過空格 支持減法 處理多...