mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
52 lines
1.7 KiB
Tcl
Executable File
52 lines
1.7 KiB
Tcl
Executable File
#!/usr/bin/tclsh
|
|
# Curly brackets from the same pair should be either in the same line or in the same column
|
|
|
|
proc acceptPairs {} {
|
|
global file parens index end
|
|
|
|
while {$index != $end} {
|
|
set nextToken [lindex $parens $index]
|
|
set tokenValue [lindex $nextToken 0]
|
|
|
|
if {$tokenValue == "\{"} {
|
|
incr index
|
|
set leftParenLine [lindex $nextToken 1]
|
|
set leftParenColumn [lindex $nextToken 2]
|
|
|
|
acceptPairs
|
|
|
|
if {$index == $end} {
|
|
report $file $leftParenLine "opening curly bracket is not closed"
|
|
return
|
|
}
|
|
|
|
set nextToken [lindex $parens $index]
|
|
incr index
|
|
set tokenValue [lindex $nextToken 0]
|
|
set rightParenLine [lindex $nextToken 1]
|
|
set rightParenColumn [lindex $nextToken 2]
|
|
|
|
if {($leftParenLine != $rightParenLine) && ($leftParenColumn != $rightParenColumn)} {
|
|
# make an exception for line continuation
|
|
set leftLine [getLine $file $leftParenLine]
|
|
set rightLine [getLine $file $rightParenLine]
|
|
if {[string index $leftLine end] != "\\" && [string index $rightLine end] != "\\"} {
|
|
report $file $rightParenLine "closing curly bracket not in the same line or column"
|
|
}
|
|
}
|
|
} else {
|
|
return
|
|
}
|
|
}
|
|
}
|
|
|
|
foreach file [getSourceFileNames] {
|
|
set parens [getTokens $file 1 0 -1 -1 {leftbrace rightbrace}]
|
|
set index 0
|
|
set end [llength $parens]
|
|
acceptPairs
|
|
if {$index != $end} {
|
|
report $file [lindex [lindex $parens $index] 1] "excessive closing bracket?"
|
|
}
|
|
}
|