vsg.utilities

This module provides functions for rules to use.

vsg.utils.begin_of_line_index(oLine)

Finds the left most non whitespace character. Returns the index of the first non whitespace character.

Parameters:

oLine: (line object)

Returns: (integer)

vsg.utils.change_word(oLine, sWord, sNewWord, iMax=1)

Changes one word in the line to another.

Parameters:

oLine: (line object)

sWord: (string)

sNewWord: (string)

vsg.utils.clear_keyword_from_line(oLine, sKeyword)

Removes a keyword from a line.

Parameters:

oLine: (line object)

sKeyword: (string)

vsg.utils.copy_line(oFile, iLineNumber)

Creates a copy of the line at iLineNumber and inserts it below iLineNumber.

Parameters:

oFile: (vhdlFile object)

iLineNumber: (integer)

vsg.utils.create_violation_dict(iLineNumber)

Builds a minimal violation dictionary.

Parameters:

iLineNumber: (integer)

Returns: dictionary

vsg.utils.end_of_line_index(oLine)

Finds the end of the code on a line ignoring comments. Returns the index of the last code character.

Parameters:

oLine: (line object)

Returns: (integer)

vsg.utils.extract_architecture_identifier(oLine)

Returns architecture name from architecture declaration or end.

Parameters:

oLine: (line object)

Returns: (one element or empty list of strings)

vsg.utils.extract_begin_label(oLine)

Returns the label.

Parameters:

oLine: (line object)

Returns: (one element list of strings)

vsg.utils.extract_class_identifier_list(oLine)

Returns a class identifiers list.

Parameters:

oLine: (line object)

Returns: (list of strings)

vsg.utils.extract_class_name(oLine)

Returns the name of a type in a type declaration.

Parameters:

oLine: (line object)

Returns: (one element list of strings)

vsg.utils.extract_component_identifier(oLine)

Returns the component identifier.

Parameters:

oLine: (line object)

Returns: (one element or empty list of strings)

vsg.utils.extract_end_label(oLine)

Returns the end label.

Parameters:

oLine: (line object)

Returns: (one element or empty list of strings)

vsg.utils.extract_entity_identifier(oLine)

Returns the entity identifier.

Parameters:

oLine: (line object)

Returns: (one element or empty list of strings)

vsg.utils.extract_generics(oLine)

Returns a generics list.

Parameters:

oLine: (line object)

Returns: (list of strings)

vsg.utils.extract_label(oLine)

Returns the label.

Parameters:

oLine: (line object)

Returns: (one element list of strings)

vsg.utils.extract_non_keywords(sString)
Returns a keyword list with the following removed:
:’s commas semicolons vhdl keywords double quotes numbers ticks comments

Parameters:

sString: (string)

Returns: (list of strings)

vsg.utils.extract_port_assignments(oLine)

Extracts port assignments from an instantiation.

Parameters:

oLine : (line object)

Returns: (list of strings)

vsg.utils.extract_port_name(oLine)

Returns port name from line.

Parameters:

oLine: (line object)

Returns: (one element list of strings)

vsg.utils.extract_port_names_from_port_map(oLine)

Returns port names from port assignment inside port map.

Parameters:
oLine: (line object)

Returns: (list of strings)

vsg.utils.extract_string_after_string(sLine, sString)

Extracts a string from a string after the given string.

Parameters:

sLine : (string)

sString : (string)

Returns: (string)

vsg.utils.extract_string_before_string(sLine, sString)

Extracts a string from a string before the given string.

Parameters:

sLine : (string)

sString : (string)

Returns: (string)

vsg.utils.extract_type_identifier(oLine)

Returns the type identifier from type declaration.

Parameters:

oLine: (line object)

Returns: (one element list of strings)

vsg.utils.extract_type_name(oLine)

Returns the name of a type in various declarations.

Parameters:

oLine: (line object)

Returns: (zero or one element list of strings)

vsg.utils.extract_type_name_from_port(oLine)

Returns the name of a type in port declaration.

Parameters:

oLine: (line object)

Returns: (one element list of strings)

vsg.utils.extract_type_name_from_port_vhdl_only(oLine)

Returns the name of a VHDL only types in port declaration.

Parameters:

oLine: (line object)

Returns: (one element list of strings)

vsg.utils.extract_type_name_vhdl_only(oLine)

Returns the name of a VHDL only types in various declarations.

Parameters:

oLine: (line object)

Returns: (one element or empty list of strings)

vsg.utils.extract_words(oLine, words)

Returns words from line. Case insensitive, however returned words preserve their case.

Parameters:

oLine: (line object)

words: (list of words to extract)

Returns: (list of strings)

vsg.utils.find_comment_index_in_string(sString)

Finds the index of a comment in a string.

Parameters:

sString: (string)

Returns: (None) or (Integer)

vsg.utils.get_first_word(oLine)

Returns the first word from a line at iIndex.

Parameters:

oLine: (line object)

Returns: (string)

