pyparsing:确保解析所有部分

时间:2015-07-14 07:23:51

标签: pyparsing

我为evice配置文件编写了一个解析器。接口有很多部分,它们包含一些配置命令。并且由于不同的设备(固件版本)可能具有不同的默认值,而且此时我不知道所有可能的命令---在这种情况下如何编写解析器?

当我写:

# for cisco:
iface = header \
    + iftype + ifname \
    + descr \
    + switchport_options \
    + SkipTo(comment).suppress() \
    + comment.suppress()

ifaces = Group(OneOrMore(iface))

---在这种情况下,我在ip address令牌之前错过了descr的所有接口。好的,我知道这一点,我可以对每个可能的命令使用Optional,但是到目前为止我可能还有其他配置命令。

我得到一个接口列表,没有那些没有用我的语言定义解析过的接口。

我想我可以两次通过。首先,让所有ifaces将其定义为“从interfacecomment的所有内容”,然后尝试逐个解析它们。可能的例外情况将帮助我微调我的定义。

这是正确的方法吗?

我该怎么做?

0 个答案:

没有答案