Exemplo n.º 1
0
 def _fix_violations(self, oFile):
     for dViolation in self.violations:
         sWord = dViolation['constant']
         iLineNumber = utils.get_violation_line_number(dViolation)
         sReplacementWord = get_replacement_word(self, sWord)
         utils.change_word(oFile.lines[iLineNumber], sWord,
                           sReplacementWord, 20)
Exemplo n.º 2
0
 def _fix_violations(self, oFile):
     for dViolation in self.violations:
         iLineNumber = utils.get_violation_line_number(dViolation)
         oLine = oFile.lines[iLineNumber]
         oLine.update_line(re.sub(r'^(\s*component\s+\w+)', r'\1 is', oLine.lineLower, re.IGNORECASE))
         # Search for "is" on the next line
         fix.replace_is_keyword(oFile, iLineNumber)
Exemplo n.º 3
0
 def _fix_violations(self, oFile):
     for dViolation in self.violations:
         iLineNumber = utils.get_violation_line_number(dViolation)
         fix.enforce_one_space_after_word(self, oFile.lines[iLineNumber],
                                          'package')
         fix.enforce_one_space_before_word(self, oFile.lines[iLineNumber],
                                           'is')
Exemplo n.º 4
0
 def _fix_violations(self, oFile):
     for dViolation in self.violations[::-1]:
         iLineNumber = utils.get_violation_line_number(dViolation)
         utils.split_line_after_word(oFile, iLineNumber, '(')
         oFile.lines[iLineNumber].isInstantiationPortAssignment = False
         oFile.lines[iLineNumber + 1].isInstantiationPortKeyword = False
         oFile.lines[iLineNumber + 1].indentLevel += 1
Exemplo n.º 5
0
 def _fix_violations(self, oFile):
     for dViolation in self.violations[::-1]:
         iLineNumber = utils.get_violation_line_number(dViolation)
         oLine = oFile.lines[iLineNumber]
         oLine.update_line(
             re.sub('port', 'port (', oLine.line, 1, re.IGNORECASE))
         utils.search_for_and_remove_keyword(oFile, iLineNumber, '\(')
Exemplo n.º 6
0
 def _fix_violations(self, oFile):
     for dViolation in self.violations[::-1]:
         iLineNumber = utils.get_violation_line_number(dViolation)
         utils.split_line_after_word(oFile, iLineNumber, '(')
         oLine = oFile.lines[iLineNumber + 1]
         oLine.isTypeKeyword = False
         oLine.isTypeEnumeratedKeyword = False
         oLine.indentLevel += 1
Exemplo n.º 7
0
 def _fix_violations(self, oFile):
     for dViolation in self.violations[::-1]:
         iLineNumber = utils.get_violation_line_number(dViolation)
         utils.split_line_after_word(oFile, iLineNumber, '=>')
         oFile.lines[iLineNumber + 1].isCaseWhenEnd = False
         oFile.lines[iLineNumber + 1].insideCaseWhen = False
         oFile.lines[iLineNumber + 1].indentLevel += 1
         utils.reclassify_line(oFile, iLineNumber)
Exemplo n.º 8
0
 def _fix_violations(self, oFile):
     for dViolation in self.violations[::-1]:
         iLineNumber = utils.get_violation_line_number(dViolation)
         utils.split_line_before_word(oFile, iLineNumber, 'elsif')
         oFile.lines[iLineNumber].isLastEndIf = False
         oFile.lines[iLineNumber].isElseIfKeyword = False
         oFile.lines[iLineNumber + 1].isIfKeyword = False
         oFile.lines[iLineNumber + 1].isFirstIf = False
Exemplo n.º 9
0
 def _fix_violations(self, oFile):
     for dViolation in self.violations:
         iLineNumber = utils.get_violation_line_number(dViolation)
         oLine = oFile.lines[iLineNumber]
         sLine = oLine.line
         iIndex = oLine.lineLower.find('entity') + len('entity')
         oLine.update_line(sLine[:iIndex] + ' ' + dViolation['entity'] +
                           sLine[iIndex:])
