Changes in src/SynTree/Expression.h [871cdb4:e612146c]
- File:
-
- 1 edited
-
src/SynTree/Expression.h (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/SynTree/Expression.h
r871cdb4 re612146c 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 : Fri Aug 8 11:54:00201713 // Update Count : 4 411 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Sep 3 19:23:46 2017 13 // Update Count : 48 14 14 // 15 15 16 #pragma once 16 17 … … 24 25 #include "Constant.h" // for Constant 25 26 #include "Initializer.h" // for Designation (ptr only), Initializer 27 #include "Label.h" // for Label 26 28 #include "Mutator.h" // for Mutator 27 29 #include "SynTree.h" // for UniqueId … … 84 86 public: 85 87 Expression * function; 86 std::list<Expression *> args;87 InferredParams inferParams;88 88 89 89 ApplicationExpr( Expression * function, const std::list<Expression *> & args = std::list< Expression * >() ); … … 100 100 virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); } 101 101 virtual void print( std::ostream & os, int indent = 0 ) const; 102 103 private: 104 std::list<Expression *> args; 105 InferredParams inferParams; 102 106 }; 103 107 … … 171 175 }; 172 176 173 // xxx - this doesn't appear to actually be hooked in anywhere. We should use this instead of the "&&"" UntypedExpr hack 177 // GCC &&label 178 // https://gcc.gnu.org/onlinedocs/gcc-3.4.2/gcc/Labels-as-Values.html 174 179 class LabelAddressExpr : public Expression { 175 180 public: 176 Expression *arg;177 178 LabelAddressExpr( Expression *arg );181 Label arg; 182 183 LabelAddressExpr( const Label &arg ); 179 184 LabelAddressExpr( const LabelAddressExpr & other ); 180 185 virtual ~LabelAddressExpr(); 181 182 Expression * get_arg() const { return arg; }183 void set_arg(Expression * newValue ) { arg = newValue; }184 186 185 187 virtual LabelAddressExpr * clone() const { return new LabelAddressExpr( * this ); } … … 538 540 public: 539 541 Expression * inout; 540 ConstantExpr* constraint;542 Expression * constraint; 541 543 Expression * operand; 542 544 543 AsmExpr( Expression * inout, ConstantExpr* constraint, Expression * operand ) : inout( inout ), constraint( constraint ), operand( operand ) {}545 AsmExpr( Expression * inout, Expression * constraint, Expression * operand ) : inout( inout ), constraint( constraint ), operand( operand ) {} 544 546 AsmExpr( const AsmExpr & other ); 545 547 virtual ~AsmExpr() { delete inout; delete constraint; delete operand; }; … … 548 550 void set_inout( Expression * newValue ) { inout = newValue; } 549 551 550 ConstantExpr* get_constraint() const { return constraint; }551 void set_constraint( ConstantExpr* newValue ) { constraint = newValue; }552 Expression * get_constraint() const { return constraint; } 553 void set_constraint( Expression * newValue ) { constraint = newValue; } 552 554 553 555 Expression * get_operand() const { return operand; }
Note:
See TracChangeset
for help on using the changeset viewer.