Changeset 28f8f15 for src/Parser/parser.yy
- Timestamp:
- Apr 27, 2023, 3:13:24 PM (17 months ago)
- Branches:
- ADT
- Children:
- 561354f
- Parents:
- b110bcc
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/parser.yy
rb110bcc r28f8f15 339 339 %token SIZEOF TYPEOF VA_LIST VA_ARG AUTO_TYPE // GCC 340 340 %token OFFSETOF BASETYPEOF TYPEID // CFA 341 %token ENUM STRUCT UNION 341 %token ENUM STRUCT UNION DATA 342 342 %token EXCEPTION // CFA 343 343 %token GENERATOR COROUTINE MONITOR THREAD // CFA … … 453 453 %type<decl> enumerator_list enum_type enum_type_nobody 454 454 %type<init> enumerator_value_opt 455 456 %type<decl> value_list 457 %type<decl> data_constructor type_specifier_list 455 458 456 459 %type<decl> external_definition external_definition_list external_definition_list_opt … … 2441 2444 } 2442 2445 | enum_type 2446 /* | algebric_data_type */ 2443 2447 ; 2444 2448 … … 2694 2698 } 2695 2699 | enum_type_nobody 2696 ; 2700 | DATA identifier 2701 { typedefTable.makeTypedef( *$2 ); } 2702 '{' value_list '}' 2703 { 2704 $$ = DeclarationNode::newADT( $2, $5 ); 2705 } 2706 ; 2707 2708 value_list: 2709 data_constructor 2710 { 2711 $$ = $1; 2712 } 2713 /* | identifier_or_type_name '(' type_specifier ')' 2714 { 2715 $$ = DeclarationNode::newEnumValueGeneric( $1, nullptr ); 2716 } */ 2717 /* | data_constructor '|' value_list */ 2718 | value_list '|' data_constructor 2719 { 2720 { $$ = $1->appendList( $3 ); } 2721 } 2722 ; 2723 2724 data_constructor: 2725 identifier_or_type_name 2726 { 2727 typedefTable.makeTypedef( *$1 ); 2728 $$ = DeclarationNode::newTypeDecl( $1, nullptr );; 2729 } 2730 | identifier_or_type_name '(' type_specifier_list ')' 2731 { 2732 typedefTable.makeTypedef( *$1 ); 2733 $$ = DeclarationNode::newTypeDecl( $1, $3 ); 2734 } 2735 2736 type_specifier_list: 2737 type_specifier 2738 /* | type_specifier ',' type_specifier_list */ 2739 | type_specifier_list ',' type_specifier 2740 { 2741 $$ = $1->appendList($3); 2742 } 2743 ; 2744 2697 2745 2698 2746 hide_opt:
Note: See TracChangeset
for help on using the changeset viewer.