Changes in / [2de175ce:c84dd61]
- Location:
- src
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/parser.yy
r2de175ce rc84dd61 2694 2694 $$ = DeclarationNode::newEnum( nullptr, $7, true, true, $3 )->addQualifiers( $5 ); 2695 2695 } 2696 | ENUM '(' ')' attribute_list_opt '{' enumerator_list comma_opt '}'2697 {2698 $$ = DeclarationNode::newEnum( nullptr, $6, true, true )->addQualifiers( $4 );2699 }2700 2696 | ENUM '(' cfa_abstract_parameter_declaration ')' attribute_list_opt identifier attribute_list_opt 2701 2697 { … … 2709 2705 $$ = DeclarationNode::newEnum( $6, $11, true, true, $3, $9 )->addQualifiers( $5 )->addQualifiers( $7 ); 2710 2706 } 2711 | ENUM '(' ')' attribute_list_opt identifier attribute_list_opt2712 hide_opt '{' enumerator_list comma_opt '}'2713 {2714 $$ = DeclarationNode::newEnum( $5, $9, true, true, nullptr, $7 )->addQualifiers( $4 )->addQualifiers( $6 );2715 }2716 2707 | ENUM '(' cfa_abstract_parameter_declaration ')' attribute_list_opt typedef_name attribute_list_opt 2717 2708 hide_opt '{' enumerator_list comma_opt '}' 2718 2709 { 2719 2710 $$ = DeclarationNode::newEnum( $6->name, $10, true, true, $3, $8 )->addQualifiers( $5 )->addQualifiers( $7 ); 2720 }2721 | ENUM '(' ')' attribute_list_opt typedef_name attribute_list_opt2722 hide_opt '{' enumerator_list comma_opt '}'2723 {2724 $$ = DeclarationNode::newEnum( $5->name, $9, true, true, nullptr, $7 )->addQualifiers( $4 )->addQualifiers( $6 );2725 2711 } 2726 2712 | enum_type_nobody … … 2835 2821 2836 2822 cfa_abstract_parameter_declaration: // CFA, new & old style parameter declaration 2837 abstract_parameter_declaration 2823 // empty 2824 { $$ = nullptr; } 2825 | abstract_parameter_declaration 2838 2826 | cfa_identifier_parameter_declarator_no_tuple 2839 2827 | cfa_abstract_tuple … … 3860 3848 // { SemanticError( yylloc, "New array dimension is currently unimplemented." ); $$ = nullptr; } 3861 3849 | '[' push array_type_list pop ']' // CFA 3862 { SemanticError( yylloc, "Type array dimension is currently unimplemented." ); $$ = nullptr; }3850 { $$ = DeclarationNode::newArray( $3, nullptr, false ); } 3863 3851 | multi_array_dimension 3864 3852 ; -
src/Validate/GenericParameter.cpp
r2de175ce rc84dd61 277 277 const ast::Expr * TranslateDimensionCore::postvisit( 278 278 const ast::TypeExpr * expr ) { 279 // Does nothing, except prevents matching ast::Expr (above). 279 if ( auto instType = dynamic_cast<const ast::EnumInstType *>( expr->type.get() ) ) { 280 const ast::EnumDecl * baseEnum = instType->base.get(); 281 return ast::ConstantExpr::from_int( expr->location, baseEnum->members.size() ); 282 } 280 283 return expr; 281 284 }
Note: See TracChangeset
for help on using the changeset viewer.