当前位置: 首页>>代码示例>>Python>>正文


Python gccxmlparser.ModuleParser方法代码示例

本文整理汇总了Python中pybindgen.gccxmlparser.ModuleParser方法的典型用法代码示例。如果您正苦于以下问题:Python gccxmlparser.ModuleParser方法的具体用法?Python gccxmlparser.ModuleParser怎么用?Python gccxmlparser.ModuleParser使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在pybindgen.gccxmlparser的用法示例。


在下文中一共展示了gccxmlparser.ModuleParser方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: my_module_gen

# 需要导入模块: from pybindgen import gccxmlparser [as 别名]
# 或者: from pybindgen.gccxmlparser import ModuleParser [as 别名]
def my_module_gen():
    module_parser = ModuleParser('a1', '::')
    module = module_parser.parse([sys.argv[1]])
    module.add_include('"a.h"')

    module.generate(FileCodeSink(sys.stdout)) 
开发者ID:KTH,项目名称:royal-chaos,代码行数:8,代码来源:module-autogen.py

示例2: my_module_gen

# 需要导入模块: from pybindgen import gccxmlparser [as 别名]
# 或者: from pybindgen.gccxmlparser import ModuleParser [as 别名]
def my_module_gen():
    module_parser = ModuleParser('a2', '::')
    module_parser.parse([sys.argv[1]], includes=['"a.h"'], pygen_sink=FileCodeSink(sys.stdout)) 
开发者ID:KTH,项目名称:royal-chaos,代码行数:5,代码来源:module-autoscan.py

示例3: my_module_gen

# 需要导入模块: from pybindgen import gccxmlparser [as 别名]
# 或者: from pybindgen.gccxmlparser import ModuleParser [as 别名]
def my_module_gen():
    out = FileCodeSink(sys.stdout)
    pygen_file = open(sys.argv[3], "wt")
    module_parser = ModuleParser('foo2', '::')
    module_parser.enable_anonymous_containers = True

    print("PYTHON_INCLUDES:", repr(sys.argv[2]), file=sys.stderr)
    gccxml_options = dict(
        include_paths=eval(sys.argv[2]),
        )

    module_parser.parse_init([sys.argv[1]], includes=['"foo.h"'], pygen_sink=FileCodeSink(pygen_file),
                             gccxml_options=gccxml_options)
    module = module_parser.module
    foomodulegen_common.customize_module_pre(module)

    module.add_exception('exception', foreign_cpp_namespace='std', message_rvalue='%(EXC)s.what()')
    module_parser.scan_types()
    module_parser.scan_methods()
    module_parser.scan_functions()
    module_parser.parse_finalize()

    pygen_file.close()

    foomodulegen_common.customize_module(module)

    module.generate(out) 
开发者ID:KTH,项目名称:royal-chaos,代码行数:29,代码来源:foomodulegen-auto.py

示例4: my_module_gen

# 需要导入模块: from pybindgen import gccxmlparser [as 别名]
# 或者: from pybindgen.gccxmlparser import ModuleParser [as 别名]
def my_module_gen(out_file):
    out = FileCodeSink(out_file)
    #pybindgen.write_preamble(out)
    out.writeln("#include \"hello.h\"")
    module_parser = ModuleParser('hello')
    module_parser.add_pre_scan_hook(pre_scan_hook)
    module = module_parser.parse(sys.argv[1:])
    module.generate(out) 
开发者ID:KTH,项目名称:royal-chaos,代码行数:10,代码来源:hellomodulegen.py

示例5: my_module_gen

# 需要导入模块: from pybindgen import gccxmlparser [as 别名]
# 或者: from pybindgen.gccxmlparser import ModuleParser [as 别名]
def my_module_gen():
    pygen = [
        PygenSection('__main__', FileCodeSink(open(sys.argv[3], "wt"))),
        PygenSection('foomodulegen_module1', FileCodeSink(open(sys.argv[4], "wt")),
                     'foomodulegen_module1_local'),
        PygenSection('foomodulegen_module2', FileCodeSink(open(sys.argv[5], "wt")),
                     'foomodulegen_module2_local'),
        ]
    module_parser = ModuleParser('foo4', '::')
    module_parser.enable_anonymous_containers = True

    gccxml_options = dict(
        include_paths=eval(sys.argv[2]),
        )

    module_parser.parse_init([sys.argv[1]], includes=['"foo.h"'], pygen_sink=pygen, pygen_classifier=MyPygenClassifier(),
                             gccxml_options=gccxml_options)
    module = module_parser.module
    foomodulegen_common.customize_module_pre(module)
    module.add_exception('exception', foreign_cpp_namespace='std', message_rvalue='%(EXC)s.what()')
    module_parser.scan_types()
    module_parser.scan_methods()
    module_parser.scan_functions()
    module_parser.parse_finalize()

    for sect in pygen:
        sect.code_sink.file.close() 
开发者ID:KTH,项目名称:royal-chaos,代码行数:29,代码来源:foomodulegen-auto-split.py

示例6: ns3_module_scan

# 需要导入模块: from pybindgen import gccxmlparser [as 别名]
# 或者: from pybindgen.gccxmlparser import ModuleParser [as 别名]
def ns3_module_scan(top_builddir, module_name, headers_map, output_file_name, cflags):
    module_parser = ModuleParser('ns.%s' % module_name.replace('-', '_'), 'ns3')
    module_parser.add_pre_scan_hook(PreScanHook(headers_map, module_name))
    #module_parser.add_post_scan_hook(post_scan_hook)

    gccxml_options = dict(
        include_paths=[top_builddir],
         define_symbols={
            #'NS3_ASSERT_ENABLE': None,
            #'NS3_LOG_ENABLE': None,
            },
        cflags=('--gccxml-cxxflags "%s -DPYTHON_SCAN"' % cflags)
        )

    try:
        os.unlink(output_file_name)
    except OSError:
        pass
    try:
        os.makedirs(os.path.dirname(output_file_name))
    except OSError:
        pass
    output_file = open(output_file_name, "wt")
    output_sink = FileCodeSink(output_file)

    # if there exists a scan-header.h file in src/<module>/bindings,
    # scan it, otherwise scan ns3/xxxx-module.h.
    scan_header = os.path.join(os.path.dirname(output_file_name), "scan-header.h")
    if not os.path.exists(scan_header):
        scan_header = os.path.join(top_builddir, "ns3", "%s-module.h" % module_name)

    module_parser.parse_init([scan_header],
                             None, whitelist_paths=[top_builddir],
                             #includes=['"ns3/everything.h"'],
                             pygen_sink=output_sink,
                             gccxml_options=gccxml_options)
    module_parser.scan_types()

    callback_classes_file = open(os.path.join(os.path.dirname(output_file_name), "callbacks_list.py"), "wt")
    scan_callback_classes(module_parser, callback_classes_file)
    callback_classes_file.close()


    module_parser.scan_methods()
    module_parser.scan_functions()
    module_parser.parse_finalize()

    output_file.close()
    os.chmod(output_file_name, 0400) 
开发者ID:ntu-dsi-dcn,项目名称:ntu-dsi-dcn,代码行数:51,代码来源:ns3modulescan-modular.py


注:本文中的pybindgen.gccxmlparser.ModuleParser方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。