条件付きステートメントを含むファイルを解析する必要があります。これらのファイルは、相互にネストされている場合があります。
構成データを格納するファイルがありますが、ユーザー定義のオプションによって構成データが少し異なります。条件文を処理できます。これらはすべて操作のないブール値ですが、ネストされた条件を再帰的に評価する方法がわかりません。たとえば、ファイルの一部は次のようになります。
...
#if CELSIUS
#if FROM_KELVIN ; this is a comment about converting kelvin to celsius.
temp_conversion = 1, 273
#else
temp_conversion = 0.556, -32
#endif
#else
#if FROM_KELVIN
temp_conversion = 1.8, -255.3
#else
temp_conversion = 1.8, 17.778
#endif
#endif
...
...また、一部の条件文には#else
ステートメントがなく、ただ#if CONDITION statement(s) #endif
。
これは、ファイルがXMLで記述されているか、最初から優れたパーサーを使用して作成されている場合は簡単ですが、これを処理する必要があるため、このファイルを解析する比較的簡単な方法があるかどうか疑問に思います。 。かっこマッチングに似ているので、モジュールがあると思いますが、何も見つかりませんでした。
私はPythonで作業していますが、別の言語でこれを解決する方が簡単な場合は、この関数に切り替えることができます。