cppparser: Fix `volatile` keyword not being parsed in all places
This commit is contained in:
parent
6e81fb5cdf
commit
c1e494c083
|
|
@ -1832,6 +1832,19 @@ template_formal_parameter:
|
|||
$3->add_modifier(IIT_const);
|
||||
CPPInstance *inst = new CPPInstance($2, $3, 0, @3.file);
|
||||
$$ = inst;
|
||||
}
|
||||
| KW_VOLATILE template_formal_parameter_type formal_parameter_identifier template_parameter_maybe_initialize
|
||||
{
|
||||
$3->add_modifier(IIT_volatile);
|
||||
CPPInstance *inst = new CPPInstance($2, $3, 0, @3.file);
|
||||
inst->set_initializer($4);
|
||||
$$ = inst;
|
||||
}
|
||||
| KW_VOLATILE template_formal_parameter_type parameter_pack_identifier
|
||||
{
|
||||
$3->add_modifier(IIT_volatile);
|
||||
CPPInstance *inst = new CPPInstance($2, $3, 0, @3.file);
|
||||
$$ = inst;
|
||||
}
|
||||
;
|
||||
|
||||
|
|
@ -2183,50 +2196,29 @@ structure_init_body:
|
|||
;
|
||||
|
||||
function_parameter:
|
||||
optional_attributes type formal_parameter_identifier maybe_initialize
|
||||
{
|
||||
$3->add_attributes($1);
|
||||
$$ = new CPPInstance($2, $3, 0, @3.file);
|
||||
$$->set_initializer($4);
|
||||
}
|
||||
| optional_attributes KW_CONST type formal_parameter_identifier maybe_initialize
|
||||
optional_attributes storage_class type formal_parameter_identifier maybe_initialize
|
||||
{
|
||||
if ($2 & CPPInstance::SC_const) {
|
||||
$4->add_modifier(IIT_const);
|
||||
}
|
||||
if ($2 & CPPInstance::SC_volatile) {
|
||||
$4->add_modifier(IIT_volatile);
|
||||
}
|
||||
$4->add_attributes($1);
|
||||
$4->add_modifier(IIT_const);
|
||||
$$ = new CPPInstance($3, $4, 0, @4.file);
|
||||
$$->set_initializer($5);
|
||||
}
|
||||
| optional_attributes KW_CONST KW_REGISTER type formal_parameter_identifier maybe_initialize
|
||||
{
|
||||
$5->add_attributes($1);
|
||||
$5->add_modifier(IIT_const);
|
||||
$$ = new CPPInstance($4, $5, 0, @4.file);
|
||||
$$->set_initializer($6);
|
||||
}
|
||||
| optional_attributes type_pack parameter_pack_identifier maybe_initialize
|
||||
{
|
||||
$3->add_attributes($1);
|
||||
$$ = new CPPInstance($2, $3, 0, @3.file);
|
||||
$$->set_initializer($4);
|
||||
}
|
||||
| optional_attributes KW_CONST type_pack parameter_pack_identifier maybe_initialize
|
||||
| optional_attributes storage_class type_pack parameter_pack_identifier maybe_initialize
|
||||
{
|
||||
if ($2 & CPPInstance::SC_const) {
|
||||
$4->add_modifier(IIT_const);
|
||||
}
|
||||
if ($2 & CPPInstance::SC_volatile) {
|
||||
$4->add_modifier(IIT_volatile);
|
||||
}
|
||||
$4->add_attributes($1);
|
||||
$4->add_modifier(IIT_const);
|
||||
$$ = new CPPInstance($3, $4, 0, @4.file);
|
||||
$$->set_initializer($5);
|
||||
}
|
||||
| optional_attributes KW_CONST KW_REGISTER type_pack parameter_pack_identifier maybe_initialize
|
||||
{
|
||||
$5->add_attributes($1);
|
||||
$5->add_modifier(IIT_const);
|
||||
$$ = new CPPInstance($4, $5, 0, @4.file);
|
||||
$$->set_initializer($6);
|
||||
}
|
||||
| optional_attributes KW_REGISTER function_parameter
|
||||
{
|
||||
$$ = $3;
|
||||
$$->_attributes.add_attributes_from($1);
|
||||
}
|
||||
;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue