The debugger understands the full C type specification grammar.
| struct-union-enum-type-specifier
| type-qualifier-list basic-type-name
| basic-type-specifier type-qualifier
| basic-type-specifier basic-type-name
| type-qualifier-list type-qualifier
: CONST
| VOLATILE
| LE
| _le
| _be
: VOID
| CHAR
| SHORT
| INT
| LONG
| FLOAT
| DOUBLE
| SIGNED
| UNSIGNED
: rescoped_typedef
| type_name
struct-union-enum-type-specifier
| type-qualifier-list elaborated-type-name
| struct-union-enum-type-specifier type-qualifier
| type-qualifier-list TYPEDEFname
| typedef-type-specifier type-qualifier
: struct-or-union opt-parenthesized-identifier-or-typedef-name
opt-parenthesized-identifier-or-typedef-name
| LPAREN opt-parenthesized-identifier-or-typedef-name RPAREN
: STRUCT
| UNION
: ENUM identifier-or-typedef-name
| type-specifier abstract-declarator
| type-qualifier-list // Implicit "int"
| type-qualifier-list abstract-declarator // Implicit "int"
| type-name COMMA type-name-list
| postfixing-abstract-declarator
postfixing-abstract-declarator
: BRACKETS
| LBRACKET constant-expression RBRACKET
| array-abstract-declarator LBRACKET constant-expression RBRACKET
: STAR
| STAR type-qualifier-list abstract-declarator
: LPAREN unary-abstract-declarator RPAREN
| LPAREN postfix-abstract-declarator RPAREN
| LPAREN postfixing-abstract-declarator RPAREN
| LPAREN unary-abstract-declarator RPAREN postfixing-abstract-declarator