최근 수정 시각 : 2025-02-23 20:53:28

추상 구문 트리


1. 개요2. 완전 구문 트리

1. 개요

Abstract Syntax Tree, AST

정의된 형식 문법을 따라 주어진 형식 언어에 대해 얻어진 생성 규칙의 트리 형태의 자료구조. 주로 구문 분석의 결과물로써 주어진다.

2. 완전 구문 트리

Concrete Syntax Tree, CST

흔히 파스 트리라고 하면 AST를 뜻하기도 하지만 CST를 뜻하기도 하는데, 둘의 가장 큰 차이점은 가역성이다. AST는 언어를 실행하는 데 필요한 최소한의 의미만을 남기거나 syntactic sugar 따위를 처리한 후의 결과인 반면, CST는 언어 실행에 무관한 화이트스페이스주석 등의 정보도 생성 문법에서 명시되었다면 모조리 포함하고 있다. 즉, 소스를 파싱한 AST에서 소스로 가는 역함수가 항상 존재하는 것은 아니며, 따라서 적절한 변환 후 소스를 재구성할 필요가 있는 코드 포매터, LSP 등의 경우 CST를 주로 사용한다.