我需要解析一个包含条件语句的文件,有时会相互嵌套。
我有一个存储配置数据的文件,但配置数据根据用户定义的选项略有不同。我可以处理条件语句,它们都只是没有操作的布尔值,但我不知道如何递归地评估嵌套条件。例如,文件的一部分可能如下所示:
...
#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,但如果用另一种语言更容易解决这个问题,我可以切换到这个功能。