Changes in / [18ea270:de934c7]
- File:
-
- 1 edited
-
src/Parser/parser.yy (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/parser.yy
r18ea270 rde934c7 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Mar 22 21:26:01202313 // Update Count : 600212 // Last Modified On : Tue Mar 21 19:01:00 2023 13 // Update Count : 5990 14 14 // 15 15 … … 270 270 SemanticError( yylloc, ::toString( "Identifier \"", identifier, "\" cannot appear before a ", kind, ".\n" 271 271 "Possible cause is misspelled storage/CV qualifier, misspelled typename, or missing generic parameter." ) ); 272 } // IdentifierBeforeType273 274 static bool TypedefForall( DeclarationNode * decl ) {275 if ( decl->type->forall || (decl->type->kind == TypeData::Aggregate && decl->type->aggregate.params) ) {276 SemanticError( yylloc, "forall qualifier in typedef is currently unimplemented." );277 return true;278 } // if279 return false;280 272 } // IdentifierBeforeType 281 273 … … 1966 1958 TYPEDEF type_specifier declarator 1967 1959 { 1960 // if type_specifier is an anon aggregate => name 1968 1961 typedefTable.addToEnclosingScope( *$3->name, TYPEDEFname, "4" ); 1969 if ( TypedefForall( $2 ) ) $$ = nullptr; 1970 else $$ = $3->addType( $2 )->addTypedef(); // watchout frees $2 and $3 1962 $$ = $3->addType( $2 )->addTypedef(); // watchout frees $2 and $3 1971 1963 } 1972 1964 | typedef_declaration pop ',' push declarator … … 1978 1970 { 1979 1971 typedefTable.addToEnclosingScope( *$4->name, TYPEDEFname, "6" ); 1980 if ( TypedefForall( $1 ) ) $$ = nullptr; 1981 else $$ = $4->addQualifiers( $1 )->addType( $3 )->addTypedef(); 1972 $$ = $4->addQualifiers( $1 )->addType( $3 )->addTypedef(); 1982 1973 } 1983 1974 | type_specifier TYPEDEF declarator 1984 1975 { 1985 1976 typedefTable.addToEnclosingScope( *$3->name, TYPEDEFname, "7" ); 1986 if ( TypedefForall( $1 ) ) $$ = nullptr; 1987 else $$ = $3->addType( $1 )->addTypedef(); 1977 $$ = $3->addType( $1 )->addTypedef(); 1988 1978 } 1989 1979 | type_specifier TYPEDEF type_qualifier_list declarator 1990 1980 { 1991 1981 typedefTable.addToEnclosingScope( *$4->name, TYPEDEFname, "8" ); 1992 if ( TypedefForall( $3 ) ) $$ = nullptr; 1993 else $$ = $4->addQualifiers( $1 )->addType( $1 )->addTypedef(); 1982 $$ = $4->addQualifiers( $1 )->addType( $1 )->addTypedef(); 1994 1983 } 1995 1984 ;
Note:
See TracChangeset
for help on using the changeset viewer.