The Swift Programming Language. Macro (2)
Macro Expansion 매크로를 사용한 Swift 코드를 빌드 할 때, 코드를 확장하기 위해 매크로의 구현을 불러오게 된다. 구체적으로 Swift는 다음과 같은 방법으로 매크로를 확장한다: 컴파일러가 코드를 읽어, 구문의 in-memory 표현을 만든다. 컴파일러가 이 in-memory 표현의 일부를 매크로를 확장시키는 매크로 구현부에 보낸다. 컴파일러가 매크로 호출을 확장된 형태로 대체한다. 컴파일러가 확장된 소스 코드를 사용하여 컴파일을 계속 진행한다. 구체적인 단계들을 살펴보기 위해, 다음을 생각해보자: let magicNumber = #fourCharacterCode("ABCD") #fourCharacterCode 매크로는 4개의 캐릭터로 구성된 문자열을 받아, 그 문자열의 ASCII 값들을 이어 붙인 32비트 언사인드 인티저를 리턴한다. 일부 파일 포맷은 데이터를 식별하기 위해 이런 형태의 인티저를 사용하는데, 컴팩트 하면서도 디버거에서 읽을 수 있기 때문이다. 아래의 Implementing a Macro 섹션에서 이 매크로를 구현하는 방법을 보여준다. ...