本文整理汇总了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))
示例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))
示例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)
示例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)
示例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()
示例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)