python面试题--去除C++源文件里的注释

import sys

bhasCCommentBegin = False

# @brief: Handle Comment of Cpp Language
#  The comment of cpp style will be delete if exist lines[i]
def HandleCPlusPlusComment(lines,i):
	index = lines[i].find("//")
	if index !=-1:
		lines[i]=lines[i][0:index]
		lines[i]+="\r\n"
		
# @brief: Handle Comment of C Language
# @ret -1:the Line is Comment Line,should delete this line
# @ret -2:Only begin Comment found in this Line
# @ret  0:Not find CComment 
def HandleCComment(lines,i):
	global bhasCCommentBegin
	while True:
		if not bhasCCommentBegin:
			index = lines[i].find("/*")
			if index != -1:
				bhasCCommentBegin = True
				index2 = lines[i].find("*/",index+2)
				if index2 != -1:
					lines[i]=lines[i][0:index]+lines[i][index2+2:]
					bhasCCommentBegin = False #continue look for comment
				else:
					lines[i]=lines[i][0:index]  # only find "begin comment
					lines[i]+="\r\n"
					return -2
			else:
				return 0 #not find
		else:
			index2=lines[i].find("*/")
			if index2 !=-1:
				bhasCCommentBegin = False
				lines[i]=lines[i][index2+2:] #continue look for comment
			else:
				return -1 #should delete this


# @brief: Remove Comment  of file
# Check if there are C style comment firstly,and then check cpp style comment
# At last  print the result handled
def RemoveComment(file):
	global bhasCCommentBegin
	f = open(file,"r")
	lines = f.readlines()
	f.close()
	length =len(lines)
	i=0
	while i



你可能感兴趣的:(Python)