Example #1
0
 def convert_all_entities(self, obj, ouputFolder, x, FilesDone):
     entiyFileName = hdl.get_entity_file_name(x)
     if entiyFileName not in FilesDone:
         print_cnvt(
             str(gTemplateIndent) + '<entity_conversion name="' +
             type(x).__name__ + '">')
         gTemplateIndent.inc()
         hdl.prepare_for_conversion(x)
         hdl.reset_TemplateMissing(x)
         try:
             entity_content = hdl.get_enity_file_content(x)
         except Exception as inst:
             raise Exception([
                 "Error in entity Converion:\nEntityFileName: " +
                 entiyFileName
             ], x, inst)
         if entity_content and not (x.__hdl_converter__.MissingTemplate
                                    and not saveUnfinishedFiles()):
             file_set_content(ouputFolder + "/" + entiyFileName,
                              entity_content)
         FilesDone.append(entiyFileName)
         if x.__hdl_converter__.MissingTemplate:
             print_cnvt(str(gTemplateIndent) + '<status ="failed">')
         else:
             print_cnvt(str(gTemplateIndent) + '<status ="sucess">')
         gTemplateIndent.deinc()
         print_cnvt(str(gTemplateIndent) + "</entity_conversion>")
    def get_architechtures(self):
        ClassInstance = self.ClassInstance
        parent = self.parent
        setDefaultVarSig(varSig.signal_t)

        ClassName = type(ClassInstance).__name__
        cl = self.astParser.getClassByName(ClassName)
        for f in cl.body:
            if f.name in self.astParser.functionNameVetoList:
                continue

            self.astParser.Missing_template = False
            hdl.reset_TemplateMissing(ClassInstance)
            self.astParser.reset_buffers()

            self.astParser.parent = parent
            self.astParser.FuncArgs.append({
                "name": "self",
                "symbol": ClassInstance,
                "ScopeType": InOut_t.InOut_tt
            })

            self.astParser.local_function = ClassInstance.__init__.__globals__

            if sort_archetecture():
                self.astParser.Archetecture_vars = sorted(
                    ClassInstance.__local_symbols__,
                    key=lambda element_: element_["type_name"])
            else:
                self.astParser.Archetecture_vars = ClassInstance.__local_symbols__

            try:
                body = self.astParser.Unfold_body(f)  ## get local vars
            except Exception as inst:
                err_msg = argg_hdl_error(
                    self.astParser.sourceFileName, f.lineno, f.col_offset,
                    ClassName, "Function Name: " + f.name +
                    ", Unable to Unfold AST, Error In extractArchetectureForEntity: body = self.Unfold_body(f)"
                )
                raise Exception(err_msg, ClassInstance, inst)

            if self.astParser.Missing_template:
                hdl.FlagFor_TemplateMissing(ClassInstance)

            else:
                proc = v_Arch(body=body,
                              Symbols=self.astParser.LocalVar,
                              Arch_vars=self.astParser.Archetecture_vars,
                              ports=ClassInstance.getMember())
                ClassInstance.__processList__.append(proc)
    def convert_all_packages(self, obj, ouputFolder,x,FilesDone):
        if x.__abstract_type_info__.vetoHDLConversion:
            return 

        packetName =  hdl.get_packet_file_name(x)
        if packetName not in FilesDone:
            print_cnvt(str(gTemplateIndent)+ '<package_conversion name="'+type(x).__name__ +'">')
            gTemplateIndent.inc()
            hdl.prepare_for_conversion(x)
            hdl.reset_TemplateMissing(x)
            packet = hdl.get_packet_file_content(x)
            if packet and not (x.__hdl_converter__.MissingTemplate and not saveUnfinishedFiles()):
                file_set_content(ouputFolder+"/" +packetName,packet)
            FilesDone.append(packetName)
            if x.__hdl_converter__.MissingTemplate:
                print_cnvt(str(gTemplateIndent)+'<status ="failed">')
            else:
                print_cnvt(str(gTemplateIndent)+'<status ="sucess">')
            gTemplateIndent.deinc()
            print_cnvt(str(gTemplateIndent)+ '</package_conversion>')