Changes in src/SynTree/Expression.h [849720f:e67991f]
- File:
-
- 1 edited
-
src/SynTree/Expression.h (modified) (16 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/SynTree/Expression.h
r849720f re67991f 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Andrew Beach12 // Last Modified On : Thr Aug 15 13:46:00201913 // Update Count : 5411 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Feb 18 18:29:51 2019 13 // Update Count : 49 14 14 // 15 15 … … 71 71 const Type * get_result() const { return result; } 72 72 void set_result( Type * newValue ) { result = newValue; } 73 virtual bool get_lvalue() const;74 73 75 74 TypeSubstitution * get_env() const { return env; } … … 99 98 virtual ~ApplicationExpr(); 100 99 101 bool get_lvalue() const final;102 103 100 Expression * get_function() const { return function; } 104 101 void set_function( Expression * newValue ) { function = newValue; } … … 123 120 UntypedExpr( const UntypedExpr & other ); 124 121 virtual ~UntypedExpr(); 125 126 bool get_lvalue() const final;127 122 128 123 Expression * get_function() const { return function; } … … 213 208 virtual ~CastExpr(); 214 209 215 bool get_lvalue() const final;216 217 210 Expression * get_arg() const { return arg; } 218 211 void set_arg( Expression * newValue ) { arg = newValue; } … … 275 268 virtual ~UntypedMemberExpr(); 276 269 277 bool get_lvalue() const final;278 279 270 Expression * get_member() const { return member; } 280 271 void set_member( Expression * newValue ) { member = newValue; } … … 300 291 virtual ~MemberExpr(); 301 292 302 bool get_lvalue() const final;303 304 293 DeclarationWithType * get_member() const { return member; } 305 294 void set_member( DeclarationWithType * newValue ) { member = newValue; } … … 324 313 VariableExpr( const VariableExpr & other ); 325 314 virtual ~VariableExpr(); 326 327 bool get_lvalue() const final;328 315 329 316 DeclarationWithType * get_var() const { return var; } … … 476 463 }; 477 464 465 /// AttrExpr represents an @attribute expression (like sizeof, but user-defined) 466 class AttrExpr : public Expression { 467 public: 468 Expression * attr; 469 Expression * expr; 470 Type * type; 471 bool isType; 472 473 AttrExpr(Expression * attr, Expression * expr ); 474 AttrExpr( const AttrExpr & other ); 475 AttrExpr( Expression * attr, Type * type ); 476 virtual ~AttrExpr(); 477 478 Expression * get_attr() const { return attr; } 479 void set_attr( Expression * newValue ) { attr = newValue; } 480 Expression * get_expr() const { return expr; } 481 void set_expr( Expression * newValue ) { expr = newValue; } 482 Type * get_type() const { return type; } 483 void set_type( Type * newValue ) { type = newValue; } 484 bool get_isType() const { return isType; } 485 void set_isType( bool newValue ) { isType = newValue; } 486 487 virtual AttrExpr * clone() const override { return new AttrExpr( * this ); } 488 virtual void accept( Visitor & v ) override { v.visit( this ); } 489 virtual void accept( Visitor & v ) const override { v.visit( this ); } 490 virtual Expression * acceptMutator( Mutator & m ) override { return m.mutate( this ); } 491 virtual void print( std::ostream & os, Indenter indent = {} ) const override; 492 }; 493 478 494 /// LogicalExpr represents a short-circuit boolean expression (&& or ||) 479 495 class LogicalExpr : public Expression { … … 512 528 ConditionalExpr( const ConditionalExpr & other ); 513 529 virtual ~ConditionalExpr(); 514 515 bool get_lvalue() const final;516 530 517 531 Expression * get_arg1() const { return arg1; } … … 539 553 virtual ~CommaExpr(); 540 554 541 bool get_lvalue() const final;542 543 555 Expression * get_arg1() const { return arg1; } 544 556 void set_arg1( Expression * newValue ) { arg1 = newValue; } … … 627 639 ~ConstructorExpr(); 628 640 629 bool get_lvalue() const final;630 631 641 Expression * get_callExpr() const { return callExpr; } 632 642 void set_callExpr( Expression * newValue ) { callExpr = newValue; } … … 647 657 CompoundLiteralExpr( const CompoundLiteralExpr & other ); 648 658 virtual ~CompoundLiteralExpr(); 649 650 bool get_lvalue() const final;651 659 652 660 Initializer * get_initializer() const { return initializer; } … … 707 715 virtual ~TupleExpr(); 708 716 709 bool get_lvalue() const final;710 711 717 std::list<Expression*>& get_exprs() { return exprs; } 712 718 … … 727 733 TupleIndexExpr( const TupleIndexExpr & other ); 728 734 virtual ~TupleIndexExpr(); 729 730 bool get_lvalue() const final;731 735 732 736 Expression * get_tuple() const { return tuple; } … … 778 782 StmtExpr( const StmtExpr & other ); 779 783 virtual ~StmtExpr(); 780 781 bool get_lvalue() const final;782 784 783 785 CompoundStmt * get_statements() const { return statements; }
Note:
See TracChangeset
for help on using the changeset viewer.