17template<
class SymbolType >
40template<
class SymbolType >
45template<
class SymbolType >
51template<
class SymbolType >
53 Priority tmp = Priority::ALTERNATION;
55 regexp.getStructure ( ).template accept < void, stringApi < regexp::FormalRegExpStructure < SymbolType > >::Formal > ( out );
58template <
class SymbolType >
60 Priority outerPriorityMinimum = std::get < 0 > ( output );
61 if ( outerPriorityMinimum ==
ext::any_of ( Priority::CONCATENATION, Priority::FACTOR ) ) std::get < 1 > ( output ) <<
'(';
63 std::get < 0 > ( output ) = Priority::ALTERNATION;
64 alternation.
getLeftElement ( ).template accept < void, stringApi < regexp::FormalRegExpStructure < SymbolType > >::Formal > ( output );
65 std::get < 1 > ( output ) <<
'+';
66 alternation.
getRightElement ( ).template accept < void, stringApi < regexp::FormalRegExpStructure < SymbolType > >::Formal > ( output );
68 if ( outerPriorityMinimum ==
ext::any_of ( Priority::CONCATENATION, Priority::FACTOR ) ) std::get < 1 > ( output ) <<
')';
71template <
class SymbolType >
73 Priority outerPriorityMinimum = std::get < 0 > ( output );
74 if ( outerPriorityMinimum == Priority::FACTOR ) std::get < 1 > ( output ) <<
'(';
76 std::get < 0 > ( output ) = Priority::CONCATENATION;
77 concatenation.
getLeftElement ( ).template accept < void, stringApi < regexp::FormalRegExpStructure < SymbolType > >::Formal > ( output );
78 std::get < 1 > ( output ) <<
' ';
79 std::get < 0 > ( output ) = Priority::CONCATENATION;
80 concatenation.
getRightElement ( ).template accept < void, stringApi < regexp::FormalRegExpStructure < SymbolType > >::Formal > ( output );
82 if ( outerPriorityMinimum == Priority::FACTOR ) std::get < 1 > ( output ) <<
')';
85template <
class SymbolType >
87 std::get < 0 > ( output ) = Priority::FACTOR;
88 iteration.
getElement ( ).template accept < void, stringApi < regexp::FormalRegExpStructure < SymbolType > >::Formal > ( output );
89 std::get < 1 > ( output ) <<
"*";
92template <
class SymbolType >
97template <
class SymbolType >
99 std::get < 1 > ( output ) <<
"#E";
102template <
class SymbolType >
104 std::get < 1 > ( output ) <<
"#0";
107template<
class SymbolType >
114template<
class SymbolType >
119template<
class SymbolType >
124template<
class SymbolType >
Definition: dry-comparisons.hpp:131
Class extending the tuple class from the standard library. Original reason is to allow printing of th...
Definition: tuple.hpp:42
Represents unbounded regular expression structure. Regular expression is stored as a tree of Unbounde...
Definition: UnboundedRegExpStructure.h:47
Definition: normalize.hpp:10
constexpr tuple< Elements &... > tie(Elements &... args) noexcept
Helper of extended tuple of references construction. The tuple is constructed to reffer to values in ...
Definition: tuple.hpp:218
constexpr auto visit(Visitor &&vis, Variants &&... vars)
Definition: variant.hpp:42
Definition: ToAutomaton.h:15
Definition: stringApi.hpp:26