Changes in src/SynTree/Attribute.h [ea6332d:2b7bf59]
- File:
-
- 1 edited
-
src/SynTree/Attribute.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/SynTree/Attribute.h
rea6332d r2b7bf59 20 20 #include <string> // for string, operator== 21 21 22 #include "BaseSyntaxNode.h" 23 #include "Mutator.h" 24 #include "Visitor.h" 25 22 26 class Expression; 23 27 24 28 // GCC attribute 25 29 // https://gcc.gnu.org/onlinedocs/gcc-6.1.0/gcc/Attribute-Syntax.html#Attribute-Syntax 26 class Attribute {30 class Attribute : public BaseSyntaxNode { 27 31 public: 32 std::string name; 33 // to keep things nice and tight, use NameExpr for special identifier parameters 34 std::list< Expression * > parameters; 35 28 36 Attribute( std::string name = "", const std::list< Expression * > & parameters = std::list< Expression * >() ) : name( name ), parameters( parameters ) {} 29 37 Attribute( const Attribute &other ); … … 36 44 37 45 Attribute * clone() const { return new Attribute( *this ); } 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; 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; 43 49 }; 44 50
Note:
See TracChangeset
for help on using the changeset viewer.