コード例 #1
0
def named_pointer_decl(tp):
    if isinstance(tp.typ, typedesc.FunctionType):
        args = [generic_decl(arg) for arg in tp.typ.iterArgTypes()]
        return generic_decl(
            tp.typ.returns) + '(*%s)' + '(%s)' % ", ".join(args)
    else:
        return generic_decl(tp.typ) + ' * %s'
コード例 #2
0
def cy_generate_structure(tp, union=False):
    if union:
        output = ['cdef union %s:' % tp.name]
    else:
        output = ['cdef struct %s:' % tp.name]
    for m in tp.members:
        if isinstance(m, typedesc.Field):
            output.append("\t" + (generic_named_decl(m.typ) % m.name))
        elif isinstance(m, typedesc.Structure):
            output.append("\t%s" % generic_decl(m))
        else:
            print "Struct member not handled:", m
    if not tp.members:
        output.append("\tpass")

    return output
コード例 #3
0
ファイル: cycodegen.py プロジェクト: cournape/cython-codegen
def cy_generate_structure(tp, union=False):
    if union:
        output = ['cdef union %s:' % tp.name]
    else:
        output = ['cdef struct %s:' % tp.name]
    for m in tp.members:
        if isinstance(m, typedesc.Field):
            output.append("\t" + (generic_named_decl(m.typ) % m.name))
        elif isinstance(m, typedesc.Structure):
            output.append("\t%s" % generic_decl(m))
        elif isinstance(m, typedesc.Ignored):
            pass
        else:
            print "Struct member not handled:", m
    if not tp.members:
        output.append("\tpass")

    return output
コード例 #4
0
ファイル: funcs.py プロジェクト: cournape/cython-codegen
def named_pointer_decl(tp):
    if isinstance(tp.typ, typedesc.FunctionType):
        args = [generic_decl(arg) for arg in tp.typ.iterArgTypes()]
        return generic_decl(tp.typ.returns) + '(*%s)' + '(%s)' % ", ".join(args)
    else:
        return generic_decl(tp.typ) + ' * %s'