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)
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)
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')
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
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, '\(')
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
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)
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
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:])
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')
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')
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')
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))
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
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)
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
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)
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)
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
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
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
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
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
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
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
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)
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
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
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))
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])