mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
100 lines
1.7 KiB
Tcl
Executable File
100 lines
1.7 KiB
Tcl
Executable File
#!/usr/bin/tclsh
|
|
# Reserved names should not be used for preprocessor macros
|
|
|
|
set keywords {
|
|
asm
|
|
auto
|
|
bool
|
|
break
|
|
case
|
|
catch
|
|
char
|
|
class
|
|
const
|
|
const_cast
|
|
continue
|
|
default
|
|
delete
|
|
goto
|
|
do
|
|
double
|
|
dynamic_cast
|
|
else
|
|
enum
|
|
explicit
|
|
export
|
|
extern
|
|
false
|
|
float
|
|
for
|
|
friend
|
|
if
|
|
inline
|
|
int
|
|
long
|
|
mutable
|
|
namespace
|
|
new
|
|
operator
|
|
private
|
|
protected
|
|
public
|
|
register
|
|
reinterpret_cast
|
|
return
|
|
short
|
|
signed
|
|
sizeof
|
|
static
|
|
static_cast
|
|
struct
|
|
switch
|
|
template
|
|
this
|
|
throw
|
|
true
|
|
try
|
|
typedef
|
|
typeid
|
|
typename
|
|
union
|
|
unsigned
|
|
using
|
|
virtual
|
|
void
|
|
volatile
|
|
wchar_t
|
|
while
|
|
|
|
and
|
|
and_eq
|
|
bitand
|
|
bitor
|
|
compl
|
|
not
|
|
not_eq
|
|
or
|
|
or_eq
|
|
xor
|
|
xor_eq
|
|
}
|
|
|
|
foreach f [getSourceFileNames] {
|
|
foreach t [getTokens $f 1 0 -1 -1 {pp_define}] {
|
|
set lineNumber [lindex $t 1]
|
|
|
|
set line [getLine $f $lineNumber]
|
|
set rest [string trimleft [string range $line \
|
|
[expr [lindex $t 2] + [string length [lindex $t 0]]] end]]
|
|
set macroName [string range $rest 0 [expr [string wordend $rest 0] - 1]]
|
|
|
|
if {([regexp {^_} $macroName] && [string is upper -strict [string index $macroName 1]]) ||
|
|
[string first "__" $macroName] != -1} {
|
|
report $f $lineNumber "reserved name used for macro (incorrect use of underscore)"
|
|
}
|
|
if {[lsearch $keywords $macroName] != -1} {
|
|
report $f $lineNumber "reserved name used for macro (keyword or alternative token redefined)"
|
|
}
|
|
}
|
|
}
|