def shellExtractor(file): """ Extract comments from Shell file. :param file: File to scan :type file: string :return: Scan output :rtype: ScanOutput """ result = CommentSyntax() single_line_comment = result.hash(file) cont_single_line_comment = contSingleLines(single_line_comment) file = file.split("/") output = ScanOutput() output.filename = file[-1] output.lang = "Shell" output.total_lines = single_line_comment[1] output.total_lines_of_comments = single_line_comment[3] output.blank_lines = single_line_comment[2] if cont_single_line_comment: single_line_comment = cont_single_line_comment[0] for i in single_line_comment[0]: output.single_line_comment.append(SingleLine(i[0], i[1])) for idx, _ in enumerate(cont_single_line_comment[1]): output.cont_single_line_comment.append( MultiLine( cont_single_line_comment[1][idx], cont_single_line_comment[2][idx], cont_single_line_comment[3][idx], )) return output
def rExtractor(file): """ Extract comments from R file. :param file: File to scan :type file: string :return: Scan output :rtype: ScanOutput """ result = CommentSyntax() single_line_comment = result.hash(file) file = file.split("/") output = ScanOutput() output.filename = file[-1] output.lang = "R" output.total_lines = single_line_comment[1] output.total_lines_of_comments = single_line_comment[3] output.blank_lines = single_line_comment[2] for i in single_line_comment[0]: output.single_line_comment.append(SingleLine(i[0], i[1])) return output
def pythonExtractor(file): """ Extract comments from Python file. :param file: File to scan :type file: string :return: Scan output :rtype: ScanOutput """ result = CommentSyntax() single_line_comment = result.hash(file) multiline_single_comment = result.singleQuotes(file) multiline_double_comment = result.doubleQuotes(file) cont_single_line_comment = contSingleLines(single_line_comment) file = file.split("/") output = ScanOutput() output.filename = file[-1] output.lang = "Python" output.total_lines = single_line_comment[1] output.total_lines_of_comments = ( single_line_comment[3] + multiline_single_comment[3] + multiline_double_comment[3]) output.blank_lines = single_line_comment[2] if cont_single_line_comment: single_line_comment = cont_single_line_comment[0] for i in single_line_comment[0]: output.single_line_comment.append(SingleLine(i[0], i[1])) for idx, _ in enumerate(cont_single_line_comment[1]): output.cont_single_line_comment.append( MultiLine( cont_single_line_comment[1][idx], cont_single_line_comment[2][idx], cont_single_line_comment[3][idx], ) ) try: for idx, _ in enumerate(multiline_single_comment[0]): output.multi_line_comment.append( MultiLine( multiline_single_comment[0][idx], multiline_single_comment[1][idx], multiline_single_comment[2][idx], ) ) except BaseException: pass try: for idx, _ in enumerate(multiline_double_comment[0]): output.multi_line_comment.append( MultiLine( multiline_double_comment[0][idx], multiline_double_comment[1][idx], multiline_double_comment[2][idx], ) ) except BaseException: pass return output