示例#1
0
def build(fname):
    global _pylines, _pylevel, _ns, _py_fmt_fmt, _py_fmt_size, _py_fmt_list
    _pylines = []
    _pylevel = 0
    _ns = None

    _py_fmt_fmt = ''
    _py_fmt_size = 0
    _py_fmt_list = []

    # Parse the xml header
    module = Module(fname, __main__.output)
    # Build type-registry and resolve type dependencies
    module.register()
    module.resolve()
    # Output the code
    module.generate()
示例#2
0
def build(fname):
    global _pylines, _pylevel, _ns, _py_fmt_fmt, _py_fmt_size, _py_fmt_list
    _pylines = []
    _pylevel = 0
    _ns = None

    _py_fmt_fmt = ''
    _py_fmt_size = 0
    _py_fmt_list = []

    # Parse the xml header
    module = Module(fname, __main__.output)
    # Build type-registry and resolve type dependencies
    module.register()
    module.resolve()
    # Output the code
    module.generate()
示例#3
0
parser.add_argument('output')
args = parser.parse_args()

output = {'open'    : cxx_open,
          'close'   : cxx_close,
          'simple'  : cxx_simple,
          'enum'    : cxx_enum,
          'struct'  : cxx_struct,
          'union'   : cxx_union,
          'request' : cxx_request,
          'event'   : cxx_event,
          'error'   : cxx_error,
          }

if args.xml:
    from xcbgen.state import Module
    from xcbgen.xtypes import *

    module = Module(args.xml, output)
    c_client.module = module
    module.register()
    module.resolve()
    module.generate()
else:
    future_error = cxx_request_wrapper("future_error", "xcb_void_cookie_t")
    cxx_request_checked(future_error)
    xcb_ns.children.append(future_error)
    std_ns.children.append(CxxTemplate("struct iterator_traits;\n",
                                       "typename Iterator"))
    cxx_close(None)
示例#4
0
    print str(err)
    print 'Usage: c_client.py [-p path] file.xml'
    sys.exit(1)

for (opt, arg) in opts:
    if opt == '-p':
        sys.path.append(arg)

# Import the module class
try:
    from xcbgen.state import Module
except ImportError:
    print ''
    print 'Failed to load the xcbgen Python package!'
    print 'Make sure that xcb/proto installed it on your Python path.'
    print 'If not, you will need to create a .pth file or define $PYTHONPATH'
    print 'to extend the path.'
    print 'Refer to the README file in xcb/proto for more info.'
    print ''
    raise

# Parse the xml header
module = Module(args[0], output)

# Build type-registry and resolve type dependencies
module.register()
module.resolve()

# Output the code
module.generate()