vsg.utils.get_violating_line(oFile, dViolation)

Returns a line from the file where a violation has occured.

Parameters:

oFile : (File object)

dViolation : (Violation dictionary)

Return: Line Object

vsg.utils.get_violation_line_number(dViolation)

Returns a line number of a violation.

Parameters:

dViolation: Violation dictionary

Returns: integer

vsg.utils.get_word(oLine, iIndex)

Returns a word from a line at iIndex.

Parameters:

oLine: (line object)

iIndex: (integer)

Returns: (string)

vsg.utils.insert_line(oFile, iIndex)

Inserts a blank line at iIndex into the file line list.

Parameters:

oFile: (File Object)

iIndex: (integer)

Returns: Nothing

vsg.utils.is_number(sString)

Returns boolean if the string passed is a number.

Parameters:

sLine: (string)

Returns: boolean

vsg.utils.is_port_mode(sWord)

Returns True if given word is a valid port mode.

Returns False if given word is not a valid port mode.

Parameters:

sWord: (string)

Returns: (boolean)

vsg.utils.is_vhdl_keyword(sWord)

Returns True if given word is a VHDL keyword.

Returns False if given word is not a VHDL keyword.

Parameters:

sWord: (string)

Returns: (boolean)

vsg.utils.reclassify_line(oFile, iLineNumber)

Updates the following attributes on the current and next line:

  • isFunctionReturn
  • insideVariableAssignment
  • isVariableAssignmentEnd
  • isVariableAssignment
  • insideSequential
  • isSequentialEnd
  • isSequential
  • hasComment
  • hasInlineComment
  • commentColumn

Parameters:

oFile: (vhdlFile object)

iLineNumber: (integer)

vsg.utils.remove_blank_line(oFile, iLineNumber)

Removes a line if it is blank.

Parameters:

oFile: (vhdlFile object)

iLineNumber: (integer)

vsg.utils.remove_closing_parenthesis_and_semicolon(oLine)

Parameters:

oLine: (line object)

Returns: (line object)

vsg.utils.remove_comment(sString)

Returns a string without comments.

Parameters:

sString: (string)

Returns: (string)

vsg.utils.remove_comment_attributes_from_line(oLine)

Sets all comment attributes on a line to indicate no comment is present.

Parameters:

oLine: (line object)
vsg.utils.remove_consecutive_characters(sString, sChar)

Removes consecutive characters from a string.

Paramters:

sString : (string)

sChar : (single character string)

Returns: (string)

vsg.utils.remove_line(oFile, iLineNumber)

Removes a line from the file line list.

Parameters:

oFile: (File Object)

iLineNumber : (integer)

Returns: Nothing

vsg.utils.remove_lines(oFile, iStartLine, iEndLine)

Removes a series of lines from the file line list.

Parameters:

oFile: (File Object)

iStartLine: (integer)

iEndLine: (integer)

Returns: Nothing

vsg.utils.remove_parenthesis(sString, iOpenCount=0, iCloseCount=0)

Removes pairs of parenthesis and their contents.

Parameters:

sString : (string)

Returns: (string)

vsg.utils.remove_parenthesis_from_word(sWord)

Removes parenthesis from words:

Hello(there) => Hello Hello => Hello

Parameters:

sWord: (string)

Returns: (string)

vsg.utils.remove_text_after_word(sKeyword, sWord)

Removes all text after a keyword.

Parameters:

sKeyword: (string)

sWord: (string)

vsg.utils.replace_word_by_index(oLine, iIndex, sWord)

Replaces text in a line at a given index with a given word.

Parameters:

oLine: (Line Object)

iIndex: (integer)

sWord: (string)

Returns: Nothing

vsg.utils.search_for_and_remove_keyword(oFile, iLineNumber, sKeyword)

Searches for a keyword on lines below the current line and removes it if discovered.

Parameters:

oFile: (vhdlFile object)

iLineNumber: (integer)

sKeyword: (string)

vsg.utils.split_line_after_word(oFile, iLineNumber, sWord)

Splits the line after the word given and inserts it after the current line.

Parameters:

oFile: (vhdlFile object)

iLineNumber: (integer)

sWord: (string)

vsg.utils.split_line_before_word(oFile, iLineNumber, sWord)

Splits the line before the word given and inserts it after the current line.

Parameters:

oFile: (vhdlFile object)

iLineNumber: (integer)

sWord: (string)

vsg.utils.split_line_on_comment(sString)

Split a string at the index a comment is found and returns a list with two strings.

Parameters:

sString : (string)

Returns: (list of strings)

vsg.utils.strip_semicolon_from_word(sWord)

Removes trailing semicolon from a word:

case; => case entity; => entity

Parameters:

sWord: (string)

Returns: (string)

vsg.utils.update_comment_line_attributes(oLine)

Updates the following attributes on a line:

self.isComment self.hasComment self.hasInLineComment self.commentColumn

Parameters:

oLine: (Line Object)

Returns: Nothing