小编jmp*_*jmp的帖子

解析嵌套的条件语句

我需要解析一个包含条件语句的文件,有时会嵌套在另一个文件中.

我有一个存储配置数据的文件,但配置数据略有不同,具体取决于用户定义的选项.我可以处理条件语句,它们都只是没有操作的布尔值,但我不知道如何递归地评估嵌套条件.例如,文件的一部分可能如下所示:

...
#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,但如果用另一种语言更容易解决这个问题,我可以切换这个功能.

python regex conditional-compilation

2
推荐指数
1
解决办法
2793
查看次数

标签 统计

conditional-compilation ×1

python ×1

regex ×1