本文整理汇总了Python中webkit2.parser.parse函数的典型用法代码示例。如果您正苦于以下问题:Python parse函数的具体用法?Python parse怎么用?Python parse使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了parse函数的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: generate_messages_header
def generate_messages_header(file):
receiver = parser.parse(file)
header_guard = messages_header_filename(receiver).replace(".", "_")
result = []
result.append(_license_header)
result.append("#ifndef %s\n" % header_guard)
result.append("#define %s\n\n" % header_guard)
if receiver.condition:
result.append("#if %s\n\n" % receiver.condition)
forward_declarations, headers = forward_declarations_and_headers(receiver)
result += headers
result.append("\n")
result.append(forward_declarations)
result.append("\n")
result.append("namespace Messages {\nnamespace %s {\n" % receiver.name)
result.append("\n")
result.append("static inline CoreIPC::StringReference messageReceiverName()\n")
result.append("{\n")
result.append(' return CoreIPC::StringReference("%s");\n' % receiver.name)
result.append("}\n")
result.append("\n")
result.append(messages_to_kind_enum(receiver.messages))
result.append("\n")
result.append("\n".join([message_to_struct_declaration(x) for x in receiver.messages]))
result.append("\n")
result.append("} // namespace %s\n} // namespace Messages\n" % receiver.name)
result.append("\nnamespace CoreIPC {\n\n")
result.append("template<> struct MessageKindTraits<Messages::%s::Kind> {\n" % receiver.name)
result.append(" static const MessageClass messageClass = MessageClass%s;\n" % receiver.name)
result.append("};\n")
result.append("\n} // namespace CoreIPC\n")
if receiver.condition:
result.append("\n#endif // %s\n" % receiver.condition)
result.append("\n#endif // %s\n" % header_guard)
return "".join(result)
开发者ID:awong-chromium,项目名称:webkit,代码行数:48,代码来源:messages.py
示例2: generate_message_handler
def generate_message_handler(file):
receiver = parser.parse(file)
headers = {
'"%s"' % messages_header_filename(receiver): [None],
'"HandleMessage.h"': [None],
'"MessageDecoder.h"': [None],
}
type_conditions = {}
for parameter in receiver.iterparameters():
if not parameter.type in type_conditions:
type_conditions[parameter.type] = []
if not parameter.condition in type_conditions[parameter.type]:
type_conditions[parameter.type].append(parameter.condition)
for parameter in receiver.iterparameters():
type = parameter.type
conditions = type_conditions[type]
argument_encoder_headers = argument_coder_headers_for_type(type)
if argument_encoder_headers:
for header in argument_encoder_headers:
if header not in headers:
headers[header] = []
headers[header].extend(conditions)
type_headers = headers_for_type(type)
for header in type_headers:
if header not in headers:
headers[header] = []
headers[header].extend(conditions)
for message in receiver.messages:
if message.reply_parameters is not None:
for reply_parameter in message.reply_parameters:
type = reply_parameter.type
argument_encoder_headers = argument_coder_headers_for_type(type)
if argument_encoder_headers:
for header in argument_encoder_headers:
if header not in headers:
headers[header] = []
headers[header].append(message.condition)
type_headers = headers_for_type(type)
for header in type_headers:
if header not in headers:
headers[header] = []
headers[header].append(message.condition)
result = []
result.append(_license_header)
result.append('#include "config.h"\n')
result.append("\n")
if receiver.condition:
result.append("#if %s\n\n" % receiver.condition)
result.append('#include "%s.h"\n\n' % receiver.name)
for headercondition in sorted(headers):
if headers[headercondition] and not None in headers[headercondition]:
result.append("#if %s\n" % " || ".join(set(headers[headercondition])))
result += ["#include %s\n" % headercondition]
result.append("#endif\n")
else:
result += ["#include %s\n" % headercondition]
result.append("\n")
sync_delayed_messages = []
for message in receiver.messages:
if message.reply_parameters != None and message.has_attribute(DELAYED_ATTRIBUTE):
sync_delayed_messages.append(message)
if sync_delayed_messages:
result.append("namespace Messages {\n\nnamespace %s {\n\n" % receiver.name)
for message in sync_delayed_messages:
send_parameters = [(function_parameter_type(x.type), x.name) for x in message.reply_parameters]
if message.condition:
result.append("#if %s\n\n" % message.condition)
result.append(
"%s::DelayedReply::DelayedReply(PassRefPtr<CoreIPC::Connection> connection, PassOwnPtr<CoreIPC::MessageEncoder> encoder)\n"
% message.name
)
result.append(" : m_connection(connection)\n")
result.append(" , m_encoder(encoder)\n")
result.append("{\n")
result.append("}\n")
result.append("\n")
result.append("%s::DelayedReply::~DelayedReply()\n" % message.name)
result.append("{\n")
result.append(" ASSERT(!m_connection);\n")
result.append("}\n")
result.append("\n")
result.append(
"bool %s::DelayedReply::send(%s)\n" % (message.name, ", ".join([" ".join(x) for x in send_parameters]))
)
#.........这里部分代码省略.........
开发者ID:awong-chromium,项目名称:webkit,代码行数:101,代码来源:messages.py
注:本文中的webkit2.parser.parse函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论