Changeset d4b6638 for src/AST/Node.hpp
- Timestamp:
- Jun 5, 2019, 11:24:29 AM (5 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 2a8f0c1, 300fbee
- Parents:
- 4741dfe (diff), 0e42794 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/AST/Node.hpp
r4741dfe rd4b6638 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.