Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/SynTree/Attribute.h

    r2b7bf59 rea6332d  
    2020#include <string>  // for string, operator==
    2121
    22 #include "BaseSyntaxNode.h"
    23 #include "Mutator.h"
    24 #include "Visitor.h"
    25 
    2622class Expression;
    2723
    2824// GCC attribute
    2925// https://gcc.gnu.org/onlinedocs/gcc-6.1.0/gcc/Attribute-Syntax.html#Attribute-Syntax
    30 class Attribute : public BaseSyntaxNode {
     26class Attribute {
    3127  public:
    32         std::string name;
    33         // to keep things nice and tight, use NameExpr for special identifier parameters
    34         std::list< Expression * > parameters;
    35 
    3628        Attribute( std::string name = "", const std::list< Expression * > & parameters = std::list< Expression * >() ) : name( name ), parameters( parameters ) {}
    3729        Attribute( const Attribute &other );
     
    4436
    4537        Attribute * clone() const { return new Attribute( *this ); }
    46         virtual void accept( Visitor & v ) { v.visit( this ); }
    47         virtual Attribute * acceptMutator( Mutator & m ) { return m.mutate( this ); }
    48         virtual void print( std::ostream & os, int indent = 0 ) const;
     38        void print( std:: ostream &os, int indent = 0 ) const;
     39  private:
     40        std::string name;
     41        // to keep things nice and tight, use NameExpr for special identifier parameters
     42        std::list< Expression * > parameters;
    4943};
    5044
Note: See TracChangeset for help on using the changeset viewer.