Skip to content

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
LET,

IDENTIFIER("x"),

EQUAL_SIGN,

INTEGER(5),

PLUS_SIGN,

INTEGER(5),

SEMICOLON

]

상용 렉서에서는 행 번호, 열 번호, 파일 이름 등을 토큰에 부착합니다. 부착하는 이유는 파싱 단계에서 좀 더 쓸만한 에러 메시지를 출력하기 위함입니다.