iT邦幫忙

鐵人檔案

2022 iThome 鐵人賽
回列表
Modern Web

Parser 的深入研究 系列

Bebal . Sass . Vue ...等

許多前端工具都是利用 Parser 將我們寫的程式碼,轉換成瀏覽器所看的懂的

html . css 跟 JavaScript,不過他們內部是如何運作的呢?

接下來的這 30 天,來好好的探索一下吧 ~

鐵人鍊成 | 共 32 篇文章 | 5 人訂閱 訂閱系列文 RSS系列文 團隊週六 Podcast 團
DAY 21

[Day21] - 一些學習 AST 的工具

經過一段時間的說明,相信邦友們對 AST 躍躍欲試對吧? 下面我介紹一些跟 AST 相關的工具,這些工具輔助我學習 AST,也期望它們幫助邦友們更進一步的學習...

2022-10-06 ‧ 由 Tree 分享
DAY 22

[Day22] - CodeMirror 在網頁中編輯你的 HTML 文字 & 高亮之

前面的 20 天我們介紹了 tokenizer . parser . transformer . renderer tokenizer : 將文字轉成 tok...

2022-10-07 ‧ 由 Tree 分享
DAY 23

[Day23] - 分析 SCSS 的規則

前言 day-10 到 day-20 說明了 HTML 文字檔,如何分析 tokenizer : 將文字轉成 token parser : 將 token 轉...

2022-10-08 ‧ 由 Tree 分享
DAY 24

[Day24] - source-map 在多檔案中知道程式錯誤的位置

前言 什麼是 source-map?為什麼要使用 source-map?這篇文章就來介紹一下。 當我們使用 dart-sass 編譯 scss 檔案時,除了會輸...

2022-10-09 ‧ 由 Tree 分享
DAY 25

[Day25] - SCSS Reader - 檔案 & 位置資訊保留

前言 昨天我們提到了 source map 的概念。 在產生 source map 的時候,我們需要知道目前在原始檔案的位置,以及在哪個原始檔案中。 那我們就不...

2022-10-10 ‧ 由 Tree 分享
DAY 26

[Day26] - SCSS Tokenizer

前言 [day-23] 我們說明了 SCSS 的規則 & 一些關鍵的字元 今天我們仿造 [Day12] - HTML 的 Tokenizer 的方法 來...

2022-10-11 ‧ 由 Tree 分享
DAY 27

[Day27] - 語法分析(syntactic analysis)

前言 之前 [Day-01] ~ [Day-25] - 我們展示了 詞法分析(Lexical analysis)- 利用狀態機產生 Tokens 然後利用 Pa...

2022-10-12 ‧ 由 Tree 分享
DAY 28

[Day28] - Lezer.js - 利用 Grammar 定義我們的語言

前言 在 [Day-22] 中,我們討論了 CodeMirror 可以利用它來做 語法的 Highlight,但是 CodeMirror 並不支援 SCSS 語...

2022-10-13 ‧ 由 Tree 分享
DAY 29

[Day29] - Lezer.js - 將自定義的 Grammar 拿到 CodeMirror 中做使用

前言 在 [Day-28] 中,昨天我們用 Lezer.js 定義了一個語法讓 (a+1) . (100-(2+4)) 這類的字串可以被解析。 我們來將定義好的...

2022-10-14 ‧ 由 Tree 分享
DAY 30

[Day30] - 整理一下 30 天的內容

今天是系列文的最後一天,今年算是第一次沒有事前準備的寫系列文,所以有些地方可能會有些不足,但是我之後會盡力把這些不足補上。 首先,我們來整理一下這 30 天的內...

2022-10-15 ‧ 由 Tree 分享