summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
f420828)
This will allow us to change the enum container specifier from <type> to
: type, as c++0x does.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
size = 32;
signed = false;
align = 32;
size = 32;
signed = false;
align = 32;
Definition of a named 5-bit signed bitfield:
Definition of a named 5-bit signed bitfield:
size = 5;
signed = true;
align = 1;
size = 5;
signed = true;
align = 1;
exp_dig = 8; /* sizeof(float) * CHAR_BIT - FLT_MANT_DIG */
mant_dig = 24; /* FLT_MANT_DIG */
byte_order = native;
exp_dig = 8; /* sizeof(float) * CHAR_BIT - FLT_MANT_DIG */
mant_dig = 24; /* FLT_MANT_DIG */
byte_order = native;
TODO: define NaN, +inf, -inf behavior.
TODO: define NaN, +inf, -inf behavior.
typealias string {
encoding = UTF8 OR ASCII;
typealias string {
encoding = UTF8 OR ASCII;
A nameless string type can be declared as a field type:
A nameless string type can be declared as a field type:
* Type declarations behave similarly to the C standard.
*/
* Type declarations behave similarly to the C standard.
*/
-typedef aliased_type_prefix aliased_type new_type aliased_type_postfix;
+typedef aliased_type_specifiers new_type_declarators;
/* e.g.: typedef struct example new_type_name[10]; */
/* e.g.: typedef struct example new_type_name[10]; */
* typealias
*
* The "typealias" declaration can be used to give a name (including
* typealias
*
* The "typealias" declaration can be used to give a name (including
- * prefix/postfix) to a type. It should also be used to map basic C types
- * (float, int, unsigned long, ...) to a CTF type. Typealias is a superset of
- * "typedef": it also allows assignment of a simple variable identifier to a
- * type.
+ * pointer declarator specifier) to a type. It should also be used to
+ * map basic C types (float, int, unsigned long, ...) to a CTF type.
+ * Typealias is a superset of "typedef": it also allows assignment of a
+ * simple variable identifier to a type. The keyword "typename" is
+ * reserved to separate the aliased type from the newly declared alias
+ * name.
*/
typealias type_class {
...
*/
typealias type_class {
...
-} : new_type_prefix new_type new_type_postfix;
+} typename type_specifiers type_declarator;
* size = 32;
* align = 32;
* signed = false;
* size = 32;
* align = 32;
* signed = false;
+ * } typename struct page *;
*
* typealias integer {
* size = 32;
* align = 32;
* signed = true;
*
* typealias integer {
* size = 32;
* align = 32;
* signed = true;
struct-or-variant-declaration:
specifier-qualifier-list struct-or-variant-declarator-list ;
declaration-specifiers storage-class-specifier declaration-specifiers 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 abstract-declarator-list : declaration-specifiers abstract-declarator-list ;
- typealias declaration-specifiers abstract-declarator-list : declarator-list ;
+ typealias declaration-specifiers abstract-declarator-list typename declaration-specifiers abstract-declarator-list ;
+ typealias declaration-specifiers abstract-declarator-list typename declarator-list ;
specifier-qualifier-list:
type-specifier specifier-qualifier-list-opt
specifier-qualifier-list:
type-specifier specifier-qualifier-list-opt
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 abstract-declarator-list : declaration-specifiers abstract-declarator-list ;
- typealias declaration-specifiers abstract-declarator-list : declarator-list ;
+ typealias declaration-specifiers abstract-declarator-list typename declaration-specifiers abstract-declarator-list ;
+ typealias declaration-specifiers abstract-declarator-list typename declarator-list ;
ctf-type-specifier:
floating_point { ctf-assignment-expression-list-opt }
ctf-type-specifier:
floating_point { ctf-assignment-expression-list-opt }
unary-expression assignment-operator unary-expression
unary-expression type-assignment-operator type-specifier
declaration-specifiers storage-class-specifier declaration-specifiers declarator-list
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 abstract-declarator-list : declaration-specifiers abstract-declarator-list
- typealias declaration-specifiers abstract-declarator-list : declarator-list
+ typealias declaration-specifiers abstract-declarator-list typename declaration-specifiers abstract-declarator-list
+ typealias declaration-specifiers abstract-declarator-list typename declarator-list