Exemplo n.º 10
0
 def _fix_violations(self, oFile):
     for dViolation in self.violations:
         oLine = utils.get_violating_line(oFile, dViolation)
         oLine.update_line(
             re.sub(r'^(\s*architecture\s+\w+\s+of\s+\w+)', r'\1 is',
                    oLine.line, re.IGNORECASE))
         utils.search_for_and_remove_keyword(
             oFile, utils.get_violation_line_number(dViolation), 'is')
Exemplo n.º 11
0
 def _fix_violations(self, oFile):
     for dViolation in self.violations:
         iLineNumber = utils.get_violation_line_number(dViolation)
         oLine = oFile.lines[iLineNumber]
         oLine.update_line(
             re.sub(r'^(\s*entity\s+\w+)', r'\1 is', oLine.line,
                    re.IGNORECASE))
         utils.search_for_and_remove_keyword(oFile, iLineNumber, 'is')
Exemplo n.º 12
0
 def _fix_violations(self, oFile):
     for dViolation in self.violations:
         iLineNumber = utils.get_violation_line_number(dViolation)
         oPreviousLine = oFile.lines[iLineNumber - 1]
         oLine = oFile.lines[iLineNumber]
         iIndex = utils.end_of_line_index(oPreviousLine)
         oPreviousLine.update_line(oPreviousLine.line[:iIndex] + ' else' +
                                   oPreviousLine.line[iIndex:])
         utils.clear_keyword_from_line(oLine, 'else')
Exemplo n.º 13
0
 def _fix_violations(self, oFile):
     for dViolation in self.violations:
         oLine = utils.get_violating_line(oFile, dViolation)
         iInsertIndex = oLine.line.rfind(')')
         oLine.update_line(oLine.line[:iInsertIndex + 1] + ' is ' +
                           oLine.line[iInsertIndex + 1:])
         oLine.isProcessIs = True
         search_for_and_remove_extraneous_is(
             oFile, utils.get_violation_line_number(dViolation))
Exemplo n.º 14
0
 def _fix_violations(self, oFile):
     for dViolation in self.violations[::-1]:
         iLineNumber = utils.get_violation_line_number(dViolation)
         oLine = oFile.lines[iLineNumber]
         oLine.update_line(re.sub('begin', ' '*len('begin'), oLine.line, 1, flags=re.IGNORECASE))
         oLine.isProcessBegin = False
         oFile.lines.insert(iLineNumber + 1, line.line('  begin'))
         oFile.lines[iLineNumber + 1].isProcessBegin = True
         oFile.lines[iLineNumber + 1].indentLevel = oLine.indentLevel
Exemplo n.º 15
0
 def _fix_violations(self, oFile):
     for dViolation in self.violations[::-1]:
         iLineNumber = utils.get_violation_line_number(dViolation)
         for iSliceIndex in dViolation['slice_index'][::-1]:
             oLine = oFile.lines[iLineNumber]
             utils.copy_line(oFile, iLineNumber)
             _modify_existing_line(oLine, iSliceIndex)
             _modify_copied_line(oFile, iLineNumber, iSliceIndex,
                                 dViolation)
Exemplo n.º 16
0
 def _fix_violations(self, oFile):
     for dViolation in self.violations:
         iLineNumber = utils.get_violation_line_number(dViolation)
         oLine = oFile.lines[iLineNumber]
         sLine = oLine.line
         iIndex = oLine.lineLower.find('generate') + len('generate')
         oLine.update_line(sLine[:iIndex] + ' ' + dViolation['label'] +
                           sLine[iIndex:])
         oLine.isGenerateEndLabel = True
Exemplo n.º 17
0
 def _fix_violations(self, oFile):
     for dViolation in self.violations:
         iLineNumber = utils.get_violation_line_number(dViolation)
         sLine = oFile.lines[iLineNumber].line
         sLine = re.sub(r'(^\s*\w+\s*:)(\s*)component(\s+)',
                        r'\1 ',
                        sLine,
                        flags=re.IGNORECASE)
         oFile.lines[iLineNumber].update_line(sLine)
