파서는 컴파일러의 핵심 구성요소파서의 역할은 토크나이저 와 렉서에 의해서 분리되어 분석된 토큰을 입력받아 구문 트리를 생성한다.구문 트리는 프로그래밍 언어로 작성된 소스 코드의 구문 구조를 트리 형태로 나타낸것이며, AST(추상 구문 트리)라고도 불린다.
소스 코드가 컴퓨터가 이해할 수 있는 형태로 변환토큰이라는 단위로 분리하는 토큰화(Tokenization) 진행토큰이란 텍스트를 의미 있는 단위로 분리한 최소단위"I hate you" -> 토큰으로 분리 -> "I", "hate", "you"라는 식으로 분리가 된다고 볼 수 있다.
그럼 토크나이저를 통해 분리된 토큰들의 의미는 어떻게 분석할까?
토큰의 타입과 속성을 분석한다해당 토큰이 알파벳으로 이루어진
문자인지 아니면숫자로 이루어졌는지 아니면연산자인지를 분류한다.
정보(토큰 타입, 속성) 출력한다.토크나이저와 렉서를 통해 분석된 토큰들의 구문적 구조를 파악하고 분석하여 구문트리를 생성한다.AST(추상구문트리)란 특정 프로그래밍 언어로 작성된 프로그램 소스를 각각 의미로 분리한 컴퓨터가 이해할 수 있는 구조로 변경시킨 트리라고 말할 수 있다.이렇게 일련의 과정을 거친 후 결과로 나온 AST를 가지고 Compiler가 다음 최적화 작업을 수행한다.