我需要解析一个包含条件语句的文件,有时会嵌套在另一个文件中.
我有一个存储配置数据的文件,但配置数据略有不同,具体取决于用户定义的选项.我可以处理条件语句,它们都只是没有操作的布尔值,但我不知道如何递归地评估嵌套条件.例如,文件的一部分可能如下所示:
...
#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
...
Run Code Online (Sandbox Code Playgroud)
...而且,有些条件没有#else声明,只是#if CONDITION statement(s) #endif.
我意识到,如果文件只是用XML编写,或者其他东西用一个很好的解析器开始,这可能很容易,但这是我必须要处理的,所以我想知道是否有任何相对简单的方法来解析这个文件.它类似于括号匹配,所以我想它会有一些模块,但我没有找到任何东西.
我正在使用python,但如果用另一种语言更容易解决这个问题,我可以切换这个功能.