Changes in src/Parser/parser.yy [faddbd8:2298f728]
- File:
-
- 1 edited
-
src/Parser/parser.yy (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/parser.yy
rfaddbd8 r2298f728 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Oct 5 14:10:46201613 // Update Count : 200212 // Last Modified On : Sat Sep 24 11:30:40 2016 13 // Update Count : 1991 14 14 // 15 15 … … 196 196 %type<decl> field_declaration field_declaration_list field_declarator field_declaring_list 197 197 %type<en> field field_list 198 %type<tok> field_name199 198 200 199 %type<decl> external_function_definition function_definition function_array function_declarator function_no_ptr function_ptr … … 379 378 { $$ = new ExpressionNode( build_fieldSel( $1, build_varref( $3 ) ) ); } 380 379 | postfix_expression '.' '[' push field_list pop ']' // CFA, tuple field selector 381 | postfix_expression '.' INTEGERconstant382 380 | postfix_expression ARROW no_attr_identifier 383 381 { $$ = new ExpressionNode( build_pfieldSel( $1, build_varref( $3 ) ) ); } … … 392 390 { 393 391 Token fn; 394 fn.str = new st d::string( "?{}" ); // location undefined - use location of '{'?395 $$ = new ExpressionNode( new ConstructorExpr( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( $1 )->set_last( $3 )) ) );392 fn.str = new string( "?{}" ); // location undefined 393 $$ = new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( $1 )->set_last( $3 ) ) ); 396 394 } 397 395 ; … … 415 413 416 414 field: // CFA, tuple field selector 417 field_name 415 no_attr_identifier 416 { $$ = new ExpressionNode( build_varref( $1 ) ); } 418 417 // ambiguity with .0 so space required after field-selection, e.g. 419 418 // struct S { int 0, 1; } s; s. 0 = 0; s. 1 = 1; 420 { $$ = new ExpressionNode( build_varref( $1 ) ); } 421 | field_name '.' field 419 | no_attr_identifier '.' field 422 420 { $$ = new ExpressionNode( build_fieldSel( $3, build_varref( $1 ) ) ); } 423 | field_name'.' '[' push field_list pop ']'421 | no_attr_identifier '.' '[' push field_list pop ']' 424 422 { $$ = new ExpressionNode( build_fieldSel( $5, build_varref( $1 ) ) ); } 425 | field_nameARROW field423 | no_attr_identifier ARROW field 426 424 { $$ = new ExpressionNode( build_pfieldSel( $3, build_varref( $1 ) ) ); } 427 | field_nameARROW '[' push field_list pop ']'425 | no_attr_identifier ARROW '[' push field_list pop ']' 428 426 { $$ = new ExpressionNode( build_pfieldSel( $5, build_varref( $1 ) ) ); } 429 ;430 431 field_name:432 no_attr_identifier433 | INTEGERconstant434 427 ; 435 428 … … 2012 2005 { 2013 2006 linkageStack.push( linkage ); // handle nested extern "C"/"Cforall" 2014 linkage = LinkageSpec:: linkageCheck($2 );2007 linkage = LinkageSpec::fromString( *$2 ); 2015 2008 } 2016 2009 '{' external_definition_list_opt '}' // C++-style linkage specifier
Note:
See TracChangeset
for help on using the changeset viewer.