Changes in src/SynTree/BaseSyntaxNode.h [7870799:50377a4]
- File:
-
- 1 edited
-
src/SynTree/BaseSyntaxNode.h (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/SynTree/BaseSyntaxNode.h
r7870799 r50377a4 9 9 // Author : Thierry Delisle 10 10 // Created On : Tue Feb 14 07:44:20 2017 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Wed Jul 10 16:13:49 201913 // Update Count : 411 // Last Modified By : Andrew Beach 12 // Last Modified On : Thr Aug 17 13:44:00 13 // Update Count : 1 14 14 // 15 15 … … 18 18 #include "Common/CodeLocation.h" 19 19 #include "Common/Indenter.h" 20 #include "Common/Stats.h"21 22 20 class Visitor; 23 21 class Mutator; … … 25 23 class BaseSyntaxNode { 26 24 public: 27 static Stats::Counters::SimpleCounter* new_nodes;28 29 25 CodeLocation location; 30 31 BaseSyntaxNode() { ++*new_nodes; }32 BaseSyntaxNode( const BaseSyntaxNode & o ) : location(o.location) { ++*new_nodes; }33 BaseSyntaxNode & operator=( const BaseSyntaxNode & ) = default;34 26 35 27 virtual ~BaseSyntaxNode() {} … … 37 29 virtual BaseSyntaxNode * clone() const = 0; 38 30 virtual void accept( Visitor & v ) = 0; 39 virtual void accept( Visitor & v ) const = 0;40 31 virtual BaseSyntaxNode * acceptMutator( Mutator & m ) = 0; 41 /// Notes:42 /// * each node is responsible for indenting its children.43 /// * Expressions should not finish with a newline, since the expression's parent has better information.32 /// Notes: 33 /// * each node is responsible for indenting its children. 34 /// * Expressions should not finish with a newline, since the expression's parent has better information. 44 35 virtual void print( std::ostream & os, Indenter indent = {} ) const = 0; 36 void print( std::ostream & os, unsigned int indent ) { 37 print( os, Indenter{ Indenter::tabsize, indent }); 38 } 45 39 }; 46 40
Note:
See TracChangeset
for help on using the changeset viewer.