더북(TheBook)


2.2추상 구문 트리


추상 구문 트리(Abstract Syntax Tree, AST)란 소스 코드의 구조를 나타내는 자료 구조입니다. 추상 구문 트리를 바탕으로 심벌 테이블을 만들고 바이트 코드를 생성할 수 있습니다. ast 모듈을 이용하여 test.py의 추상 구문 트리를 볼까요?

>>> import ast

>>> node = ast.parse(s, 'test.py', 'exec')       #1

>>> g = ast.walk(node)                           #2

>>> next(g)

<_ast.Module object at 0x03A89490>

>>> next(g)

<_ast.FunctionDef object at 0x03A893F0>

>>> next(g)

<_ast.Assign object at 0x03A895B0>


TIP 트리는 자료 구조의 일종인데 우리는 아직 자료 구조를 배우지 않았습니다. 그러므로 다 이해되지 않을 수 있습니다. 그럴 때는 그냥 실행하고 결과만 확인해 보세요.


노드를 생성하고(#1) walk() 함수를 사용하면(#2) 트리의 모든 노드를 순회할 수 있는 발생자 객체를 얻을 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.