Changes in src/SynTree/Expression.h [630a82a:2a4b088]
- File:
-
- 1 edited
-
src/SynTree/Expression.h (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/SynTree/Expression.h
r630a82a r2a4b088 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 : Peter A. Buhr12 // Last Modified On : Fri Apr 8 17:18:06 201613 // Update Count : 2111 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed Dec 09 14:10:21 2015 13 // Update Count : 19 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 hack158 157 class LabelAddressExpr : public Expression { 159 158 public: 160 159 LabelAddressExpr( Expression *arg ); 161 LabelAddressExpr( const LabelAddressExpr &other );160 LabelAddressExpr( const AddressExpr &other ); 162 161 virtual ~LabelAddressExpr(); 163 162 … … 252 251 }; 253 252 254 /// ConstantExpr represents an expression that simply refers to the value of a constant 253 /// ConstantExpr represents an expression that simply refers to the value of a constant 255 254 class ConstantExpr : public Expression { 256 255 public: … … 516 515 public: 517 516 AsmExpr( Expression *inout, ConstantExpr *constraint, Expression *operand ) : inout( inout ), constraint( constraint ), operand( operand ) {} 518 AsmExpr( const AsmExpr & other );519 517 virtual ~AsmExpr() { delete inout; delete constraint; delete operand; }; 520 518 … … 543 541 public: 544 542 UntypedValofExpr( Statement *_body, Expression *_aname = 0 ) : Expression( _aname ), body ( _body ) {} 545 UntypedValofExpr( const UntypedValofExpr & other ); 546 virtual ~UntypedValofExpr(); 543 virtual ~UntypedValofExpr() {} 547 544 548 545 Expression *get_value(); … … 555 552 private: 556 553 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;579 554 }; 580 555
Note:
See TracChangeset
for help on using the changeset viewer.