Changes in src/SynTree/Expression.h [2a4b088:630a82a]
- File:
-
- 1 edited
-
src/SynTree/Expression.h (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/SynTree/Expression.h
r2a4b088 r630a82a 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // Expression.h -- 7 // Expression.h -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Wed Dec 09 14:10:21 201513 // Update Count : 1911 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Apr 8 17:18:06 2016 13 // Update Count : 21 14 14 // 15 15 … … 155 155 }; 156 156 157 // xxx - this doesn't appear to actually be hooked in anywhere. We should use this instead of the "&&"" UntypedExpr hack 157 158 class LabelAddressExpr : public Expression { 158 159 public: 159 160 LabelAddressExpr( Expression *arg ); 160 LabelAddressExpr( const AddressExpr &other );161 LabelAddressExpr( const LabelAddressExpr &other ); 161 162 virtual ~LabelAddressExpr(); 162 163 … … 251 252 }; 252 253 253 /// ConstantExpr represents an expression that simply refers to the value of a constant 254 /// ConstantExpr represents an expression that simply refers to the value of a constant 254 255 class ConstantExpr : public Expression { 255 256 public: … … 515 516 public: 516 517 AsmExpr( Expression *inout, ConstantExpr *constraint, Expression *operand ) : inout( inout ), constraint( constraint ), operand( operand ) {} 518 AsmExpr( const AsmExpr & other ); 517 519 virtual ~AsmExpr() { delete inout; delete constraint; delete operand; }; 518 520 … … 541 543 public: 542 544 UntypedValofExpr( Statement *_body, Expression *_aname = 0 ) : Expression( _aname ), body ( _body ) {} 543 virtual ~UntypedValofExpr() {} 545 UntypedValofExpr( const UntypedValofExpr & other ); 546 virtual ~UntypedValofExpr(); 544 547 545 548 Expression *get_value(); … … 552 555 private: 553 556 Statement *body; 557 }; 558 559 /// CompoundLiteralExpr represents a C99 'compound literal' 560 class CompoundLiteralExpr : public Expression { 561 public: 562 CompoundLiteralExpr( Type * type, Initializer * initializer ); 563 CompoundLiteralExpr( const CompoundLiteralExpr &other ); 564 ~CompoundLiteralExpr(); 565 566 Type * get_type() const { return type; } 567 void set_type( Type * t ) { type = t; } 568 569 Initializer * get_initializer() const { return initializer; } 570 void set_initializer( Initializer * i ) { initializer = i; } 571 572 virtual CompoundLiteralExpr *clone() const { return new CompoundLiteralExpr( *this ); } 573 virtual void accept( Visitor &v ) { v.visit( this ); } 574 virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); } 575 virtual void print( std::ostream &os, int indent = 0 ) const; 576 private: 577 Type * type; 578 Initializer * initializer; 554 579 }; 555 580
Note:
See TracChangeset
for help on using the changeset viewer.