【深入淺出教你寫編譯器(Compiler)】二、掃描器(Scanner)﹣詞法分析(Lexical analysis)(下)
繼續上一節未完成的 Scanner 吧,上一節我們寫好了一個 Reader,可以逐個逐個字元讀取,有需要時又可以退回 n 個字元之後再讀(本節將會使用這個功能)。另外,上一節亦寫好了一個簡單的 Scanner,可以讀取七款單字元 Token,並忽略其他字元。本節將會教大家如何建立多字元 Token,過程將會利用 FSM 來分析字元,忘記了什麼是 FSM 的朋友請到上一節回顧一下嚕。
多字元的 Token
首先我們要讀取含有英文字的 Token,含有英文字的 Token 如下:
- var VAR_TOKEN
- int TYPE_TOKEN
- bool TYPE_TOKEN
- true, false, TRUE, FALSE BOOLLITERAL_TOKEN
- if IF_TOKEN
- else ELSE_TOKEN
- while WHILE_TOKEN
- print PRINT_TOKEN
- 其他英文字 IDENTIFIER_TOKEN
在程式中先定義一下這些 Token 吧,承接著之前的 Token ...
compiler
scanner
lexical analysis
fsm
token
寫於 {{ '2017-07-28T08:17:24.269Z' | calendarTime }}