Exemplo n.º 18
0
    def _fix_violations(self, oFile):
        for violation in self.violations:
            iLineNumber = utils.get_violation_line_number(violation)
            for word in violation['words_to_fix']:
                if self.case == 'lower':
                    fix_function = fix.lower_case
                else:
                    fix_function = fix.upper_case

                fix_function(oFile.lines[iLineNumber], word)
Exemplo n.º 19
0
 def _get_solution(self, iLineNumber):
     lFunctions = []
     for dViolation in self.violations:
         if iLineNumber == utils.get_violation_line_number(dViolation):
             lFunctions.append(dViolation['name'])
     if len(lFunctions) > 1:
         sSolution = self.solution + 's: ' + ', '.join(lFunctions)
     else:
         sSolution = self.solution + ': ' + lFunctions[0]
     return sSolution
Exemplo n.º 20
0
 def _get_solution(self, iLineNumber):
     lTemp = []
     for dViolation in self.violations:
         if iLineNumber == utils.get_violation_line_number(dViolation):
             lTemp.append(dViolation['constant'])
     if len(lTemp) > 1:
         sSolution = self.solution + 's: ' + ', '.join(lTemp)
     else:
         sSolution = self.solution + ': ' + lTemp[0]
     return sSolution
Exemplo n.º 21
0
 def _get_solution(self, iLineNumber):
     lVariables = []
     for dViolation in self.violations:
         if utils.get_violation_line_number(dViolation) == iLineNumber:
             lVariables.append(dViolation['variable'])
     if len(lVariables) > 1:
         sSolution = self.solution + 's: ' + ', '.join(lVariables)
     else:
         sSolution = self.solution + ': ' + lVariables[0]
     return sSolution
Exemplo n.º 22
0
 def _fix_violations(self, oFile):
     for dViolation in self.violations[::-1]:
         iLineNumber = utils.get_violation_line_number(dViolation)
         utils.copy_line(oFile, iLineNumber)
         oLine = oFile.lines[iLineNumber]
         oLine.update_line(oLine.line.split('(')[0] + ' (')
         oLine.isInstantiationGenericAssignment = False
         oLine = oFile.lines[iLineNumber + 1]
         oLine.update_line('  ' + oLine.line.split('(')[1])
         oLine.isInstantiationGenericKeyword = False
         oLine.indentLevel += 1
Exemplo n.º 23
0
 def _fix_violations(self, oFile):
     for dViolation in self.violations[::-1]:
         iLineNumber = utils.get_violation_line_number(dViolation)
         utils.copy_line(oFile, iLineNumber)
         oLine = oFile.lines[iLineNumber]
         oLine.update_line(oLine.line.split('(')[0] + '(')
         oLine.isFunctionParameter = False
         oLine = oFile.lines[iLineNumber + 1]
         oLine.update_line('  ' + oLine.line.split('(')[1])
         oLine.isFunctionKeyword = False
         oLine.indentLevel = oFile.lines[iLineNumber].indentLevel + 1
Exemplo n.º 24
0
 def _fix_violations(self, oFile):
     for dViolation in self.violations[::-1]:
         iLineNumber = utils.get_violation_line_number(dViolation)
         oLine = oFile.lines[iLineNumber]
         iIndex = oLine.lineLower.find(' generic ')
         oFile.lines.insert(iLineNumber + 1, copy.deepcopy(oLine))
         oLine.update_line(oLine.line[:iIndex])
         oLine.isInstantiationGenericKeyword = False
         oLine = oFile.lines[iLineNumber + 1]
         oLine.update_line(oLine.line[iIndex:])
         oLine.isInstantiationDeclaration = False
         oLine.indentLevel += 1
Exemplo n.º 25
0
 def _fix_violations(self, oFile):
     for dViolation in self.violations[::-1]:
         iLineNumber = utils.get_violation_line_number(dViolation)
         utils.split_line_after_word(oFile, iLineNumber, 'else')
         oFile.lines[iLineNumber + 1].isElseKeyword = False
         oFile.lines[iLineNumber].isIfKeyword = False
         oFile.lines[iLineNumber].isElseIfKeyword = False
         oFile.lines[iLineNumber].isThenKeyword = False
         oFile.lines[iLineNumber + 1].indentLevel += 1
         oFile.lines[iLineNumber].isLastEndIf = False
         utils.reclassify_line(oFile, iLineNumber)
         oFile.lines[iLineNumber + 1].isFirstIf = False
