Changeset 0a73148 for src/Parser


Ignore:
Timestamp:
Jul 13, 2018, 6:36:34 PM (6 years ago)
Author:
Peter A. Buhr <pabuhr@…>
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, no_list, persistent-indexer, pthread-emulation, qualifiedEnum
Children:
6da49249
Parents:
6b8b767 (diff), ae144af (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:

fix conflict

Location:
src/Parser
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/DeclarationNode.cc

    r6b8b767 r0a73148  
    10031003                                // };
    10041004                                if ( ! (extracted && decl->name == "" && ! anon) ) {
     1005                                        if (decl->name == "") {
     1006                                                if ( DeclarationWithType * dwt = dynamic_cast<DeclarationWithType *>( decl ) ) {
     1007                                                        if ( ReferenceToType * aggr = dynamic_cast<ReferenceToType *>( dwt->get_type() ) ) {
     1008                                                                if ( aggr->name.find("anonymous") == std::string::npos ) {
     1009                                                                        bool isInline = false;
     1010                                                                        if (cur->type->kind == TypeData::Aggregate || cur->type->kind == TypeData::AggregateInst) {
     1011                                                                                if (cur->type->kind == TypeData::Aggregate) {
     1012                                                                                        isInline = cur->type->aggregate.inLine;
     1013                                                                                } else {
     1014                                                                                        isInline = cur->type->aggInst.inLine;
     1015                                                                                        if ( TypeData * aggr = cur->type->aggInst.aggregate ) {
     1016                                                                                                if ( aggr->kind == TypeData::Aggregate ) {
     1017                                                                                                        isInline = isInline || aggr->aggregate.inLine;
     1018                                                                                                }
     1019                                                                                        }
     1020                                                                                }
     1021                                                                        }
     1022                                                                        if (! isInline) {
     1023                                                                                // temporary: warn about anonymous member declarations of named types, since this conflicts with the syntax for the forward declaration of an anonymous type
     1024                                                                                SemanticWarning( cur->location, Warning::AggrForwardDecl, aggr->name.c_str() );
     1025                                                                        }
     1026                                                                }
     1027                                                        }
     1028                                                }
     1029                                        }
    10051030                                        decl->location = cur->location;
    10061031                                        * out++ = decl;
  • src/Parser/TypedefTable.cc

    r6b8b767 r0a73148  
    55// file "LICENCE" distributed with Cforall.
    66//
    7 // TypedefTable.cc -- 
     7// TypedefTable.cc --
    88//
    99// Author           : Peter A. Buhr
    1010// Created On       : Sat May 16 15:20:13 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jul 12 16:16:24 2018
    13 // Update Count     : 256
     12// Last Modified On : Fri Jul 13 18:35:54 2018
     13// Update Count     : 257
    1414//
    1515
  • src/Parser/parser.yy

    r6b8b767 r0a73148  
    23072307                { $$ = new ExpressionNode( new TypeExpr( maybeMoveBuildType( $1 ) ) ); }
    23082308        | assignment_expression
     2309                { SemanticError( yylloc, toString("Expression generic parameters are currently unimplemented: ", $1->build()) ); $$ = nullptr; }
    23092310        | type_list ',' type
    23102311                { $$ = (ExpressionNode *)( $1->set_last( new ExpressionNode( new TypeExpr( maybeMoveBuildType( $3 ) ) ) ) ); }
    23112312        | type_list ',' assignment_expression
    2312                 { $$ = (ExpressionNode *)( $1->set_last( $3 )); }
     2313                { SemanticError( yylloc, toString("Expression generic parameters are currently unimplemented: ", $3->build()) ); $$ = nullptr; }
     2314                // { $$ = (ExpressionNode *)( $1->set_last( $3 )); }
    23132315        ;
    23142316
Note: See TracChangeset for help on using the changeset viewer.