FLANG
Public Types | Public Member Functions | Public Attributes | List of all members
Fortran::evaluate::match::AnyOfPattern< Patterns > Struct Template Reference

#include <flang/Evaluate/match.h>

Public Types

using Indexes = std::index_sequence_for< Patterns... >
 
using MatchTypes = std::tuple< typename Patterns::MatchType... >
 

Public Member Functions

template<typename... Ops>
 AnyOfPattern (const Ops &...ops)
 
template<typename U >
bool match (const U &input) const
 

Public Attributes

std::variant< const Patterns *..., std::monostate > ref
 

Detailed Description

template<typename... Patterns>
struct Fortran::evaluate::match::AnyOfPattern< Patterns >

Matches one of the patterns provided as template arguments. All of these patterns should have the same number of operands, i.e. they all should try to match input expression with the same number of children, i.e. AnyOfPattern<SomeBinaryOp, OtherBinaryOp> is ok, whereas AnyOfPattern<SomeBinaryOp, SomeTernaryOp> is not.

Member Data Documentation

◆ ref

template<typename... Patterns>
std::variant<const Patterns *..., std::monostate> Fortran::evaluate::match::AnyOfPattern< Patterns >::ref
mutable
Initial value:
{
std::monostate{}}

The documentation for this struct was generated from the following file: