@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET BATDIR=%~dp0
SET TMPNAM=%~n0.tmp
SET SRCDIR=%CLIP%\
SET DSTDIR=.\out\

REM //--------------------------------------------------------------------------
REM // * Sat Oct 01 21:11:57 JST 2016 Naoyuki Sawa
REM // - 1st リリース。
REM //   CLiPのソースコードをHew用のソースコードに変換するバッチスクリプトです。
REM //   これだけで全て自動的に正しく変換出来る訳ではありませんが、全て手作業で変換するよりは多少手間が軽減出来ると思います。

REM //--------------------------------------------------------------------------
REM //■使い方
REM //│CALL ConvertClipToHew.bat
REM //カレントフォルダの中に'out'フォルダが作成されて、その中に変換後のソースコードが出力されます。

REM //--------------------------------------------------------------------------
IF NOT EXIST %DSTDIR% MKDIR %DSTDIR%
IF EXIST %DSTDIR%*.c DEL %DSTDIR%*.c
IF EXIST %DSTDIR%*.h DEL %DSTDIR%*.h

REM //--------------------------------------------------------------------------
REM //StripComments.exeに指定するオプションを設定して下さい。(調整可)
SET OPTIONS=-d__RENESAS__ ^
            -u_DEBUG -uDEBUG ^
            -u_MSC_VER -u_WIN32 -uWIN32 -u_WIN64 ^
            -uGC_H -uGC_LEAK_DETECTOR_H ^
            -u__GNUC__ -uPIECE ^
            -u__cplusplus

REM //--------------------------------------------------------------------------
REM //□出力ファイル名の規則は、以下の通りです。
REM //・clipfoo.hを変換した結果を、HewFoo.hに出力します。
REM //・clipfoo.cを変換した結果を、HewFoo.cに出力します。┬両方有る場合は連結します。
REM //・framfoo.cを変換した結果を、HewFoo.cに出力します。┘
REM //・bar.hを変換した結果を、HewBar.hに出力します。
REM //・bar.cを変換した結果を、HewBar.cに出力します。
REM //・bar_baz_qux.hを変換した結果を、HewBarBazQux.hに出力します。
REM //・bar_baz_qux.cを変換した結果を、HewBarBazQux.cに出力します。
REM //□ファイル内容の変換規則は、以下の通りです。
REM //・StripComments.exeによる処理を行います。
REM //・__CLIP*H__を、__HEW*_H__に置換します。
REM //・clipfoo.hを、HewFoo.hに置換します。
REM //・clip.hを、Hew.hに置換します。
FOR %%i IN (%SRCDIR%*.h %SRCDIR%*.c) DO (
  SET SRCPATH=%%i
  SET SRCNAME=%%~nxi
  SET SRCNAME=!SRCNAME:clip=!
  SET SRCNAME=!SRCNAME:fram=!
  IF EXIST %TMPNAM% DEL %TMPNAM%
  "echo.exe" !SRCNAME! ^
   | onigsed.exe -e "s/./Hew\U&\E/" ^
                 -e "s/_\([^_]\+\)/\u\1/g"					>  %TMPNAM%
  FOR /F "usebackq delims=" %%j IN (`"cat.exe" %TMPNAM%`) DO SET DSTNAME=%%j
  IF EXIST %TMPNAM% DEL %TMPNAM%
  SET DSTPATH=%DSTDIR%!DSTNAME!
  StripComments.exe -sz %OPTIONS% !SRCPATH! ^
   | onigsed.exe -e "s/\b__CLIP\([_[:digit:][:upper:]]*\)_H__\b/__HEW\1_H__/" ^
                 -e "s/\bclip\([[:alnum:]]\+\).h\b/Hew\u\1\.h/" ^
                 -e "s/\bclip\.h\b/Hew.h/"					>> !DSTPATH!
  IF ERRORLEVEL 1 GOTO L_ERR
)

REM //--------------------------------------------------------------------------
REM //ECHO 完了しました。
REM //PAUSE
EXIT /B

REM //--------------------------------------------------------------------------
:L_ERR
ECHO ###エラーが発生しました。
REM //PAUSE
EXIT /B 1
