第33章へようこそ。
今日のテーマは「マクロのパターン」です。
前章で、マクロ定義はパターンと展開の組であるルールの集まりだと見ました。
呼び出し位置にあるトークン列がパターンに照らされ、一致したルールの展開部分が差し込まれる。
ではパターンの中身はどう書くのか。
ここで中心になるのが、フラグメント指定子と呼ばれる仕組みです。
パターンの中の特定の位置に「ここは式が来る」「ここは識別子が来る」「ここは型が来る」と宣言することで、トークン列に意味の粒度を与える。
今日扱うのは、フラグメント指定子の体系、特に万能だが粗い「任意のトークンツリー」の役割、
指定子の後ろに何が来てよいかの制約、
複数のルールがどう選ばれるかの順序、
そして指定子の粒度の設計判断です。