本節文章研究的代碼位於 tsc/src/compiler/scanner.ts 字符 任何源碼都是由很多字符組成的,這些字符可以是字母、數字、空格、符號、漢字等…… 每一個字符都有一個編碼值,比如字符“a”的編碼值是97,字符“林”的編碼值是26519。 每個字符對應的編碼值是多少 ...
在上一節主要介紹了單個字符的處理,現在我們已經有了對單個字符分析的能力,比如: 判斷字符是否是換行符:isLineBreak 判斷字符是否是空格:isWhiteSpaceSingleLine 判斷字符是否是數字:isDigit 判斷字符是否是標識符 變量名 : 標識符開頭部分:isIdentifierStart 標識符主體部分:isIdentifierPart 同時還可以通過 char Chara ...
2020-01-18 23:56 0 1186 推薦指數:
本節文章研究的代碼位於 tsc/src/compiler/scanner.ts 字符 任何源碼都是由很多字符組成的,這些字符可以是字母、數字、空格、符號、漢字等…… 每一個字符都有一個編碼值,比如字符“a”的編碼值是97,字符“林”的編碼值是26519。 每個字符對應的編碼值是多少 ...
TypeScript 由微軟在 2012 年 10 月首發,經過幾年的發展,已經成為國內外很多前端團隊的首選編程語言。前端三大框架中的 Angular 和 Vue 3 也都改用了 TypeScript 開發。即使很多人沒直接用過 TypeScript,他們也在通過 VSCode 提供的智能提示功能 ...
在上一節介紹了語法樹的結構,本節則介紹如何解析標記組成語法樹。 對應的源碼位於 src/compiler/parser.ts。 入口函數 要解析一份源碼,輸入當然是源碼內容(字符串),同時還提供路徑(用於報錯)、語言版本(比如ES3 和 ES5 在有些細節 ...
在上一節介紹了標記的解析,就相當於識別了一句話里有哪些詞語,接下來就是把這些詞語組成完整的句子,即拼裝標記為語法樹。 樹(tree) 樹是計算機數據結構里的專業術語。就像一個學校有很多年級,每個年級下面有很多班,每個班級下面有很多學生,這種組織結構就叫樹。 組成樹的每個部分稱為 ...
AQS源碼詳細解讀 目錄 AQS源碼詳細解讀 基礎 CAS相關知識 通過標識位進行線程掛起的並發編程范式 MPSC隊列的實現技巧 代碼講解 獨占模式 ...
HashMap源碼解析 想要理解HashMap底層數據的存儲形式,底層原理,最好的形式就是讀它的源碼,但是說實話,源碼的注釋說明全是英文,英文不是非常好的朋友讀起來真的非常吃力,我基本上看了差不多七八遍,還結合網上的一些解析,才覺得自己有點理解。 我先畫了一個圖,HashMap數據存儲 ...
聲明:本文為原創文章,如需轉載,請注明來源並保留原文鏈接Aaron,謝謝! 瀏覽器從下載文檔到顯示頁面的過程是個復雜的過程,這里包含了重繪和重排。各家瀏覽器引擎的工作原理略有差別,但也有一定規則。 簡單講,通常在文檔初次加載時,瀏覽器引擎會解析HTML文檔來構建DOM樹,之后根據DOM ...
ArrayList源碼解析 簡介 ArrayList是Java集合框架中非常常用的一種數據結構。繼承自AbstractList,實現了List接口。底層基於數組來實現動態容量大小的控制,允許null值的存在。同時還實現了RandomAccess、Cloneable、Serializable接口 ...