clang-tidy parser and executor #26
|  | @ -67,22 +67,22 @@ func levelFromString(levelString string) Level { | |||
| } | ||||
| 
 | ||||
| func isIgnored(line string) bool { | ||||
| 	IGNORE_REGEX := regexp.MustCompile("^error:.*$") | ||||
| 	return IGNORE_REGEX.MatchString(line) | ||||
| 	ignore_Regex := regexp.MustCompile("^error:.*$") | ||||
| 	return ignore_Regex.MatchString(line) | ||||
| } | ||||
| 
 | ||||
| func parseMessage(line string) ClangMessage { | ||||
| 	MESSAGE_REGEX := regexp.MustCompile(`^(?P<filepath>.+):(?P<line>\d+):(?P<column>\d+): (?P<level>\S+): (?P<message>.*?)(?: \[(?P<diagnostic_name>.*)\])?\n$`) | ||||
| 	regex_res := MESSAGE_REGEX.FindStringSubmatch(line) | ||||
| 	if len(regex_res) == 0 { | ||||
| 	messageRegex := regexp.MustCompile(`^(?P<filepath>.+):(?P<line>\d+):(?P<column>\d+): (?P<level>\S+): (?P<message>.*?)(?: \[(?P<diagnostic_name>.*)\])?\n$`) | ||||
| 	regexRes := messageRegex.FindStringSubmatch(line) | ||||
| 	if len(regexRes) == 0 { | ||||
| 		return *newClangMessage("", 0, 0, UNKNOWN, "", "", nil, nil) | ||||
| 	} else { | ||||
| 		filepath := regex_res[1] | ||||
| 		line, _ := strconv.Atoi(regex_res[2]) | ||||
| 		column, _ := strconv.Atoi(regex_res[3]) | ||||
| 		level := levelFromString(regex_res[4]) | ||||
| 		message := regex_res[5] | ||||
| 		diagnostic_name := regex_res[6] | ||||
| 		filepath := regexRes[1] | ||||
| 		line, _ := strconv.Atoi(regexRes[2]) | ||||
| 		column, _ := strconv.Atoi(regexRes[3]) | ||||
| 		level := levelFromString(regexRes[4]) | ||||
| 		message := regexRes[5] | ||||
| 		diagnosticName := regexRes[6] | ||||
| 
 | ||||
| 		return ClangMessage{ | ||||
| 			filepath:       filepath, | ||||
|  | @ -90,7 +90,7 @@ func parseMessage(line string) ClangMessage { | |||
| 			column:         column, | ||||
| 			level:          level, | ||||
| 			message:        message, | ||||
| 			diagnosticName: diagnostic_name, | ||||
| 			diagnosticName: diagnosticName, | ||||
| 			detailsLines:   make([]string, 0), | ||||
| 			children:       make([]ClangMessage, 0), | ||||
| 		} | ||||
|  | @ -98,15 +98,15 @@ func parseMessage(line string) ClangMessage { | |||
| } | ||||
| 
 | ||||
| func groupMessages(messages []ClangMessage) []ClangMessage { | ||||
| 	grouped_messages := make([]ClangMessage, 0) | ||||
| 	groupedMessages := make([]ClangMessage, 0) | ||||
| 	for _, message := range messages { | ||||
| 		if message.level == NOTE { | ||||
| 			grouped_messages[len(grouped_messages)-1].children = append(grouped_messages[len(grouped_messages)-1].children, message) | ||||
| 			groupedMessages[len(groupedMessages)-1].children = append(groupedMessages[len(groupedMessages)-1].children, message) | ||||
| 		} else { | ||||
| 			grouped_messages = append(grouped_messages, message) | ||||
| 			groupedMessages = append(groupedMessages, message) | ||||
| 		} | ||||
| 	} | ||||
| 	return grouped_messages | ||||
| 	return groupedMessages | ||||
| } | ||||
| 
 | ||||
| func convertPathsToRelative(messages *[]ClangMessage, conf Conf) { | ||||
|  |  | |||
|  | @ -8,7 +8,7 @@ import ( | |||
| 
 | ||||
| type JsonMessage struct { | ||||
| 	Type        string                 `json:"type"` | ||||
| 	CheckName   string                 `json:"check_name"` | ||||
| 	CheckName   string                 `json:"checkname"` | ||||
| 	Description string                 `json:"description"` | ||||
| 	Content     map[string]interface{} `json:"content"` | ||||
| 	Categories  []string               `json:"categories"` | ||||
|  | @ -151,12 +151,12 @@ func extractLocation(message ClangMessage) map[string]interface{} { | |||
| } | ||||
| 
 | ||||
| func extractOtherLocations(message ClangMessage) []map[string]interface{} { | ||||
| 	location_list := []map[string]interface{}{} | ||||
| 	locationList := []map[string]interface{}{} | ||||
| 	for _, child := range message.children { | ||||
| 		location_list = append(location_list, extractLocation(child)) | ||||
| 		location_list = append(location_list, extractOtherLocations(child)...) | ||||
| 		locationList = append(locationList, extractLocation(child)) | ||||
| 		locationList = append(locationList, extractOtherLocations(child)...) | ||||
| 	} | ||||
| 	return location_list | ||||
| 	return locationList | ||||
| } | ||||
| 
 | ||||
| func extractTrace(message ClangMessage) map[string]interface{} { | ||||
|  |  | |||
|  | @ -15,10 +15,10 @@ func contains(arr []string, element string) bool { | |||
| 	return false | ||||
| } | ||||
| 
 | ||||
| func GetScore(json_messages []JsonMessage, conf Conf) int { | ||||
| func GetScore(jsonMessages []JsonMessage, conf Conf) int { | ||||
| 	fullmark := conf.Score | ||||
| 	for _, json_message := range json_messages { | ||||
| 		keyword := json_message.CheckName | ||||
| 	for _, jsonMessage := range jsonMessages { | ||||
| 		keyword := jsonMessage.CheckName | ||||
| 		for _, match := range conf.Matches { | ||||
| 			if contains(match.Keyword, keyword) { | ||||
| 				fullmark -= match.Score | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user