Gauche:コード置換のサンプル
コード置換のサンプル
- Gauche による C のコード置換のサンプルです。
https://gist.github.com/Hamayama/da0b4cada629cf8bf39d79590a7acf8e
- これは、setting.c という、
設定ファイル (settingData.txt) を読み込む C のプログラムの、
設定項目名を置換するという (架空の) 作業を想定したものです。
- 1100_replace_code.scm の *data* に、
(A) 置換元文字列の正規表現、(B) 置換先文字列、(C) "file:ファイル名"
を記述して実行すると、ファイルの内容を置換します。
((C) の "file:ファイル名" は省略可能です。省略するとファイル名をチェックしません)
置換パターンは、複数記述することができます。
- 置換するファイルは、スクリプトの第1引数で指定します。
置換結果は、スクリプトの第2引数に指定したファイルに出力されます。
- 置換は行単位で行われます。このため、行をまたがった内容は置換できません。
- 複数の置換を上から順番に実行するため、
A → B, B → C のように置換すると A → C になってしまいます。
この場合、A → D, B → C, D → B のように一時的に D に置換するようにすると、
回避できるかもしれません。
- 1100_replace_code.scm の先頭付近を変えることで、
文字コードや改行コードの変化にも対応できるようになっています。
- また、エンコーディングが utf-8 の場合に、*check-utf-8-bom* を #t にすると、
入力ファイルに BOM があった場合に、出力ファイルにも BOM を出力します。
hamayama(2023/07/16 09:47:40 UTC)