最終更新日:2019年4月3日
RExSTM
├── debug
│ ├── tmp
│ │ └── timer_senni.bat
│ ├── debug_analyze_detail.sh
│ └── debug_jotaivarval.bat
├── lists
│ ├── compile.txt
│ ├── deletefunctions.txt
│ ├── no_included_files.txt
│ └── std.txt
├── log
├── programs
│ ├── analyze_programs
│ │ ├── analyze.exe
│ │ ├── analyze.py
│ │ ├── c_reform.py
│ │ ├── globaldelete.py
│ │ ├── indent.py
│ │ ├── jokenshori.py
│ │ ├── jotaivar.py
│ │ ├── marking.py
│ │ ├── mujoken.py
│ │ ├── pragma.py
│ │ ├── preif.py
│ │ ├── presw.py
│ │ ├── python34.dll
│ │ ├── ReportException.py
│ │ ├── rule_jotaivar.py
│ │ ├── setup.py
│ │ └── table.py
│ ├── add_else.py
│ ├── add_mujoken_statement.py
│ ├── deletefunction.py
│ ├── deltemp.exe
│ ├── exception_handling.py
│ ├── getjotaivalue.py
│ ├── insert_mujoken.py
│ ├── makestm.py
│ ├── python34.dll
│ ├── senni.exe
│ ├── senni.py
│ ├── setup.py
│ ├── split_funcs.py
│ └── trans2celladds.py
├── RExSTMverX.Y.Z.xlsm
├── setup
│ └── py2exe.bat
├── TargetPrograms
├── temp
├── TSV_info
└── TSV_Result
デバッグに用いる実行ファイルが置かれている.
debug内のファイルの説明
条件処理表を生成する際のコンパイル方法を指定するドキュメントファイルが置かれている.
lists内のファイルの説明
RExSTM初回実行時は空である.
エラー発生時にログファイルが生成される.
RExSTMの動作のうち,Excel上で行う動作以外の動作(構文解析,条件処理表作成,状態遷移表作成)を行うためのPythonスクリプトが置かれている.
RExSTMの動作を変更する場合は,このディレクトリ内のファイルを変更すること。
programs内のファイルの説明
ビルドに必要な実行ファイルが置かれている.
setup内のファイルの説明
RExSTM初回実行時は空である.
解析対象とするソースコードをこのディレクトリに置く.
RExSTM初回実行時は空である.
状態遷移表を生成するための一時ファイルが生成される.
RExSTM初回実行時は空である.
状態遷移表を生成するための一時ファイルが生成される.
RExSTM初回実行時は空である.
状態遷移表を生成するための一時ファイルが生成される.
構文解析、条件処理表作成、状態遷移表作成をするマクロ付Excelファイル.
このファイルを開くことでRExSTMが起動する.
debug_senni.bat実行時のタイムアウト処理を行う.
構文解析,条件処理表作成のデバッグモードのツール.
詳細はdebug/readme.txtを参照.
状態遷移表作成のデバッグモードのツール.
詳細はdebug/readme.txtを参照.
条件処理表作成時のコンパイラ及びコンパイルオプションを記述する.
RExSTM初回実行時にはデフォルトのコンパイラ及びコンパイルオプションが記述されている.
jotaivar.py,deletefunction.pyで削除する関数を参照する際に用いられる.
ユーザがマクロ展開したくないヘッダファイルを記述する.
標準ライブラリのヘッダファイルが記述されている.
このファイルに記述されたヘッダファイルはマクロ展開されない.
構文解析,条件処理表作成を行うスクリプトがまとめられている.
条件式に状態変数を含む制御構文にelse句がない場合,無処理のelseを挿入する.
Excel上でユーザが選択した状態変数を含む条件式のネストの外側に,「無条件」イベントで実行される処理がある場合,
それらの処理を,各状態における処理の前後に付加する.
(「無条件」イベントについてはinsert_mujoken.pyを参照)
Excel上でユーザが選択した状態変数がローカル変数の場合,Cファイルにおいてその変数が定義される関数以外の記述部分を削除する.
一時ファイルの削除を行う実行ファイル.
ユーザが選択した状態変数を含む制御構文のネストの深さや,状態変数の取りうる値の種類が既定の値よりも大きい場合,警告・エラー文を生成する.
与えられたCファイルにおいて,ユーザが選択した状態変数が取りうる値を全て取得する. また,状態変数の更新が起こるときのイベントを全て取得する.
Excel上でユーザが選択した状態変数の各状態における処理にイベントが存在しない場合, 「無条件」という名前のイベントを追加する.
状態変数が含まれる条件式のネストの内側にある制御構文を,状態遷移表における処理として扱うようにする.
senni.exeの実行時に必要なDLLファイル.
senni.pyを変換して生成された実行ファイル.
状態遷移表作成を開始する.
programsフォルダ内のpythonスクリプトを呼び出す.
py2exe.batの実行のために必要な一時ファイル. RExSTMの動作には直接影響しない.
Excel上でユーザが選択したソースファイルの処理・条件式を関数ごとに分割する. split_funcs.py以降のモジュールは分割された各関数における処理・条件式を対象に実行する.
各イベント・処理・状態変数名・状態変数の取りうる値それぞれにセル番地を割り当てて,状態遷移表のセル情報を作成する. 罫線の範囲と,着色の対象とするセル情報も作成する. また,各関数におけるこれらのセル情報をすべて統合する.
analyze.pyを変換して生成された実行ファイル.
構文解析,条件処理表作成を開始する.
programs/analyze_programs内のpythonスクリプトを呼び出す.
中括弧の位置を固定する.
プロトタイプ宣言を削除する.
グローバル変数のためのダミー関数を作成する.
中括弧に応じてインデントのタブ文字を付与する.
条件処理表を作成するためのセル情報(関数ごと)を出力する.
pragma.pyで出力された解析済みCファイルから状態変数候補の変数を探し,変数名のリストを出力する.
if文で無処理のものを削除する.
条件式にマーキングする.
関数でif文および代入文を持たないものを削除する.
ネストの深さをチェックし,対象Cファイルにおける最大の深さに満たないネストに対して無条件if文の追加を行う.
プリプロセス命令およびアセンブリ処理を削除する.
様々な表記のif文をc_reform.pyで定義したものと同じ表記に変換する.
switch文をif文に変換する.
analyze.exeの実行時に必要なDLLファイル.
エラーメッセージを出力する.
jotaivar.pyで出力された状態変数候補リストに存在する変数のうち,その変数が使われるif文のブロック内で変数への代入が発生しない場合, 状態変数候補リストから削除する.
py2exe.batの実行のために必要な一時ファイル. 動作には直接影響しない.
jokenshori.pyで出力された,条件処理表を作成するためのセル情報(関数ごと)を1つに統合する.
条件処理表に描画する罫線の範囲情報を出力する.
pythonファイルからexeファイルを生成する.
生成されたbatファイルはpythonファイルと同じディレクトリ内に生成される.