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.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_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 entity identifier.

Parameters:

oLine: (line object)

Returns: (one element 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 list of strings)

vsg.utils.extract_first_keyword(oLine)

Returns first keyword from line.

Parameters:

oLine: (line object)

Returns: (one element 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_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_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.get_first_word(oLine)

Returns the first word from a line at iIndex.

Parameters:

oLine: (line object)

Returns: (string)

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_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.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