mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-29 16:20:11 -04:00
cppparser: Support __restrict
and __restrict__
keywords
To compile C code, you can do `-Drestrict=__restrict`
This commit is contained in:
parent
e16cb8af98
commit
6e81fb5cdf
@ -333,6 +333,7 @@ pop_struct() {
|
||||
%token KW_PUBLIC
|
||||
%token KW_REGISTER
|
||||
%token KW_REINTERPRET_CAST
|
||||
%token KW_RESTRICT
|
||||
%token KW_RETURN
|
||||
%token KW_SHORT
|
||||
%token KW_SIGNED
|
||||
@ -2265,6 +2266,11 @@ not_paren_formal_parameter_identifier:
|
||||
{
|
||||
$$ = $2;
|
||||
$$->add_modifier(IIT_volatile);
|
||||
}
|
||||
| KW_RESTRICT not_paren_formal_parameter_identifier %prec UNARY
|
||||
{
|
||||
$$ = $2;
|
||||
$$->add_modifier(IIT_restrict);
|
||||
}
|
||||
| '*' optional_attributes not_paren_formal_parameter_identifier %prec UNARY
|
||||
{
|
||||
@ -2311,6 +2317,11 @@ formal_parameter_identifier:
|
||||
{
|
||||
$$ = $2;
|
||||
$$->add_modifier(IIT_volatile);
|
||||
}
|
||||
| KW_RESTRICT formal_parameter_identifier %prec UNARY
|
||||
{
|
||||
$$ = $2;
|
||||
$$->add_modifier(IIT_restrict);
|
||||
}
|
||||
| '*' optional_attributes formal_parameter_identifier %prec UNARY
|
||||
{
|
||||
@ -2370,6 +2381,11 @@ parameter_pack_identifier:
|
||||
{
|
||||
$$ = $2;
|
||||
$$->add_modifier(IIT_volatile);
|
||||
}
|
||||
| KW_RESTRICT parameter_pack_identifier %prec UNARY
|
||||
{
|
||||
$$ = $2;
|
||||
$$->add_modifier(IIT_restrict);
|
||||
}
|
||||
| '*' optional_attributes parameter_pack_identifier %prec UNARY
|
||||
{
|
||||
@ -2433,6 +2449,11 @@ not_paren_empty_instance_identifier:
|
||||
{
|
||||
$$ = $2;
|
||||
$$->add_modifier(IIT_volatile);
|
||||
}
|
||||
| KW_RESTRICT not_paren_empty_instance_identifier %prec UNARY
|
||||
{
|
||||
$$ = $2;
|
||||
$$->add_modifier(IIT_restrict);
|
||||
}
|
||||
| '*' optional_attributes not_paren_empty_instance_identifier %prec UNARY
|
||||
{
|
||||
@ -2485,6 +2506,11 @@ empty_instance_identifier:
|
||||
{
|
||||
$$ = $2;
|
||||
$$->add_modifier(IIT_volatile);
|
||||
}
|
||||
| KW_RESTRICT empty_instance_identifier %prec UNARY
|
||||
{
|
||||
$$ = $2;
|
||||
$$->add_modifier(IIT_restrict);
|
||||
}
|
||||
| '*' optional_attributes not_paren_empty_instance_identifier %prec UNARY
|
||||
{
|
||||
@ -3318,7 +3344,7 @@ element:
|
||||
| KW_NAMESPACE | KW_NEW | KW_NOEXCEPT | KW_NOEXCEPT_LPAREN | KW_NULLPTR
|
||||
| KW_OPERATOR | KW_OVERRIDE | KW_PRIVATE | KW_PROTECTED
|
||||
| KW_PUBLIC | KW_PUBLISHED | KW_REGISTER | KW_REINTERPRET_CAST
|
||||
| KW_RETURN | KW_SHORT | KW_SIGNED | KW_SIZEOF | KW_STATIC
|
||||
| KW_RESTRICT | KW_RETURN | KW_SHORT | KW_SIGNED | KW_SIZEOF | KW_STATIC
|
||||
| KW_STATIC_ASSERT | KW_STATIC_CAST | KW_STRUCT | KW_TEMPLATE
|
||||
| KW_THREAD_LOCAL | KW_THROW | KW_TRUE | KW_TRY | KW_TYPEDEF
|
||||
| KW_TYPEID | KW_TYPENAME | KW_UNDERLYING_TYPE | KW_UNION
|
||||
|
@ -302,6 +302,7 @@ r_unroll_type(CPPType *start_type,
|
||||
break;
|
||||
|
||||
case IIT_volatile:
|
||||
case IIT_restrict:
|
||||
// Just pass it through for now.
|
||||
result = r_unroll_type(start_type, mi);
|
||||
break;
|
||||
|
@ -35,6 +35,7 @@ enum CPPInstanceIdentifierType {
|
||||
IIT_array,
|
||||
IIT_const,
|
||||
IIT_volatile,
|
||||
IIT_restrict,
|
||||
IIT_paren,
|
||||
IIT_func,
|
||||
IIT_initializer,
|
||||
|
@ -2816,6 +2816,9 @@ check_keyword(const string &name) {
|
||||
if (name == "public") return KW_PUBLIC;
|
||||
if (name == "register") return KW_REGISTER;
|
||||
if (name == "reinterpret_cast") return KW_REINTERPRET_CAST;
|
||||
//if (name == "restrict") return KW_RESTRICT;
|
||||
if (name == "__restrict") return KW_RESTRICT;
|
||||
if (name == "__restrict__") return KW_RESTRICT;
|
||||
if (name == "return") return KW_RETURN;
|
||||
if (name == "short") return KW_SHORT;
|
||||
if (name == "signed") return KW_SIGNED;
|
||||
|
@ -567,6 +567,10 @@ output(std::ostream &out) const {
|
||||
out << "KW_REINTERPRET_CAST";
|
||||
break;
|
||||
|
||||
case KW_RESTRICT:
|
||||
out << "KW_RESTRICT";
|
||||
break;
|
||||
|
||||
case KW_RETURN:
|
||||
out << "KW_RETURN";
|
||||
break;
|
||||
@ -1227,6 +1231,10 @@ output_code(std::ostream &out) const {
|
||||
out << "reinterpret_cast";
|
||||
break;
|
||||
|
||||
case KW_RESTRICT:
|
||||
out << "__restrict";
|
||||
break;
|
||||
|
||||
case KW_RETURN:
|
||||
out << "return";
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user