@ECHO OFF
SETLOCAL
SET BATDIR=%~dp0
SET TMPNAM=%~n0.tmp

REM //--------------------------------------------------------------------------
REM // * Fri Jun 26 21:07:18 JST 2015 Naoyuki Sawa
REM // - 1st リリース。
REM // * Wed Jul 01 21:52:52 JST 2015 Naoyuki Sawa
REM // - 'cpp.exe'を通さないように変更しました。
REM //   有限状態機械マップスクリプト内の'%{〜%}'の中に、#includeや条件マクロを書いた場合、実際にコンパイルするよりも先に展開されてしまい、
REM //   実際にコンパイルする時のインクルードパスが指定されていないためにエラーになったり、異なる設定で展開されてしまう事を避けるためです。
REM // - 本日、dFsmMapC.exe自体に'行末のバックスラッシュで行継続する機能'を追加したので、行末のバックスラッシュによる行継続は使用可能です。

REM //--------------------------------------------------------------------------
REM //■使い方
REM //│CALL MkFsmMap.bat 有限状態機械マップスクリプト [[有限状態機械マップスクリプト] ...]
REM //│(有限状態機械マップスクリプトの書式は、dFsmMapC.exeの説明を参照してください。)

REM //--------------------------------------------------------------------------
REM //□FsmMap.h,FsmMap.c,RegFsmMap.txtが既に有れば、確実に削除しておきます。
IF EXIST    FsmMap.h   DEL    FsmMap.h
IF EXIST    FsmMap.c   DEL    FsmMap.c
IF EXIST RegFsmMap.txt DEL RegFsmMap.txt

REM //--------------------------------------------------------------------------
REM //□'cpp.exe'を通しているので、有限状態機械マップスクリプト内でCプリプロセッサの疑似命令も使えます。
REM //│'cpp.exe'に'-P'を指定していないので'# 行番号 "ファイル名"'が生成されますが、dFsmMapC.exeがコメントとして無視するので問題ありません。
REM //│'cpp.exe'に'-P'を指定してもしなくても同じ結果になるはずです。
REM //{{2015/07/01変更:'cpp.exe'を通さないように変更しました。
REM //dpesc5c.exe %* | cpp.exe > %TMPNAM%
REM //↓2015/07/01変更:'cpp.exe'を通さないように変更しました。
      dpesc5c.exe %*           > %TMPNAM%
REM //}}2015/07/01変更:'cpp.exe'を通さないように変更しました。
IF ERRORLEVEL 1 EXIT /B 1

REM //--------------------------------------------------------------------------
REM //□「有限状態機械マップコンパイラ」を実行します。
dFsmMapC.exe -e -rRegFsmMap.txt -tFsmMap.c %TMPNAM% > FsmMap.h
IF ERRORLEVEL 1 EXIT /B 1
DEL %TMPNAM%
