day 01: lexing
소스코드로 어떤 작업을 하려면 코드를 좀 더 다루기 쉬운 형태로 바꾸어야 함
소스코드 -> token -> 추상 구문 트리
- 어휘 분석(lexical analysis): 소스코드를 토큰 열로 변환하는 작업
- 이 작업은 lexer라는 것이 수행을 합니다.
- lexer는 다른 이름으로 tokenizer, scanner 등으로도 불립니다.
- 파서: 토큰을 파서에 입력하면 파서는 토큰 열을 추상 구문 트리(Abstract Syntax Tree)로 변환합니다.
예시
-
소스코드
-
"let x = 5 + 5;"
-
token
[
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
]
상용 렉서에서는 행 번호, 열 번호, 파일 이름 등을 토큰에 부착합니다. 부착하는 이유는 파싱 단계에서 좀 더 쓸만한 에러 메시지를 출력하기 위함입니다.