必要手であれば他の位置を返すことも可能です。マクロによって変換された内容や、置換さあれた値を部分的に再評価したいか、全体を再評価したいかといったことを考慮して、返す位置を決めてください。パターンマッチマクロには以下のデータを渡せます。block:Parseダイアレクトで使用するマッチパターンを指定しますword:Parseダイレクトで使用されるキーワードです。「skip」などです。lit-word:指定したwordでマッチングされます。5この結果は以下のように変換されます。25この結果は以下のように変換されます。マッチしたパターンに渡される位置を返します。-4この結果は以下のような動作になります。ローカルマクロの定義を含む任意のRedコード説明マクロのローカルコンテキストを生成します。ローカルコンテキスト中に定義された全てのマクロはコンテキストの終了時に破棄されます。ローカルなものとして定義したいマクロはローカルコンテキストの中で定義する必要があります。中で使用できる有効なディレクティブです)。2.0この結果は以下のように変換されます。保持されているマクロコンテキストをリセットします。定義済みの全てのword、マクロは初期化(破棄)されます。off]説明プリプロセッサの有効・無効を切り替えます(初期状態は有効です)。これはRedのコード中で、ディレクティブがリテラルとして使用されていて、プリプロセッサとして処理をさせたくない場合のための、エスケープの仕組みです。そのプリプロセッサが他の意味を持つダイアレクトで使われている時などに使用します。ディレクティブと同じか、より上のスコープに位置している必要があります。onこの結果は以下のように変換されます。off]説明マクロの評価中のデバッグ出力を表示するかどうかを切り替えます。このディレクティブがRedのソースコードで使用できる箇所について特に制約はありません。ランタイムAPIRedのプリプロセッサは実行中も動作するようになっており、インタプリタでもプリプロセッサディレクティブを含むコードを実行することができます。型の値を渡した場合に、自動的にプリプロセッサの評価が行われます。プリプロセッサディレクティブを含む任意のRedコード説明ブロックの中のプリプロセッサを実行します。引数のブロックは変更され、戻り値として返されます。リファインメントを使用した場合、以前のプリプロセッサの状態がリセットされ、全ての以前の定義されたマクロは削除されます。["Windows"]["Unix"]]この結果はWindows上では以下のように変換されます。