clang-tidy parser and executor #26

Merged
张泊明518370910136 merged 26 commits from clang-tidy into master 2024-05-18 02:50:13 +08:00
3 changed files with 24 additions and 24 deletions
Showing only changes of commit d04f83e9fc - Show all commits

View File

@ -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) {

View File

@ -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{} {

View File

@ -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