vec! 매크로는 토큰을 패턴에 맞춰 캡처하고 반복 확장한다
입력 토큰은 matcher에서 metavariable로 잡히고, 반복 구문이 실제 Vec 생성 코드로 펼쳐진다.
컴파일 전 토큰
표현식 반복 캡처
코드 생성
타입과 소유권 검증
| 구분 | 의미 | 판단 |
|---|---|---|
| $x:expr | 표현식 하나 캡처 | 1 또는 a + b |
| $(...),* | 쉼표 반복 | 0개 이상 항목 |
| 확장 결과 | 일반 Rust 코드 | 매크로 이후에도 타입 검사 |
핵심 macro_rules는 문자열 치환이 아니라 Rust 토큰 구조를 패턴으로 받아 코드로 펼치는 장치다.