Add typedef/typealias to scopes
[ctf.git] / common-trace-format-proposal.txt
index aeb8b780d7c16e9ed2063791ebf7891f7dd4c49e..2a4dbfe25a40d8f206760054c80b196feaa4593b 100644 (file)
@@ -273,7 +273,7 @@ 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.
 
 If a numeric value is encountered between < >, it represents the integer type
 size used to hold the enumeration, in bits.
 
-enum <integer_type OR size> name {
+enum name <integer_type OR size> {
   string              = start_value1 ... end_value1,
   "other string"      = start_value2 ... end_value2,
   yet_another_string,  /* will be assigned to end_value2 + 1 */
   string              = start_value1 ... end_value1,
   "other string"      = start_value2 ... end_value2,
   yet_another_string,  /* will be assigned to end_value2 + 1 */
@@ -284,7 +284,7 @@ enum <integer_type OR size> name {
 If the values are omitted, the enumeration starts at 0 and increment of 1 for
 each entry:
 
 If the values are omitted, the enumeration starts at 0 and increment of 1 for
 each entry:
 
-enum <32> name {
+enum name <32> {
   ZERO,
   ONE,
   TWO,
   ZERO,
   ONE,
   TWO,
@@ -591,7 +591,7 @@ struct event_packet_context {
   uint8_t  stream_packet_count_bits;   /* Significant counter bits */
   uint8_t  compression_scheme;
   uint8_t  encryption_scheme;
   uint8_t  stream_packet_count_bits;   /* Significant counter bits */
   uint8_t  compression_scheme;
   uint8_t  encryption_scheme;
-  uint8_t  checksum;
+  uint8_t  checksum_scheme;
 };
 
 
 };
 
 
@@ -848,7 +848,7 @@ variant name {
   ...
 };
 
   ...
 };
 
-enum <integer_type or size> name {
+enum name <integer_type or size> {
   ...
 };
 
   ...
 };
 
@@ -1153,9 +1153,6 @@ unary-expression:
 unary-operator: one of
        + -
 
 unary-operator: one of
        + -
 
-assignment-expression:
-       unary-expression assignment-operator unary-expression
-
 assignment-operator:
        =
 
 assignment-operator:
        =
 
@@ -1168,11 +1165,11 @@ constant-expression-range:
 2.2) Declarations:
 
 declaration:
 2.2) Declarations:
 
 declaration:
-       declaration-specifiers declarator-list-opt ;
+       declaration-specifiers ;
+       declaration-specifiers storage-class-specifier declaration-specifiers declarator-list ;
        ctf-specifier ;
 
 declaration-specifiers:
        ctf-specifier ;
 
 declaration-specifiers:
-       storage-class-specifier declaration-specifiers-opt
        type-specifier declaration-specifiers-opt
        type-qualifier declaration-specifiers-opt
 
        type-specifier declaration-specifiers-opt
        type-qualifier declaration-specifiers-opt
 
@@ -1195,13 +1192,14 @@ type-specifier:
        unsigned
        _Bool
        _Complex
        unsigned
        _Bool
        _Complex
-       struct-or-variant-specifier
+       struct-specifier
+       variant-specifier
        enum-specifier
        typedef-name
        ctf-type-specifier
 
 struct-specifier:
        enum-specifier
        typedef-name
        ctf-type-specifier
 
 struct-specifier:
-       struct identifier-opt { struct-or-variant-declaration-list }
+       struct identifier-opt { struct-or-variant-declaration-list-opt }
        struct identifier
 
 struct-or-variant-declaration-list:
        struct identifier
 
 struct-or-variant-declaration-list:
@@ -1210,6 +1208,8 @@ struct-or-variant-declaration-list:
 
 struct-or-variant-declaration:
        specifier-qualifier-list struct-or-variant-declarator-list ;
 
 struct-or-variant-declaration:
        specifier-qualifier-list struct-or-variant-declarator-list ;
+       declaration-specifiers storage-class-specifier declaration-specifiers declarator-list ;
+       typealias declaration-specifiers declaration-specifiers declarator-list : declaration-specifiers declarator-list ;
 
 specifier-qualifier-list:
        type-specifier specifier-qualifier-list-opt
 
 specifier-qualifier-list:
        type-specifier specifier-qualifier-list-opt
@@ -1263,17 +1263,13 @@ direct-declarator:
        direct-declarator [ constant-expression ]
 
 pointer:
        direct-declarator [ constant-expression ]
 
 pointer:
-       type-qualifier-list-opt
-       type-qualifier-list-opt pointer
+       type-qualifier-list-opt
+       type-qualifier-list-opt pointer
 
 type-qualifier-list:
        type-qualifier
        type-qualifier-list type-qualifier
 
 
 type-qualifier-list:
        type-qualifier
        type-qualifier-list type-qualifier
 
-identifier-list:
-       identifier
-       identifier-list , identifier
-
 typedef-name:
        identifier
 
 typedef-name:
        identifier
 
@@ -1283,6 +1279,7 @@ ctf-specifier:
        event { ctf-assignment-expression-list-opt }
        stream { ctf-assignment-expression-list-opt }
        trace { ctf-assignment-expression-list-opt }
        event { ctf-assignment-expression-list-opt }
        stream { ctf-assignment-expression-list-opt }
        trace { ctf-assignment-expression-list-opt }
+       typealias declaration-specifiers declaration-specifiers declarator-list : declaration-specifiers declarator-list ;
 
 ctf-type-specifier:
        floating_point { ctf-assignment-expression-list-opt }
 
 ctf-type-specifier:
        floating_point { ctf-assignment-expression-list-opt }
@@ -1296,3 +1293,5 @@ ctf-assignment-expression-list:
 ctf-assignment-expression:
        unary-expression assignment-operator unary-expression
        unary-expression type-assignment-operator type-specifier
 ctf-assignment-expression:
        unary-expression assignment-operator unary-expression
        unary-expression type-assignment-operator type-specifier
+       declaration-specifiers storage-class-specifier declaration-specifiers declarator-list
+       typealias declaration-specifiers declaration-specifiers declarator-list : declaration-specifiers declarator-list
This page took 0.033085 seconds and 4 git commands to generate.