Find 'typedef's that do not define anything

// Decl [ DeclSpecs[*]::StorageClass [ @Spec = KTC_STORAGECLASS_TYPEDEF ] ] [ not Declarators[0]:: { AnyDeclarator / Declarator:: } NameDeclarator ]

/* These two 'typedef' definitions do not define anything */ typedef unsigned int; signed char typedef;

Usually these type definitions are either typographical or programming errors. Please note that 'typedef' is not a special keyword, but rather another declaration specifier and may be inserted at any point among other declaration specifiers. That is why it is important to look for 'typedef' at in any position within declaration specifiers, not at the beginning only (although that is where it is usually put).

To match any node in the sequence of nodes of the same generic type ('DeclSpec'' link in this case), use the '[*]' modifier as shown.