Next: Symbol aliases, Up: Controlling Symbol Types [Contents][Index]
Generally speaking, the syntactic class of a symbol defines where in the C code this symbol can legitimately appear. There are following classes:
declarationThis keyword starts a declaration of its own. It is followed by an opening parenthesis, arbitrary list of expressions, closing parenthesis and optional semicolon.
The declaration class is designed for use with such entities as
C11 _Static_assert keyword.
identifierA C identifier.
keywordkwA keyword, like ‘if’, ‘when’ etc.
modifierType modifier, i.e. the symbol appearing after a data type to modify its meaning, like ‘*’.
qualifierDeclaration qualifier. Can appear both before C declaration (much like ‘static’ or ‘extern’) and after a data type (like modifiers).
You would usually declare a gcc keyword ‘__extension__’
as a qualifier:
--symbol __extension__:qualifier
typeA C data type, like ‘int’, ‘char’, etc.
wrapper ¶That has two meanings. First, it can be used to declare parameter
wrappers when running cflow without preprocessor. This
usage was described above. Second, it indicates any symbol that
can appear in a declaration either before an identifier or before
a terminating semicolon and optionally followed by a parenthesized
expression list.
We recommended to use this class for the gcc
‘__attribute__’ keyword.