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) 트리의 모든 노드를 순회할 수 있는 발생자 객체를 얻을 수 있습니다.