Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/parser.yy

    r59c7e3e r1e30df7  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Oct 14 14:04:43 2022
    13 // Update Count     : 5751
     12// Last Modified On : Sat Oct  8 08:21:18 2022
     13// Update Count     : 5709
    1414//
    1515
     
    305305%token TYPEDEF
    306306%token EXTERN STATIC AUTO REGISTER
    307 %token THREADLOCALGCC THREADLOCALC11                                    // GCC, C11
     307%token THREADLOCALGCC THREADLOCALC11                                            // GCC, C11
    308308%token INLINE FORTRAN                                                                   // C99, extension ISO/IEC 9899:1999 Section J.5.9(1)
    309309%token NORETURN                                                                                 // C11
     
    318318%token DECIMAL32 DECIMAL64 DECIMAL128                                   // GCC
    319319%token ZERO_T ONE_T                                                                             // CFA
    320 %token SIZEOF TYPEOF VA_LIST VA_ARG AUTO_TYPE                   // GCC
     320%token SIZEOF TYPEOF VALIST AUTO_TYPE                                   // GCC
    321321%token OFFSETOF BASETYPEOF TYPEID                                               // CFA
    322322%token ENUM STRUCT UNION
     
    409409// declarations
    410410%type<decl> abstract_declarator abstract_ptr abstract_array abstract_function array_dimension multi_array_dimension
    411 %type<decl> abstract_parameter_declarator_opt abstract_parameter_declarator abstract_parameter_ptr abstract_parameter_array abstract_parameter_function array_parameter_dimension array_parameter_1st_dimension
     411%type<decl> abstract_parameter_declarator abstract_parameter_ptr abstract_parameter_array abstract_parameter_function array_parameter_dimension array_parameter_1st_dimension
    412412%type<decl> abstract_parameter_declaration
    413413
     
    698698        primary_expression
    699699        | postfix_expression '[' assignment_expression ',' tuple_expression_list ']'
    700                 // Historic, transitional: Disallow commas in subscripts.
    701                 // Switching to this behaviour may help check if a C compatibilty case uses comma-exprs in subscripts.
    702                 // Current: Commas in subscripts make tuples.
     700                        // Historic, transitional: Disallow commas in subscripts.
     701                        // Switching to this behaviour may help check if a C compatibilty case uses comma-exprs in subscripts.
     702                        // Current: Commas in subscripts make tuples.
    703703                { $$ = new ExpressionNode( build_binary_val( OperKinds::Index, $1, new ExpressionNode( build_tuple( (ExpressionNode *)($3->set_last( $5 ) ) )) ) ); }
    704704        | postfix_expression '[' assignment_expression ']'
     
    720720        | postfix_expression '(' argument_expression_list_opt ')'
    721721                { $$ = new ExpressionNode( build_func( $1, $3 ) ); }
    722         | VA_ARG '(' primary_expression ',' declaration_specifier_nobody abstract_parameter_declarator_opt ')'
    723                 // { SemanticError( yylloc, "va_arg is currently unimplemented." ); $$ = nullptr; }
    724                 { $$ = new ExpressionNode( build_func( new ExpressionNode( build_varref( new string( "__builtin_va_arg") ) ),
    725                                                                                            (ExpressionNode *)($3->set_last( (ExpressionNode *)($6 ? $6->addType( $5 ) : $5) )) ) ); }
    726722        | postfix_expression '`' identifier                                     // CFA, postfix call
    727723                { $$ = new ExpressionNode( build_func( new ExpressionNode( build_varref( build_postfix_name( $3 ) ) ), $1 ) ); }
     
    21602156        | LONG
    21612157                { $$ = DeclarationNode::newLength( DeclarationNode::Long ); }
    2162         | VA_LIST                                                                                       // GCC, __builtin_va_list
     2158        | VALIST                                                                                        // GCC, __builtin_va_list
    21632159                { $$ = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
    21642160        | AUTO_TYPE
     
    26052601                { $$ = DeclarationNode::newEnumValueGeneric( $1, $2 ); }
    26062602        | INLINE type_name
    2607                 { $$ = DeclarationNode::newEnumValueGeneric( new string("inline"), nullptr ); }
     2603                { $$ = DeclarationNode::newEnumInLine( *$2->type->symbolic.name ); }
    26082604        | enumerator_list ',' identifier_or_type_name enumerator_value_opt
    26092605                { $$ = $1->appendList( DeclarationNode::newEnumValueGeneric( $3, $4 ) ); }
     
    36803676// functions.
    36813677
    3682 abstract_parameter_declarator_opt:
    3683         // empty
    3684                 { $$ = nullptr; }
    3685         | abstract_parameter_declarator
    3686         ;
    3687 
    36883678abstract_parameter_declarator:
    36893679        abstract_parameter_ptr
Note: See TracChangeset for help on using the changeset viewer.