51 return std::strong_ordering::equal;
78 template <
typename Base >
82template <
typename Base >
84 if constexpr ( std::is_integral_v < Base > ) {
86 }
else if constexpr ( std::is_same_v < Base, std::string > ) {
87 return std::string ( 1, BottomOfTheStackSymbol::instance < char > ( ) );
88 }
else if constexpr ( std::is_same_v < Base, BottomOfTheStackSymbol > ) {
90 }
else if constexpr ( std::is_same_v < Base, object::Object > ) {
92 }
else if constexpr ( std::is_same_v < Base, common::ranked_symbol < > > ) {
95 static_assert ( std::is_same_v < Base, Base >,
"Unsupported type of instance" );
Represents bottom of the stack symbol used in the visibly pushdown automata.
Definition: BottomOfTheStackSymbol.h:35
std::strong_ordering operator<=>(const BottomOfTheStackSymbol &) const
Definition: BottomOfTheStackSymbol.h:50
static Base instance()
Factory for the symbol construction of the symbol based on given type.
Definition: BottomOfTheStackSymbol.h:83
bool operator==(const BottomOfTheStackSymbol &) const
Definition: BottomOfTheStackSymbol.h:61
BottomOfTheStackSymbol()
Creates a new instance of the symbol.
friend ext::ostream & operator<<(ext::ostream &out, const BottomOfTheStackSymbol &instance)
Definition: BottomOfTheStackSymbol.cpp:16
Definition: ranked_symbol.hpp:20
Definition: BarSymbol.cpp:12