在上一篇文章中,完成了對括號的支持,這樣整個程序就可以解析普通的算術(shù)表達式了。但是在解析兩個括號的過程中發(fā)現(xiàn)有大量的地方需要進行索引的回退操作,索引的操作應該保證能得到爭取的...
在上一篇文章中,完成了對括號的支持,這樣整個程序就可以解析普通的算術(shù)表達式了。但是在解析兩個括號的過程中發(fā)現(xiàn)有大量的地方需要進行索引的回退操作,索引的操作應該保證能得到爭取的...
在上一篇我們添加了對乘除法的支持,也介紹了BNF范式,并且針對當前的算術(shù)表達式寫出了對應的范式,同時根據(jù)范式給出相應的代碼實現(xiàn)。這篇我們將繼續(xù)為算數(shù)表達式添加對括號的支持。 ...
在上一篇中,我們實現(xiàn)了對減法的支持,并且介紹了語法圖。針對簡單的語法進行描述,用語法圖描述當然是沒問題的。但是針對一些復雜的語法進行描述,如果每個部分都通過語法圖來描述就顯得...
在上一篇我們實現(xiàn)了一個可以計算兩個多位整數(shù)加減法的計算器。本章我們繼續(xù)來給這個計算器添加功能,這次要給它添加可以連續(xù)計算多個整數(shù)相加減的功能。例如我們可以計算 1 + 2 +...
上一篇我們實現(xiàn)了一個簡單的加法計算器,并且了解了基本的詞法分析、詞法分析器的概念。本篇我們將要對之前實現(xiàn)的加法計算器進行擴展,我們?yōu)樗砑右韵聨讉€功能 計算減法 能自動識別并...
為什么要學習編譯器和解釋器呢?文中的作者給出的答案有下面幾個: 為了深入理解計算機是如何工作的:一個顯而易見的道理就是,如果你不懂編譯器和解釋器是如何工作的那么你就不明白計算...
很抱歉我決定結(jié)束這個系列的內(nèi)容了。原本我打算介紹markdown、orgmode相關的配置,甚至還打算介紹如何在vim 中使用 emacs 的 org-agenda 來進行日...
很抱歉又拖更了這么久了,在這個新公司我想快速度過試用期,所以大部分的精力主要花在日常工作上面。但是這個系列還是得更新下去,平時只能抽有限的業(yè)余時間來準備。這就導致我寫這些文章...
時光荏苒,歲月如梭。轉(zhuǎn)眼間2022已經(jīng)過去了。過去的2022年我們?nèi)匀唤?jīng)歷了幾波疫情的防控,個人和企業(yè)的日子都不太好過,仍然有互聯(lián)網(wǎng)公司的裁員,有超額的加班等等讓人心里感到不...
很抱歉這么久才來更新這一系列,主要是來新公司還在試用期,我希望在試用期干出點事來,所以摸魚的時間就少了。加上前面自己陽了休息了一段時間。在想起來更新就過去一個多月了。廢話不多...
首先給大家說一聲抱歉,前段時間一直在忙換工作的事,包括但不限于交接、背面試題準備面試。好在最終找到了工作,也順利入職了。期間也有朋友在催更,在這里我對關注本系列的朋友表示感謝...
在前面幾個章節(jié),我們逐漸為 Vim 配置了語法高亮、代碼的跳轉(zhuǎn)和自動補全功能?,F(xiàn)在的 Vim 已經(jīng)可以作為代碼編輯器來使用了。但是想將它作為日常發(fā)開的主力編輯器來用還需要很長...
我們之前介紹過縮寫相關的內(nèi)容,縮寫是可以自動幫我們將縮寫的單詞展開成一段完整的話。但是代碼本身是結(jié)構(gòu)話的,僅僅使用縮寫來配置是無法完成自動生成代碼這個步驟的。好在我們大量的插...
之前我們通過幾個實例演示如何配置其他語言的lsp服務,相信各位小伙伴碰到其他的編程語言也能熟練的配置它對應的lsp服務。本篇講作為一個補充,我們來優(yōu)化一下LSP 相關的顯示 ...
從9月份到國慶這段時間,因為得了女兒,于是回老家?guī)兔α侠砑沂乱约芭惆槔掀藕团畠?。一時之間無暇顧及該系列教程的更新。等我回來的時候發(fā)現(xiàn)很多小伙伴私信我催更。在這里向支持本人這一...
neovim 自帶的代碼補全的效果并不好,而且它分為好多類,如果需要人為的去判斷使用路徑補全、使用當前buffer中的單詞補全、亦或者使用include 來進行補全,那樣使用...
上一章,我們初步認識了lsp,并且對 nvim-treesitter插件進行了配置,為編輯器提供了代碼著色、自動格式化以及增量選中功能。算是初步體驗了 lsp的相關功能。從這...
截止到上一篇文章,我們配置了neovim的很多內(nèi)容了。具備了一些編輯器的常用功能了,而且可以勝任日常的文檔編輯工作了。但是想作為一個可靠的代碼編輯器還缺少重要的一環(huán),即代碼語...