is in fact a range of size 1. This single-value range is supported without
repeating the start and end values with the value = string declaration.
-If a numeric value is encountered between < >, it represents the integer type
-size used to hold the enumeration, in bits.
-
-enum name <integer_type OR size> {
+enum name <integer_type> {
somestring = start_value1 ... end_value1,
"other string" = start_value2 ... end_value2,
yet_another_string, /* will be assigned to end_value2 + 1 */
If the values are omitted, the enumeration starts at 0 and increment of 1 for
each entry:
-enum name <32> {
+enum name <unsigned int> {
ZERO,
ONE,
TWO,
};
struct {
- enum <integer_type or size> { sel1, sel2, sel3, ... } tag_field;
+ enum <integer_type> { sel1, sel2, sel3, ... } tag_field;
...
variant name <tag_field> v;
}
metadata:
struct {
- enum <integer_type or size> { sel1, sel2, sel3, ... } tag_field;
+ enum <integer_type> { sel1, sel2, sel3, ... } tag_field;
...
variant <tag_field> {
field_type sel1;
...
};
-enum name <integer_type or size> {
+enum name <integer_type> {
...
};
...
}
-enum <integer_type or size> {
+enum <integer_type> {
...
}
enum identifier-opt < declaration-specifiers > { enumerator-list }
enum identifier-opt < declaration-specifiers > { enumerator-list , }
enum identifier < declaration-specifiers >
- enum identifier-opt < integer-constant > { enumerator-list }
- enum identifier-opt < integer-constant > { enumerator-list , }
- enum identifier < integer-constant >
enumerator-list:
enumerator