Changeset e1ff775 for src


Ignore:
Timestamp:
Oct 3, 2017, 2:29:09 PM (7 years ago)
Author:
Thierry Delisle <tdelisle@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
7821d6c, dcfc4b3
Parents:
3c398b6 (diff), 1155718 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' of plg.uwaterloo.ca:software/cfa/cfa-cc

Location:
src
Files:
2 added
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/parser.yy

    r3c398b6 re1ff775  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Sep 23 17:43:15 2017
    13 // Update Count     : 2829
     12// Last Modified On : Mon Oct  2 18:18:55 2017
     13// Update Count     : 2835
    1414//
    1515
     
    456456        | '(' compound_statement ')'                                            // GCC, lambda expression
    457457                { $$ = new ExpressionNode( new StmtExpr( dynamic_cast< CompoundStmt * >(maybeMoveBuild< Statement >($2) ) ) ); }
    458         | primary_expression '{' argument_expression_list '}' // CFA, constructor call
    459                 {
    460                         Token fn;
    461                         fn.str = new std::string( "?{}" );                      // location undefined - use location of '{'?
    462                         $$ = new ExpressionNode( new ConstructorExpr( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( $1 )->set_last( $3 ) ) ) );
    463                 }
    464458        | type_name '.' no_attr_identifier                                      // CFA, nested type
    465459                { $$ = nullptr; }                                                               // FIX ME
     
    476470                // equivalent to the old x[i,j].
    477471                { $$ = new ExpressionNode( build_binary_val( OperKinds::Index, $1, $4 ) ); }
     472        | postfix_expression '{' argument_expression_list '}' // CFA, constructor call
     473                {
     474                        Token fn;
     475                        fn.str = new std::string( "?{}" );                      // location undefined - use location of '{'?
     476                        $$ = new ExpressionNode( new ConstructorExpr( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( $1 )->set_last( $3 ) ) ) );
     477                }
    478478        | postfix_expression '(' argument_expression_list ')'
    479479                { $$ = new ExpressionNode( build_func( $1, $3 ) ); }
Note: See TracChangeset for help on using the changeset viewer.