c_types

base_type:=
csyntax | "char"C character
| "tiny"
| "short"
| "int"
| "long"
| "vlong"
| "utiny"
| "uchar"
| "ushort"
| "uint"
| "ulong"
| "uvlong"
| "float"
| "double"
| "ldouble"
| struct NAME
| union NAME
| class NAME
| enum NAME

Support for basic C types.

Although matching only Felix names for these types, you can actually use the C type name, for example long long with be translated by the lexer to ulong.

pointer_type:=
csyntax | base_type
| "void" *
| pointer_type *

Note that pointers to const are not supported.

c_type:=
csyntax | pointer_type
| c_type ( * ) ( c_type_list )

Note that function pointer types are C function pointers A-->B.

c_type_suffix:=
csyntax | comma c_type
c_type_list:=
csyntax | c_type c_type_suffix+
| c_type
| epsilon