def append_header_arr(obj, header, prefix): ''' Description: Write c header file of array Interface: None History: 2019-06-17 ''' if not obj.subtypobj or obj.subtypname: return header.write("typedef struct {\n") for i in obj.subtypobj: if i.typ == 'array': c_typ = helpers.get_prefixe_pointer(i.name, i.subtyp, prefix) or \ helpers.get_map_c_types(i.subtyp) if i.subtypobj is not None: c_typ = helpers.get_name_substr(i.name, prefix) if not helpers.judge_complex(i.subtyp): header.write(" %s%s*%s;\n" % (c_typ, " " if '*' not in c_typ else "", \ i.fixname)) else: header.write(" %s **%s;\n" % (c_typ, i.fixname)) header.write(" size_t %s;\n\n" % (i.fixname + "_len")) else: c_typ = helpers.get_prefixe_pointer(i.name, i.typ, prefix) or \ helpers.get_map_c_types(i.typ) header.write(" %s%s%s;\n" % (c_typ, " " if '*' not in c_typ else "", i.fixname)) typename = helpers.get_name_substr(obj.name, prefix) header.write("}\n%s;\n\n" % typename) header.write("void free_%s(%s *ptr);\n\n" % (typename, typename)) header.write("%s *make_%s(yajl_val tree, const struct parser_context *ctx, parser_error *err);"\ "\n\n" % (typename, typename))
def append_header_child_others(child, header, prefix): ''' Description: Write c header file of others of child Interface: None History: 2019-06-17 ''' if helpers.get_map_c_types(child.typ) != "": c_typ = helpers.get_map_c_types(child.typ) elif helpers.valid_basic_map_name(child.typ): c_typ = '%s *' % helpers.make_basic_map_name(child.typ) elif child.subtypname: c_typ = helpers.get_prefixe_pointer(child.subtypname, child.typ, "") else: c_typ = helpers.get_prefixe_pointer(child.name, child.typ, prefix) header.write(" %s%s%s;\n\n" % (c_typ, " " if '*' not in c_typ else "", child.fixname))
def append_header_child_arr(child, header, prefix): ''' Description: Write c header file of array of child Interface: None History: 2019-06-17 ''' if helpers.get_map_c_types(child.subtyp) != "": c_typ = helpers.get_map_c_types(child.subtyp) elif helpers.valid_basic_map_name(child.subtyp): c_typ = '%s *' % helpers.make_basic_map_name(child.subtyp) elif child.subtypname is not None: c_typ = child.subtypname elif child.subtypobj is not None: c_typ = helpers.get_name_substr(child.name, prefix) else: c_typ = helpers.get_prefixe_pointer(child.name, child.subtyp, prefix) if helpers.valid_basic_map_name(child.subtyp): header.write( " %s **%s;\n" % (helpers.make_basic_map_name(child.subtyp), child.fixname)) elif not helpers.judge_complex(child.subtyp): header.write(" %s%s*%s;\n" % (c_typ, " " if '*' not in c_typ else "", child.fixname)) else: header.write(" %s%s**%s;\n" % (c_typ, " " if '*' not in c_typ else "", child.fixname)) header.write(" size_t %s;\n\n" % (child.fixname + "_len"))
def append_header_map_str_obj(obj, header, prefix): ''' Description: Write c header file of mapStringObject Interface: None History: 2019-06-17 ''' child = obj.children[0] header.write("typedef struct {\n") header.write(" char **keys;\n") if helpers.valid_basic_map_name(child.typ): c_typ = helpers.get_prefixe_pointer("", child.typ, "") elif child.subtypname: c_typ = child.subtypname else: c_typ = helpers.get_prefixe_pointer(child.name, child.typ, prefix) header.write(" %s%s*%s;\n" % (c_typ, " " if '*' not in c_typ else "", child.fixname)) header.write(" size_t len;\n")