Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/SynTree/Expression.h

    rb0d9ff7 r6e50a6b  
    163163};
    164164
    165 // [Qualifier].name; Qualifier is the type_name from the parser
    166 class QualifiedNameExpr : public Expression {
    167   public:
    168         Declaration * type_decl;
    169         std::string name;
    170         DeclarationWithType * var;
    171 
    172         QualifiedNameExpr( Declaration * decl, std::string name): Expression(), type_decl(decl), name(name) {}
    173         QualifiedNameExpr( const QualifiedNameExpr & other): Expression(other), type_decl(other.type_decl), name(other.name), var(other.var) {}
    174         DeclarationWithType * get_var() const { return var; }
    175         void set_var( DeclarationWithType * newValue ) { var = newValue; }
    176 
    177         virtual ~QualifiedNameExpr() {
    178                 delete var;
    179                 delete type_decl;
    180         }
    181 
    182         virtual QualifiedNameExpr * clone() const override {
    183                 return new QualifiedNameExpr( * this );
    184         }
    185         virtual void accept( Visitor & v ) override { v.visit(this); }
    186         virtual void accept( Visitor & v ) const override { v.visit(this); }
    187         virtual Expression * acceptMutator( Mutator & m ) override {
    188                 return m.mutate( this );
    189         }
    190        
    191         virtual void print( std::ostream & os, Indenter indent = {} ) const override {
    192                 type_decl->print( os, indent );
    193                 os << name << std::endl;
    194         }
    195 };
    196 
    197165/// VariableExpr represents an expression that simply refers to the value of a named variable.
    198166/// Does not take ownership of var.
Note: See TracChangeset for help on using the changeset viewer.