字句解析
文字の列であるソースコードを、意味のあるトークンの列に変換する
キーワード(予約語のようなもの)、識別子(変数名など)、定数、文字列リテラル、区切り子などのTokenに分解する
空白は取り除く
型を付けられる
イメージ
code:example
"let hoge = 1 + 2 * 3 / 4 + 5 - 6;" // これはただの文字列
↓
[
LET,
IDENT("hoge"),
ASSIGN,
INT(5),
LET,
IDENT("ten"),
ASSIGN,
INT(10)
]
Tokenではないものの例
コメント
プリプロセッサ修飾子
#include<stdio.h>
#define NUMS 5, 6
マクロ
空白、タブ、改行文字
関連
参考