Ejemplo n.º 1
0
def getEnum(elem):
    syms = []
    name = getters.getName(elem)
    include = getters.getLocation(elem)
    params = getters.getEnumParams(elem)
    briefDesc = getters.getBriefDesc(elem)
    detailedDesc = getters.getDetailedDesc(elem)

    enumProto = buildPrototype("enum " + name + " { ", briefDesc)
    for param in params:
        if param.initializer != "":
            proto = param.name + param.initializer
        else:
            proto = param.name
        enumProto.prototype += proto + ", "
        enumProto.addParameter(
            buildParameter(prototype=proto, description=param.desc))
    if len(params) != 0:
        enumProto.prototype = enumProto.prototype[:-2]
    enumProto.prototype += " }"
    enumSym = buildVariable(path=name,
                            prototypeObj=enumProto,
                            importString=include)
    syms.append(enumSym)
    return syms
Ejemplo n.º 2
0
def getFunction(elem):
    syms = []
    name = getters.getName(elem)
    include = getters.getLocation(elem)
    params = getters.getParamDesc(elem, getters.getParams(elem))
    briefDesc = getters.getBriefDesc(elem)
    detailedDesc = getters.getFunctionDetailedDesc(elem)
    returnType = getters.getType(elem)
    exceptions = getters.getExceptions(elem)
    returnDesc = getters.getReturnDesc(elem)
    returnValues = getters.getRetvals(elem)

    funcProto = buildPrototype(returnType + " " + name + "(", briefDesc)
    for param in params:
        proto = param.type + " " + param.name
        funcProto.prototype += proto + ", "
        funcProto.addParameter(
            buildParameter(prototype=proto, description=param.desc))
    for ex in exceptions:
        funcProto.addException(
            buildException(linkedSymbol=ex.typename,
                           description=ex.description))
    if len(params) != 0:
        funcProto.prototype = funcProto.prototype[:-2]
    funcProto.prototype += ")"
    funcProto.addParameter(
        buildParameter(prototype="return", description=returnDesc))
    syms.append(
        buildFunction(path=name, prototypeObj=funcProto, importString=include))
    return syms
Ejemplo n.º 3
0
def getClass(classRoot):
    syms = []
    name = getters.getCompoundName(classRoot)
    name = name[name.find('::') + 2:]
    include = getters.getLocation(classRoot.find("compounddef"))
    briefDesc = getters.getBriefDesc(classRoot.find("compounddef"))

    classProto = buildPrototype("class " + name, briefDesc)
    classSym = buildClass(path=name,
                          prototypeObj=classProto,
                          importString=include)
    for elem in classRoot.iter('memberdef'):
        kind = elem.get('kind')

        if kind == 'variable':
            varSyms = getVariable(elem)
            for varSym in varSyms:
                classSym.addMember(name + "/" + varSym.path)
                syms.append(varSym)

        if kind == 'function':
            funcSyms = getFunction(elem)
            for funcSym in funcSyms:
                classSym.addMember(name + "/" + funcSym.path)
                syms.append(funcSym)
    syms.append(classSym)
    return syms
Ejemplo n.º 4
0
def getVariable(elem):
    syms = []
    name = getters.getName(elem)
    include = getters.getLocation(elem)
    vtype = getters.getType(elem)
    value = getters.getInitializer(elem)
    briefDesc = getters.getBriefDesc(elem)

    varProto = buildPrototype(name, briefDesc)
    syms.append(
        buildVariable(path=name, prototypeObj=varProto, importString=include))
    return syms
Ejemplo n.º 5
0
def getDefine(define):
    syms = []
    name = getters.getName(define)
    include = getters.getLocation(define)
    initializer = getters.getInitializer(define)
    params = getters.getParamDesc(define, getters.getParams(define))
    briefDesc = getters.getBriefDesc(define)
    detailedDesc = getters.getDetailedDesc(define)

    defineProto = buildPrototype("#define " + name + " " + initializer,
                                 briefDesc)
    syms.append(
        buildDefine(path=name, prototypeObj=defineProto, importString=include))
    return syms
Ejemplo n.º 6
0
def getUnion(fileName):
    root = ET.parse(fileName).getroot()

    syms = []
    name = getters.getCompoundName(root)
    include = getters.getLocation(root.find("compounddef"))
    briefDesc = getters.getBriefDesc(root.find("compounddef"))
    detailedDesc = getters.getDetailedDesc(root.find("compounddef"))

    unionProto = buildPrototype("struct " + name, briefDesc)
    unionSym = buildUnion(path=name,
                          prototypeObj=unionProto,
                          importString=include)
    for elem in root.iter("memberdef"):
        ename = getters.getName(elem)
        etype = getters.getType(elem)
        edesc = getters.getDetailedDesc(elem)
        proto = buildPrototype(etype + " " + ename, edesc)
        syms.append(
            buildVariable(path=(name + "/" + ename), prototypeObj=proto))
        unionSym.addMember(name + "/" + ename)
    syms.append(unionSym)
    return syms
Ejemplo n.º 7
0
def getTypedef(elem):
    syms = []
    tdType = getters.getType(elem)
    include = getters.getLocation(elem)
    try:
        if elem.find("argsstring").text:
            tmp = strOp.epurStr(elem.find("argsstring").text)
        else:
            return syms
        tdType = strOp.epurStr(tdType + tmp)
    except Exception as error:
        useful.printExceptionVerbose(error)
        pass
    tdName = getters.getName(elem)
    briefDesc = getters.getBriefDesc(elem)
    detailedDesc = getters.getDetailedDesc(elem)
    typedefProto = buildPrototype("typedef " + tdName + " " + tdType,
                                  briefDesc)
    syms.append(
        buildTypedef(path=tdName,
                     prototypeObj=typedefProto,
                     importString=include))
    return syms