Ignore:
Timestamp:
May 2, 2016, 3:28:16 PM (9 years ago)
Author:
Rob Schluntz <rschlunt@…>
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:
1b7ea43
Parents:
1f6e009 (diff), e945826 (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 global-init

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/ParseNode.h

    r1f6e009 r1048b31  
    55// file "LICENCE" distributed with Cforall.
    66//
    7 // ParseNode.h -- 
     7// ParseNode.h --
    88//
    99// Author           : Rodolfo G. Esteves
    1010// Created On       : Sat May 16 13:28:16 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Mar  2 17:26:35 2016
    13 // Update Count     : 190
     11// Last Modified By : Rob Schluntz
     12// Last Modified On : Mon Apr 11 11:50:52 2016
     13// Update Count     : 205
    1414//
    1515
     
    108108
    109109        ConstantNode( Type, std::string * );
    110         ConstantNode( const ConstantNode &other ) : value( *new std::string( other.value ) ) {};
     110        ConstantNode( const ConstantNode &other ) : type( other.type ), btype( other.btype), value( *new std::string( other.value ) ) {};
    111111        ~ConstantNode() { delete &value; }
    112112
     
    177177        enum Type { TupleC, Comma, TupleFieldSel, // n-adic
    178178                                // triadic
    179                                 Cond, NCond, 
     179                                Cond, NCond,
    180180                                // diadic
    181                                 SizeOf, AlignOf, OffsetOf, Attr, CompLit, Plus, Minus, Mul, Div, Mod, Or, And, 
    182                                 BitOr, BitAnd, Xor, Cast, LShift, RShift, LThan, GThan, LEThan, GEThan, Eq, Neq, 
     181                                SizeOf, AlignOf, OffsetOf, Attr, CompLit, Plus, Minus, Mul, Div, Mod, Or, And,
     182                                BitOr, BitAnd, Xor, Cast, LShift, RShift, LThan, GThan, LEThan, GEThan, Eq, Neq,
    183183                                Assign, MulAssn, DivAssn, ModAssn, PlusAssn, MinusAssn, LSAssn, RSAssn, AndAssn, ERAssn, OrAssn,
    184184                                Index, FieldSel, PFieldSel, Range,
     
    309309        ValofExprNode( const ValofExprNode &other );
    310310        ~ValofExprNode();
    311  
     311
    312312        virtual ValofExprNode *clone() const { return new ValofExprNode( *this ); }
    313313
     
    333333        enum BuiltinType { Valist };
    334334
    335         static const char *storageName[]; 
     335        static const char *storageName[];
    336336        static const char *qualifierName[];
    337337        static const char *basicTypeName[];
     
    427427class StatementNode : public ParseNode {
    428428  public:
    429         enum Type { Exp,   If,        Switch,  Case,    Default,  Choose,   Fallthru, 
     429        enum Type { Exp,   If,        Switch,  Case,    Default,  Choose,   Fallthru,
    430430                                While, Do,        For,
    431431                                Goto,  Continue,  Break,   Return,  Throw,
     
    535535        bool aggregate;
    536536        ExpressionNode *designator; // may be list
     537        InitializerNode *kids;
     538};
     539
     540class CompoundLiteralNode : public ExpressionNode {
     541  public:
     542        CompoundLiteralNode( DeclarationNode *type, InitializerNode *kids );
     543        CompoundLiteralNode( const CompoundLiteralNode &type );
     544        ~CompoundLiteralNode();
     545
     546        virtual CompoundLiteralNode *clone() const;
     547
     548        DeclarationNode *get_type() const { return type; }
     549        CompoundLiteralNode *set_type( DeclarationNode *t ) { type = t; return this; }
     550
     551        InitializerNode *get_initializer() const { return kids; }
     552        CompoundLiteralNode *set_initializer( InitializerNode *k ) { kids = k; return this; }
     553
     554        void print( std::ostream &, int indent = 0 ) const;
     555        void printOneLine( std::ostream &, int indent = 0 ) const;
     556
     557        virtual Expression *build() const;
     558  private:
     559        DeclarationNode *type;
    537560        InitializerNode *kids;
    538561};
Note: See TracChangeset for help on using the changeset viewer.