Rust · macro

vec! 매크로 매칭과 코드 생성

입력 토큰이 패턴에 맞게 캡처되고 반복 확장을 거쳐 실제 Rust 코드로 바뀌는 흐름입니다.

선언적 매크로 처리 단계

macro_rules

vec![1,2,3]

컴파일러가 매크로 입력 토큰을 받습니다.

pattern match

각 표현식을 $x:expr로 캡처합니다.

repetition

캡처된 항목 수만큼 push 코드를 만듭니다.

expanded code

temp_vec 생성과 push 호출로 풀립니다.

type check

확장된 일반 Rust 코드가 다시 검사됩니다.

tokens match pattern capture expr repeat expand type check

정리

macro_rules!는 문자열 치환이 아니라 토큰 패턴을 매칭해 컴파일 전에 안전한 Rust 코드를 만들어 내는 규칙입니다.