第34章へようこそ。
今日のテーマは「繰り返しと衛生性」です。
前章で、フラグメント指定子がトークン列の中の特定の位置を捕捉する仕組みを見ました。
式を1つ、識別子を1つ、型を1つ、それぞれ捕捉する。
固定の個数なら、これだけで足りる。
しかしマクロは、任意個のトークンを受け取りたい場面がある。
vecマクロは要素を何個でも受け取って配列を作る。
また、マクロが導入した変数の名前が、呼び出し側の変数の名前と衝突しないように、識別子のスコープにも工夫が要る。
今日扱うのは、可変長のトークンを扱う繰り返し構文、
繰り返しでは難しい変換を担う再帰的展開、
マクロの識別子が呼び出し側に漏れない衛生性、
そしてマクロ内のパスがクレート境界を越えても壊れない仕組みです。