Ignore:
Timestamp:
Jun 30, 2016, 4:32:56 PM (10 years ago)
Author:
Thierry Delisle <tdelisle@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
ea29e73
Parents:
1b5c81ed (diff), 84d4d6f (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' into gc_noraii

Conflicts:

Jenkinsfile
src/SymTab/Validate.cc

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/SynTree/Expression.h

    r1b5c81ed rf80e0218  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Apr  8 17:18:06 2016
    13 // Update Count     : 21
     12// Last Modified On : Wed Jun  8 17:05:30 2016
     13// Update Count     : 22
    1414//
    1515
     
    2222#include "Mutator.h"
    2323#include "Constant.h"
     24#include "Common/UniqueName.h"
    2425
    2526/// Expression is the root type for all expressions
     
    3738        Expression *get_argName() const { return argName; }
    3839        void set_argName( Expression *name ) { argName = name; }
     40        bool get_extension() const { return extension; }
     41        void set_extension( bool exten ) { extension = exten; }
    3942
    4043        virtual Expression *clone() const = 0;
     
    4649        TypeSubstitution *env;
    4750        Expression* argName; // if expression is used as an argument, it can be "designated" by this name
     51        bool extension = false;
    4852};
    4953
     
    559563};
    560564
     565/// ImplicitCopyCtorExpr represents the application of a function to a set of parameters,
     566/// along with a set of copy constructor calls, one for each argument.
     567class ImplicitCopyCtorExpr : public Expression {
     568public:
     569        ImplicitCopyCtorExpr( ApplicationExpr * callExpr );
     570        ImplicitCopyCtorExpr( const ImplicitCopyCtorExpr & other );
     571        virtual ~ImplicitCopyCtorExpr();
     572
     573        ApplicationExpr *get_callExpr() const { return callExpr; }
     574        void set_callExpr( ApplicationExpr *newValue ) { callExpr = newValue; }
     575
     576        std::list< ObjectDecl * > & get_tempDecls() { return tempDecls; }
     577        void set_tempDecls( std::list< ObjectDecl * > newValue ) { tempDecls = newValue; }
     578
     579        std::list< ObjectDecl * > & get_returnDecls() { return returnDecls; }
     580        void set_returnDecls( std::list< ObjectDecl * > newValue ) { returnDecls = newValue; }
     581
     582        std::list< Expression * > & get_dtors() { return dtors; }
     583        void set_dtors( std::list< Expression * > newValue ) { dtors = newValue; }
     584
     585        virtual ImplicitCopyCtorExpr *clone() const { return new ImplicitCopyCtorExpr( *this ); }
     586        virtual void accept( Visitor &v ) { v.visit( this ); }
     587        virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
     588        virtual void print( std::ostream &os, int indent = 0 ) const;
     589  private:
     590        ApplicationExpr * callExpr;
     591        std::list< ObjectDecl * > tempDecls;
     592        std::list< ObjectDecl * > returnDecls;
     593        std::list< Expression * > dtors;
     594};
     595
    561596/// ValofExpr represents a GCC 'lambda expression'
    562597class UntypedValofExpr : public Expression {
Note: See TracChangeset for help on using the changeset viewer.