Changes in src/AST/Node.hpp [dafe9e1:1346914]
- File:
-
- 1 edited
-
src/AST/Node.hpp (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/AST/Node.hpp
rdafe9e1 r1346914 18 18 #include <cassert> 19 19 #include <iosfwd> 20 21 #include "Common/ErrorObjects.h" // for SemanticErrorException 20 22 21 23 namespace ast { … … 100 102 } 101 103 104 /// Call a visitor on a collection of nodes, throwing any exceptions when completed 105 template< typename Container > 106 void accept_each( const Container & c, Visitor & v ) { 107 SemanticErrorException errors; 108 for ( const auto & i : c ) { 109 try { 110 if ( i ) { 111 i->accept( v ); 112 } 113 } catch ( SemanticErrorException & e ) { 114 errors.append( e ); 115 } 116 } 117 if ( ! errors.isEmpty() ) { 118 throw errors; 119 } 120 } 121 102 122 /// Base class for the smart pointer types 103 123 /// should never really be used. … … 166 186 const o_node_t * as() const { return dynamic_cast<const o_node_t *>(node); } 167 187 188 /// wrapper for convenient access to strict_dynamic_cast 189 template<typename o_node_t> 190 const o_node_t * strict_as() const { return strict_dynamic_cast<const o_node_t *>(node); } 191 168 192 /// Returns a mutable version of the pointer in this node. 169 193 node_t * get_and_mutate();
Note:
See TracChangeset
for help on using the changeset viewer.