Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
$$->u._enum.has_body = 1;
_cds_list_splice_tail(&($2)->tmp_head, &($$)->u._enum.enumerator_list);
}
$$->u._enum.has_body = 1;
_cds_list_splice_tail(&($2)->tmp_head, &($$)->u._enum.enumerator_list);
}
- | LT declaration_specifiers_or_integer_constant GT LBRAC enumerator_list RBRAC
+ | LT declaration_specifiers GT LBRAC enumerator_list RBRAC
{
$$ = make_node(scanner, NODE_ENUM);
$$->u._enum.has_body = 1;
{
$$ = make_node(scanner, NODE_ENUM);
$$->u._enum.has_body = 1;
$$->u._enum.enum_id = $1->s;
_cds_list_splice_tail(&($3)->tmp_head, &($$)->u._enum.enumerator_list);
}
$$->u._enum.enum_id = $1->s;
_cds_list_splice_tail(&($3)->tmp_head, &($$)->u._enum.enumerator_list);
}
- | IDENTIFIER LT declaration_specifiers_or_integer_constant GT LBRAC enumerator_list RBRAC
+ | IDENTIFIER LT declaration_specifiers GT LBRAC enumerator_list RBRAC
{
$$ = make_node(scanner, NODE_ENUM);
$$->u._enum.has_body = 1;
{
$$ = make_node(scanner, NODE_ENUM);
$$->u._enum.has_body = 1;
$$->u._enum.enum_id = $1->s;
_cds_list_splice_tail(&($3)->tmp_head, &($$)->u._enum.enumerator_list);
}
$$->u._enum.enum_id = $1->s;
_cds_list_splice_tail(&($3)->tmp_head, &($$)->u._enum.enumerator_list);
}
- | ID_TYPE LT declaration_specifiers_or_integer_constant GT LBRAC enumerator_list RBRAC
+ | ID_TYPE LT declaration_specifiers GT LBRAC enumerator_list RBRAC
{
$$ = make_node(scanner, NODE_ENUM);
$$->u._enum.has_body = 1;
{
$$ = make_node(scanner, NODE_ENUM);
$$->u._enum.has_body = 1;
$$->u._enum.has_body = 1;
_cds_list_splice_tail(&($2)->tmp_head, &($$)->u._enum.enumerator_list);
}
$$->u._enum.has_body = 1;
_cds_list_splice_tail(&($2)->tmp_head, &($$)->u._enum.enumerator_list);
}
- | LT declaration_specifiers_or_integer_constant GT LBRAC enumerator_list COMMA RBRAC
+ | LT declaration_specifiers GT LBRAC enumerator_list COMMA RBRAC
{
$$ = make_node(scanner, NODE_ENUM);
$$->u._enum.has_body = 1;
{
$$ = make_node(scanner, NODE_ENUM);
$$->u._enum.has_body = 1;
$$->u._enum.enum_id = $1->s;
_cds_list_splice_tail(&($3)->tmp_head, &($$)->u._enum.enumerator_list);
}
$$->u._enum.enum_id = $1->s;
_cds_list_splice_tail(&($3)->tmp_head, &($$)->u._enum.enumerator_list);
}
- | IDENTIFIER LT declaration_specifiers_or_integer_constant GT LBRAC enumerator_list COMMA RBRAC
+ | IDENTIFIER LT declaration_specifiers GT LBRAC enumerator_list COMMA RBRAC
{
$$ = make_node(scanner, NODE_ENUM);
$$->u._enum.has_body = 1;
{
$$ = make_node(scanner, NODE_ENUM);
$$->u._enum.has_body = 1;
$$->u._enum.has_body = 0;
$$->u._enum.enum_id = $1->s;
}
$$->u._enum.has_body = 0;
$$->u._enum.enum_id = $1->s;
}
- | IDENTIFIER LT declaration_specifiers_or_integer_constant GT
+ | IDENTIFIER LT declaration_specifiers GT
{
$$ = make_node(scanner, NODE_ENUM);
$$->u._enum.has_body = 0;
{
$$ = make_node(scanner, NODE_ENUM);
$$->u._enum.has_body = 0;
$$->u._enum.enum_id = $1->s;
_cds_list_splice_tail(&($3)->tmp_head, &($$)->u._enum.enumerator_list);
}
$$->u._enum.enum_id = $1->s;
_cds_list_splice_tail(&($3)->tmp_head, &($$)->u._enum.enumerator_list);
}
- | ID_TYPE LT declaration_specifiers_or_integer_constant GT LBRAC enumerator_list COMMA RBRAC
+ | ID_TYPE LT declaration_specifiers GT LBRAC enumerator_list COMMA RBRAC
{
$$ = make_node(scanner, NODE_ENUM);
$$->u._enum.has_body = 1;
{
$$ = make_node(scanner, NODE_ENUM);
$$->u._enum.has_body = 1;
$$->u._enum.has_body = 0;
$$->u._enum.enum_id = $1->s;
}
$$->u._enum.has_body = 0;
$$->u._enum.enum_id = $1->s;
}
- | ID_TYPE LT declaration_specifiers_or_integer_constant GT
+ | ID_TYPE LT declaration_specifiers GT
{
$$ = make_node(scanner, NODE_ENUM);
$$->u._enum.has_body = 0;
{
$$ = make_node(scanner, NODE_ENUM);
$$->u._enum.has_body = 0;
/* Right child of a ctf expression can be any type of unary exp. */
break; /* OK */
case NODE_TYPE_DECLARATOR:
/* Right child of a ctf expression can be any type of unary exp. */
break; /* OK */
case NODE_TYPE_DECLARATOR:
- * We are the length of a type declarator or the size of an enum
- * container. We can only be a numeric constant.
+ * We are the length of a type declarator.
*/
switch (node->u.unary_expression.type) {
case UNARY_SIGNED_CONSTANT:
*/
switch (node->u.unary_expression.type) {
case UNARY_SIGNED_CONSTANT:
case NODE_FLOATING_POINT:
case NODE_INTEGER:
case NODE_STRING:
case NODE_FLOATING_POINT:
case NODE_INTEGER:
case NODE_STRING:
case NODE_STRUCT_OR_VARIANT_DECLARATION:
case NODE_VARIANT:
case NODE_STRUCT:
case NODE_STRUCT_OR_VARIANT_DECLARATION:
case NODE_VARIANT:
case NODE_STRUCT: