Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/parser.yy

    rb66d14a ra025ea8  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Jan 11 21:32:10 2021
    13 // Update Count     : 4633
     12// Last Modified On : Sat Oct 24 08:21:14 2020
     13// Update Count     : 4624
    1414//
    1515
     
    329329%type<en> conditional_expression                constant_expression                     assignment_expression           assignment_expression_opt
    330330%type<en> comma_expression                              comma_expression_opt
    331 %type<en> argument_expression_list_opt  argument_expression                     default_initializer_opt
     331%type<en> argument_expression_list_opt  argument_expression                     default_initialize_opt
    332332%type<ifctl> if_control_expression
    333333%type<fctl> for_control_expression              for_control_expression_list
     
    424424%type<decl> sue_declaration_specifier sue_declaration_specifier_nobody sue_type_specifier sue_type_specifier_nobody
    425425
    426 %type<tclass> type_class new_type_class
     426%type<tclass> type_class
    427427%type<decl> type_declarator type_declarator_name type_declaring_list
    428428
     
    15451545        | cfa_function_declaration
    15461546        | type_declaring_list
    1547                 { SemanticError( yylloc, "otype declaration is currently unimplemented." ); $$ = nullptr; }
    15481547        | trait_specifier
    15491548        ;
     
    22242223        ;
    22252224
    2226 cfa_parameter_ellipsis_list_opt:                                                // CFA, abstract + real
     2225cfa_parameter_ellipsis_list_opt:                                                        // CFA, abstract + real
    22272226        // empty
    22282227                { $$ = DeclarationNode::newBasicType( DeclarationNode::Void ); }
     
    22812280cfa_parameter_declaration:                                                              // CFA, new & old style parameter declaration
    22822281        parameter_declaration
    2283         | cfa_identifier_parameter_declarator_no_tuple identifier_or_type_name default_initializer_opt
     2282        | cfa_identifier_parameter_declarator_no_tuple identifier_or_type_name default_initialize_opt
    22842283                { $$ = $1->addName( $2 ); }
    2285         | cfa_abstract_tuple identifier_or_type_name default_initializer_opt
     2284        | cfa_abstract_tuple identifier_or_type_name default_initialize_opt
    22862285                // To obtain LR(1), these rules must be duplicated here (see cfa_abstract_declarator).
    22872286                { $$ = $1->addName( $2 ); }
    2288         | type_qualifier_list cfa_abstract_tuple identifier_or_type_name default_initializer_opt
     2287        | type_qualifier_list cfa_abstract_tuple identifier_or_type_name default_initialize_opt
    22892288                { $$ = $2->addName( $3 )->addQualifiers( $1 ); }
    22902289        | cfa_function_specifier
     
    23032302parameter_declaration:
    23042303                // No SUE declaration in parameter list.
    2305         declaration_specifier_nobody identifier_parameter_declarator default_initializer_opt
     2304        declaration_specifier_nobody identifier_parameter_declarator default_initialize_opt
    23062305                { $$ = $2->addType( $1 )->addInitializer( $3 ? new InitializerNode( $3 ) : nullptr ); }
    2307         | declaration_specifier_nobody type_parameter_redeclarator default_initializer_opt
     2306        | declaration_specifier_nobody type_parameter_redeclarator default_initialize_opt
    23082307                { $$ = $2->addType( $1 )->addInitializer( $3 ? new InitializerNode( $3 ) : nullptr ); }
    23092308        ;
    23102309
    23112310abstract_parameter_declaration:
    2312         declaration_specifier_nobody default_initializer_opt
     2311        declaration_specifier_nobody default_initialize_opt
    23132312                { $$ = $1->addInitializer( $2 ? new InitializerNode( $2 ) : nullptr ); }
    2314         | declaration_specifier_nobody abstract_parameter_declarator default_initializer_opt
     2313        | declaration_specifier_nobody abstract_parameter_declarator default_initialize_opt
    23152314                { $$ = $2->addType( $1 )->addInitializer( $3 ? new InitializerNode( $3 ) : nullptr ); }
    23162315        ;
     
    24422441        type_class identifier_or_type_name
    24432442                { typedefTable.addToScope( *$2, TYPEDEFname, "9" ); }
    2444           type_initializer_opt assertion_list_opt
     2443        type_initializer_opt assertion_list_opt
    24452444                { $$ = DeclarationNode::newTypeParam( $1, $2 )->addTypeInitializer( $4 )->addAssertions( $5 ); }
    2446         | identifier_or_type_name new_type_class
    2447                 { typedefTable.addToScope( *$1, TYPEDEFname, "9" ); }
    2448           type_initializer_opt assertion_list_opt
    2449                 { $$ = DeclarationNode::newTypeParam( $2, $1 )->addTypeInitializer( $4 )->addAssertions( $5 ); }
    2450         | '[' identifier_or_type_name ']'
    2451                 {
    2452                         typedefTable.addToScope( *$2, TYPEDEFname, "9" );
    2453                         $$ = DeclarationNode::newTypeParam( TypeDecl::ALtype, $2 );
    2454                 }
    2455         // | type_specifier identifier_parameter_declarator
     2445        | type_specifier identifier_parameter_declarator
    24562446        | assertion_list
    24572447                { $$ = DeclarationNode::newTypeParam( TypeDecl::Dtype, new string( DeclarationNode::anonymous.newName() ) )->addAssertions( $1 ); }
    2458         ;
    2459 
    2460 new_type_class:                                                                                 // CFA
    2461         // empty
    2462                 { $$ = TypeDecl::Otype; }
    2463         | '&'
    2464                 { $$ = TypeDecl::Dtype; }
    2465         | '*'
    2466                 { $$ = TypeDecl::DStype; }                                              // dtype + sized
    2467         | ELLIPSIS
    2468                 { $$ = TypeDecl::Ttype; }
    24692448        ;
    24702449
     
    34973476        ;
    34983477
    3499 default_initializer_opt:
     3478default_initialize_opt:
    35003479        // empty
    35013480                { $$ = nullptr; }
Note: See TracChangeset for help on using the changeset viewer.