##// END OF EJS Templates
Ajout de clangformat
Ajout de clangformat

File last commit:

r2:451739a45362
r4:e36aaa65e079
Show More
IPSIS_F13.tcl
73 lines | 3.0 KiB | application/x-tcl | TclLexer
Ajout de vera++
r2 #!/usr/bin/tclsh
# namespace names should be recalled at the end of the namespace
# namespace mynamespace {
# } // mynamespace
proc createNamespaceDict {} {
return [dict create state "waitingForIdentifier" identifier "" bracesCounter 0]
}
foreach fileName [getSourceFileNames] {
set namespaces [list]
foreach token [getTokens $fileName 1 0 -1 -1 {namespace identifier leftbrace rightbrace semicolon cppcomment}] {
set type [lindex $token 3]
set namespacesToKeep [list]
foreach n $namespaces {
set keepNamespace 1
dict with n {
if {$state == "waitingForIdentifier" && $type == "identifier"} {
set state "waitingForLeftBrace"
set identifier [lindex $token 0]
} elseif {$state == "waitingForLeftBrace"} {
if {$type == "semicolon"} {
# Wasn't a namespace, remove the dict
set keepNamespace 0
} elseif {$type == "leftbrace"} {
set bracesCounter 0
set state "waitingForRightBrace"
}
} elseif {$state == "waitingForRightBrace"} {
if {$type == "leftbrace"} {
incr bracesCounter
} elseif {$type == "rightbrace"} {
if {$bracesCounter > 0} {
incr bracesCounter -1
} else {
set state "waitingForComment"
}
}
} elseif {$state == "waitingForComment"} {
if {$type == "cppcomment"} {
set commentValue [lindex $token 0]
# Check that the comment report the namespace name
if {![regexp "\\m$identifier\\M" $commentValue]} {
set line [lindex $token 1]
set commentValue [string trim $commentValue]
report $fileName $line "The namespace $identifier should have been recalled in the comment here (// $identifier). Comment found: $commentValue"
}
} else {
# There should have been a comment here
set line [lindex $token 1]
report $fileName $line "The namespace $identifier should have been recalled in a comment here (// $identifier)"
}
# Namespace processed, remove it from the list
set keepNamespace 0
}
}
if {$keepNamespace} {
lappend namespacesToKeep $n
}
}
set namespaces $namespacesToKeep
# If the token is a namespace keyword, add a namespace dict for the next
# foreach
if {$type == "namespace"} {
lappend namespaces [createNamespaceDict]
}
}
}