Exemplo n.º 26
0
 def _fix_violations(self, oFile):
     for dViolation in self.violations[::-1]:
         iLineNumber = utils.get_violation_line_number(dViolation)
         utils.remove_lines(oFile, iLineNumber, dViolation['endLine'])
         utils.insert_line(oFile, iLineNumber)
         oLine = oFile.lines[iLineNumber]
         oLine.isSignal = True
         oLine.insideSignal = True
         oLine.isEndSignal = True
         oLine.isBlank = False
         oLine.update_line(dViolation['line'])
         utils.update_comment_line_attributes(oLine)
Exemplo n.º 27
0
 def _fix_violations(self, oFile):
     for dViolation in self.violations[::-1]:
         iLineNumber = utils.get_violation_line_number(dViolation)
         utils.copy_line(oFile, iLineNumber)
         oLine = oFile.lines[iLineNumber]
         oLine.update_line(extract_port_keyword(oLine.line))
         oLine = oFile.lines[iLineNumber + 1]
         oLine.update_line('    ' + extract_signal_definition(oLine.line))
         oLine.isPortKeyword = False
         oLine.isPortDeclaration = True
         oLine.insidePortMap = True
         oLine.indentLevel = oFile.lines[iLineNumber].indentLevel + 1
Exemplo n.º 28
0
 def _fix_violations(self, oFile):
     for dViolation in self.violations[::-1]:
         iLineNumber = utils.get_violation_line_number(dViolation)
         oFile.lines[iLineNumber].line = utils.remove_closing_parenthesis_and_semicolon(oFile.lines[iLineNumber].line)
         oFile.lines[iLineNumber].isEndGenericMap = False
         oFile.lines.insert(iLineNumber + 1, line.line('  );'))
         oFile.lines[iLineNumber + 1].isEndGenericMap = True
         oFile.lines[iLineNumber + 1].insideGenericMap = True
         if oFile.lines[iLineNumber].isGenericKeyword:
             oFile.lines[iLineNumber + 1].indentLevel = oFile.lines[iLineNumber].indentLevel
         else:
             oFile.lines[iLineNumber + 1].indentLevel = oFile.lines[iLineNumber].indentLevel
             oFile.lines[iLineNumber].indentLevel = oFile.lines[iLineNumber].indentLevel + 1
Exemplo n.º 29
0
 def _fix_violations(self, oFile):
     for dViolation in self.violations:
         iLineNumber = utils.get_violation_line_number(dViolation)
         oLine = oFile.lines[iLineNumber]
         if oLine.isIfKeyword:
             oLine.update_line(re.sub(r'^(\s*)[i|I][f|F]', r'\1if (', oLine.line))
         if oLine.isElseIfKeyword:
             oLine.update_line(re.sub('^(\s*)[e|E][l|L][s|S][i|I][f|F]', r'\1elsif (', oLine.line))
         iThenLineIndex = iLineNumber
         while not oLine.isThenKeyword:
             iThenLineIndex += 1
             oLine = oFile.lines[iThenLineIndex]
         oLine.update_line(re.sub('[t|T][h|H][e|E][n|N]', ') then', oLine.line))
Exemplo n.º 30
0
 def _fix_violations(self, oFile):
     for dViolation in self.violations[::-1]:
         iLineNumber = utils.get_violation_line_number(dViolation)
         oLine = oFile.lines[iLineNumber]
         iNumberOfPorts = oLine.line.split(':')[0].count(',') + 1
         # Replicate ports
         for iIndex in range(1, iNumberOfPorts):
             oFile.lines.insert(iLineNumber, copy.deepcopy(oLine))
         # Split ports
         for iIndex in range(0, iNumberOfPorts):
             oLine = oFile.lines[iLineNumber + iIndex]
             lLine = oLine.line.split(':')
             lPorts = lLine[0].split(',')
             oLine.update_line(lPorts[iIndex] + ' :' + lLine[1])