13#include <string/LinearString.h>
38 template <
class SymbolType >
44 template <
class SymbolType >
57 template <
class SymbolType >
63 template <
class SymbolType >
67 template <
class SymbolType >
78 template <
class SymbolType >
90template <
class SymbolType >
92 std::unique_ptr < regexp::FormalRegExpElement < SymbolType > > newRegExp (
regexp.getRegExp().getStructure().clone() );
94 for(
const auto& symbol :
string.getContent())
95 newRegExp = newRegExp->template accept < std::unique_ptr < regexp::FormalRegExpElement < SymbolType > >, RegExpIntegral::Formal < SymbolType > > ( symbol );
100template <
class SymbolType >
102 std::unique_ptr < regexp::UnboundedRegExpElement < SymbolType > > newRegExp (
regexp.getRegExp().getStructure().clone() );
104 for(
const auto& symbol :
string.getContent())
105 newRegExp = newRegExp->template accept < std::unique_ptr < regexp::UnboundedRegExpElement < SymbolType > >, RegExpIntegral::Unbounded < SymbolType > > ( symbol );
110template <
class SymbolType >
112 std::unique_ptr < regexp::FormalRegExpElement < SymbolType > > newRegExp =
regexp.getRegExp().getStructure().template accept < std::unique_ptr < regexp::FormalRegExpElement < SymbolType > >, RegExpIntegral::Formal < SymbolType > > ( symbol );
117template <
class SymbolType >
119 std::unique_ptr < regexp::UnboundedRegExpElement < SymbolType > > newRegExp =
regexp.getRegExp().getStructure().template accept < std::unique_ptr < regexp::UnboundedRegExpElement < SymbolType > >, RegExpIntegral::Unbounded < SymbolType > > ( symbol );
126template <
class SymbolType >
128 std::unique_ptr < regexp::FormalRegExpElement < SymbolType > > leftIntegral = alternation.getLeftElement().template accept < std::unique_ptr < regexp::FormalRegExpElement < SymbolType > >, RegExpIntegral::Formal < SymbolType > > ( argument );
129 std::unique_ptr < regexp::FormalRegExpElement < SymbolType > > rightIntegral = alternation.getRightElement().template accept < std::unique_ptr < regexp::FormalRegExpElement < SymbolType > >, RegExpIntegral::Formal < SymbolType > > ( argument );
134template <
class SymbolType >
139template <
class SymbolType >
144template <
class SymbolType >
149template <
class SymbolType >
154template <
class SymbolType >
161template <
class SymbolType >
165 for(
const UnboundedRegExpElement < SymbolType > & child : alternation.getElements())
168 return std::unique_ptr < UnboundedRegExpElement < SymbolType > > ( alt );
171template <
class SymbolType >
176 for (
const UnboundedRegExpElement < SymbolType > & element : concatenation.getElements() )
179 return std::unique_ptr < regexp::UnboundedRegExpElement < SymbolType > > ( con );
182template <
class SymbolType >
188 return std::unique_ptr < regexp::UnboundedRegExpElement < SymbolType > > ( con );
191template <
class SymbolType >
197 return std::unique_ptr < regexp::UnboundedRegExpElement < SymbolType > > ( con );
200template <
class SymbolType >
205template <
class SymbolType >
Represents the alternation operator in the regular expression. The node can have 0 to n children in l...
Definition: UnboundedRegExpAlternation.h:44
void appendElement(UnboundedRegExpElement< SymbolType > &&element)
Definition: UnboundedRegExpAlternation.h:195
Represents the concatenation operator in the regular expression. The node can have 0 to n children in...
Definition: UnboundedRegExpConcatenation.h:44
void appendElement(UnboundedRegExpElement< SymbolType > &&element)
Definition: UnboundedRegExpConcatenation.h:195
Definition: UnboundedRegExpElement.h:62
Represents the empty expression in the regular expression. The node can't have any children.
Definition: UnboundedRegExpEmpty.h:41
Represents the epsilon expression in the regular expression. The node can't have any children.
Definition: UnboundedRegExpEpsilon.h:41
Represents the iteration operator in the regular expression. The node has exactly one child.
Definition: UnboundedRegExpIteration.h:43
Represents unbounded regular expression structure. Regular expression is stored as a tree of Unbounde...
Definition: UnboundedRegExpStructure.h:47
Represents the symbol in the regular expression. The can't have any children.
Definition: UnboundedRegExpSymbol.h:42
Unbounded regular expression represents regular expression. It describes regular languages....
Definition: UnboundedRegExp.h:80
Linear string.
Definition: LinearString.h:57
typename T::SymbolType SymbolType
Definition: ReachableStates.h:176
ContainerType< ResType > transform(const ContainerType< InType, Ts ... > &in, Callback transform)
In container tranformation of all elements according to the tranform.
Definition: algorithm.hpp:150
constexpr auto visit(Visitor &&vis, Variants &&... vars)
Definition: variant.hpp:42
Definition: ToAutomaton.h:15