namespace Fortran {
namespace parser {
-namespace {
-
// Apply func to each member of tuple.
template<size_t I = 0, typename Func, typename... Ts> // clang-format off
typename std::enable_if<I == sizeof...(Ts)>::type
}
}
-} // namespace
-
template<typename T, typename V> void Walk(const Scalar<T> &x, V &visitor) {
Walk(x.thing, visitor);
}
WalkUnionClass(x, visitor);
}
+template<typename V> void Walk(const AccessSpec &x, V &visitor) {
+ WalkWrapperClass(x, visitor);
+}
+
template<typename V> void Walk(const AccessStmt &x, V &visitor) {
WalkTupleClass(x, visitor);
}
}
}
+template<typename V> void Walk(const ArraySection &x, V &visitor) {
+ WalkWrapperClass(x, visitor);
+}
+
template<typename V> void Walk(const ArraySpec &x, V &visitor) {
WalkUnionClass(x, visitor);
}
WalkWrapperClass(x, visitor);
}
+template<typename V> void Walk(const CloseStmt &x, V &visitor) {
+ WalkWrapperClass(x, visitor);
+}
+
template<typename V> void Walk(const CloseStmt::CloseSpec &x, V &visitor) {
WalkUnionClass(x, visitor);
}
WalkUnionClass(x, visitor);
}
+template<typename V> void Walk(const ComplexPartDesignator &x, V &visitor) {
+ WalkWrapperClass(x, visitor);
+}
+
template<typename V> void Walk(const ComponentArraySpec &x, V &visitor) {
WalkUnionClass(x, visitor);
}
WalkUnionClass(x, visitor);
}
+template<typename V> void Walk(const DimensionStmt &x, V &visitor) {
+ WalkWrapperClass(x, visitor);
+}
+
template<typename V>
void Walk(const DimensionStmt::Declaration &x, V &visitor) {
WalkTupleClass(x, visitor);
WalkWrapperClass(x, visitor);
}
+template<typename V> void Walk(const HollerithLiteralConstant &x, V &visitor) {
+ WalkWrapperClass(x, visitor);
+}
+
template<typename V> void Walk(const IdExpr &x, V &visitor) {
WalkWrapperClass(x, visitor);
}
WalkWrapperClass(x, visitor);
}
+template<typename V> void Walk(const IntentSpec &x, V &visitor) {
+ WalkWrapperClass(x, visitor);
+}
+
template<typename V> void Walk(const IntentStmt &x, V &visitor) {
WalkTupleClass(x, visitor);
}
WalkUnionClass(x, visitor);
}
+template<typename V> void Walk(const KindSelector &x, V &visitor) {
+ WalkWrapperClass(x, visitor);
+}
+
template<typename V> void Walk(const LabelDoStmt &x, V &visitor) {
WalkTupleClass(x, visitor);
}
WalkTupleClass(x, visitor);
}
+template<typename V> void Walk(const NamelistStmt &x, V &visitor) {
+ WalkWrapperClass(x, visitor);
+}
+
template<typename V> void Walk(const NamelistStmt::Group &x, V &visitor) {
WalkTupleClass(x, visitor);
}
WalkTupleClass(x, visitor);
}
+template<typename V> void Walk(const TypeParamInquiry &x, V &visitor) {
+ WalkWrapperClass(x, visitor);
+}
+
template<typename V> void Walk(const TypeParamSpec &x, V &visitor) {
WalkTupleClass(x, visitor);
}