dbus签名分析器
dbus-signature-pyparsing的Python项目详细描述
dbus签名的分析器。
简介
此模块包含使用 pyparsing库(http://pyparsing.wikispaces.com/)。
语法遵循 https://dbus.freedesktop.org/doc/dbus-specification.html。 这个语法非常简单,可以由ll(1)解析器解析。
语法经过了假设检验的重要检验 库(http://hypothesis.works/)。
用法和实现提示
使用库来验证字符串是否是签名 简单明了:
>>> from dbus_signature_pyparsing import Parser >>> parser = Parser() >>> parser.PARSER.parseString("a(qy)", parseAll=True)
如果parseString()没有引发pyparsing异常,则参数字符串 是有效的签名。
请注意,空字符串是有效的签名。因此,重要的是 要求解析器通过设置parseAll来解析整个字符串 参数为true。如果parseAll为false(这是默认值),则解析器 总是可以解析空字符串,并且每个字符串都将被解析和验证 作为有效的签名。
parser对象将其所有子解析器公开为实例属性。 解析器属性是顶层解析器,适合于解析一般 签名。complete属性解析 作为“单一完整类型”的非正式规范。code属性是 相当于规范的“类型代码”。
解析器很容易被委托或继承使用。每个 子解析器属性是parseRelement;因此每个子解析器都支持 addParseAction()方法。自定义基本解析器以返回 解析签名后的特定值调用 在每个适当的子解析器上使用适当的 选择的方法。当 对有效的签名字符串调用parseString()方法。 有关进一步的帮助,请参阅pyparsing的大量文档 http://pyparsing.wikispaces.com/和https://pythonhosted.org/pyparsing/。