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_from_word(sWord)¶ Removes parenthesis from words:
Hello(there) => Hello Hello => HelloParameters:
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; => entityParameters:
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.commentColumnParameters:
oLine: (Line Object)Returns: Nothing