構文拡張 (Syntax Extensions)

Rustのさまざまなマクロシステムの話に入る前に、それらの基礎となるより全般的な機構: 構文拡張 (syntax extensions) について考察するのは有意義でしょう。

そのためには、まずどのようにしてRustのソースコードがコンパイラ、ひいてはユーザ定義のマクロや手続き的マクロの基礎となる機構によって処理されるのかについて考えていかねばなりません。

Note: 本書では以後、構文拡張 (syntax extension) という用語をすべての種類のRustマクロに通ずる一般論を語る際に用います。これは、今後導入されるであろう、macroキーワードを用いる宣言的マクロ2.0の提案に伴って生じうる混乱を軽減するためです1

1

訳注: 言いたいことがよく分からないが、おそらく「Rustのマクロ全般を指して "macro" と呼ぶことにすると、(宣言的マクロ2.0で導入される予定の)macroキーワードを用いたマクロのみを指すように見えてしまう。それを避けるために、Rustのマクロ全般を指す用語として "syntax extension" という言葉を導入するよ」ということだと思われる。