12#include <ext/typeinfo>
19#include <string/String.h>
50 static void printTransitionMap(
const ext::map<std::pair<std::string, std::string>, std::string> & transitionMap,
ext::ostream& out);
52 template <
class SymbolType >
55 template <
class SymbolType,
class StateType >
58 template <
class SymbolType,
class StateType >
61 template <
class SymbolType,
class StateType >
64 template <
class SymbolType,
class StateType >
67 template <
class SymbolType,
class StateType >
70 template <
class SymbolType,
class StateType >
73 template <
class SymbolType,
class StateType >
76 template <
class SymbolType,
class StateType >
79 template <
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType >
82 template <
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType >
85 template <
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType >
88 template <
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType >
91 template <
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType >
94 template <
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType >
97 template <
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType >
100 template <
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType >
103 template <
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType >
106 template <
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType >
109 template <
class SymbolType,
class StateType >
112 template <
class SymbolType,
class StateType >
115 template <
class SymbolType,
class StateType >
118 template <
class SymbolType,
class StateType >
121 template <
class SymbolType,
class StateType >
124 template <
class SymbolType,
class StateType >
127 template <
class SymbolType,
class StateType >
130 template <
class SymbolType,
class StateType >
133 template <
class SymbolType,
class StateType >
136 template <
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType >
139 template <
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType >
142 template <
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType >
145 template <
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType >
148 template <
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType >
151 template <
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType >
154 template <
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType >
157 template <
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType >
160 template <
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType >
163 template <
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType >
166 template <
class SymbolType,
class StateType >
177template <
class SymbolType,
class StateType >
179 out <<
"\\begin{center}\n";
180 out <<
"\\begin{picture}(,)(,)\n";
183 bool initial =
false;
193 if(initial ||
final) {
194 out <<
"\\node[Nmarks=";
213 out <<
"\\end{center}\n";
214 out <<
"\\end{picture}\n";
217template <
class SymbolType,
class StateType >
219 out <<
"\\begin{center}\n";
220 out <<
"\\begin{picture}(,)(,)\n";
223 bool initial =
false;
233 if(initial ||
final) {
234 out <<
"\\node[Nmarks=";
253 out <<
"\\end{center}\n";
254 out <<
"\\end{picture}\n";
257template <
class SymbolType,
class StateType >
259 out <<
"\\begin{center}\n";
260 out <<
"\\begin{picture}(,)(,)\n";
263 bool initial =
false;
273 if(initial ||
final) {
274 out <<
"\\node[Nmarks=";
293 out <<
"\\end{center}\n";
294 out <<
"\\end{picture}\n";
297template <
class SymbolType,
class StateType >
299 out <<
"\\begin{center}\n";
300 out <<
"\\begin{picture}(,)(,)\n";
303 bool initial =
false;
313 if(initial ||
final) {
314 out <<
"\\node[Nmarks=";
333 out <<
"\\end{center}\n";
334 out <<
"\\end{picture}\n";
337template <
class SymbolType,
class StateType >
339 out <<
"\\begin{center}\n";
340 out <<
"\\begin{picture}(,)(,)\n";
343 bool initial =
false;
353 if(initial ||
final) {
354 out <<
"\\node[Nmarks=";
373 out <<
"\\end{center}\n";
374 out <<
"\\end{picture}\n";
377template <
class SymbolType,
class StateType >
379 out <<
"\\begin{center}\n";
380 out <<
"\\begin{picture}(,)(,)\n";
383 bool initial =
false;
393 if(initial ||
final) {
394 out <<
"\\node[Nmarks=";
413 out <<
"\\end{center}\n";
414 out <<
"\\end{picture}\n";
417template <
class SymbolType,
class StateType >
422template <
class SymbolType,
class StateType >
427template <
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType >
429 out <<
"\\begin{center}\n";
430 out <<
"\\begin{picture}(,)(,)\n";
433 bool initial =
false;
443 if(initial ||
final) {
444 out <<
"\\node[Nmarks=";
463 out <<
"\\end{center}\n";
464 out <<
"\\end{picture}\n";
467template <
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType >
469 out <<
"\\begin{center}\n";
470 out <<
"\\begin{picture}(,)(,)\n";
473 bool initial =
false;
483 if(initial ||
final) {
484 out <<
"\\node[Nmarks=";
503 out <<
"\\end{center}\n";
504 out <<
"\\end{picture}\n";
507template <
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType >
509 out <<
"\\begin{center}\n";
510 out <<
"\\begin{picture}(,)(,)\n";
513 bool initial =
false;
523 if(initial ||
final) {
524 out <<
"\\node[Nmarks=";
543 out <<
"\\end{center}\n";
544 out <<
"\\end{picture}\n";
547template <
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType >
549 out <<
"\\begin{center}\n";
550 out <<
"\\begin{picture}(,)(,)\n";
553 bool initial =
false;
563 if(initial ||
final) {
564 out <<
"\\node[Nmarks=";
583 out <<
"\\end{center}\n";
584 out <<
"\\end{picture}\n";
587template <
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType >
589 out <<
"\\begin{center}\n";
590 out <<
"\\begin{picture}(,)(,)\n";
593 bool initial =
false;
603 if(initial ||
final) {
604 out <<
"\\node[Nmarks=";
623 out <<
"\\end{center}\n";
624 out <<
"\\end{picture}\n";
627template <
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType >
629 out <<
"\\begin{center}\n";
630 out <<
"\\begin{picture}(,)(,)\n";
633 bool initial =
false;
643 if(initial ||
final) {
644 out <<
"\\node[Nmarks=";
663 out <<
"\\end{center}\n";
664 out <<
"\\end{picture}\n";
667template <
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType >
669 out <<
"\\begin{center}\n";
670 out <<
"\\begin{picture}(,)(,)\n";
673 bool initial =
false;
683 if(initial ||
final) {
684 out <<
"\\node[Nmarks=";
703 out <<
"\\end{center}\n";
704 out <<
"\\end{picture}\n";
707template <
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType >
709 out <<
"\\begin{center}\n";
710 out <<
"\\begin{picture}(,)(,)\n";
713 bool initial =
false;
723 if(initial ||
final) {
724 out <<
"\\node[Nmarks=";
743 out <<
"\\end{center}\n";
744 out <<
"\\end{picture}\n";
747template <
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType >
749 out <<
"\\begin{center}\n";
750 out <<
"\\begin{picture}(,)(,)\n";
753 bool initial =
false;
763 if(initial ||
final) {
764 out <<
"\\node[Nmarks=";
783 out <<
"\\end{center}\n";
784 out <<
"\\end{picture}\n";
787template <
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType >
789 out <<
"\\begin{center}\n";
790 out <<
"\\begin{picture}(,)(,)\n";
793 bool initial =
false;
803 if(initial ||
final) {
804 out <<
"\\node[Nmarks=";
823 out <<
"\\end{center}\n";
824 out <<
"\\end{picture}\n";
827template <
class SymbolType,
class StateType >
829 out <<
"\\begin{center}\n";
830 out <<
"\\begin{picture}(,)(,)\n";
833 bool initial =
false;
843 if(initial ||
final) {
844 out <<
"\\node[Nmarks=";
863 out <<
"\\end{center}\n";
864 out <<
"\\end{picture}\n";
867template<
class SymbolType >
869 if (stackSymbols.empty ( )) {
870 return "$\\varepsilon$";
873 std::string symbols =
"";
875 for (
const SymbolType & symbol : stackSymbols) {
884template<
class SymbolType,
class StateType>
891 if (transition.first.second.is_epsilon()) {
892 symbol =
"$\\varepsilon$";
897 auto mapIterator = transitionMap.find(key);
898 if (mapIterator == transitionMap.
end()) {
901 mapIterator->second +=
", " + symbol;
904 printTransitionMap(transitionMap, out);
907template<
class SymbolType,
class StateType>
915 auto mapIterator = transitionMap.find(key);
916 if (mapIterator == transitionMap.
end()) {
919 mapIterator->second +=
", " + symbol;
922 printTransitionMap(transitionMap, out);
925template<
class SymbolType,
class StateType>
933 auto mapIterator = transitionMap.find(key);
934 if (mapIterator == transitionMap.
end()) {
937 mapIterator->second +=
", " + symbol;
940 printTransitionMap(transitionMap, out);
943template<
class SymbolType,
class StateType>
951 auto mapIterator = transitionMap.find(key);
952 if (mapIterator == transitionMap.
end()) {
955 mapIterator->second +=
", " + symbol;
958 printTransitionMap(transitionMap, out);
961template<
class SymbolType,
class StateType>
970 auto mapIterator = transitionMap.find(key);
971 if (mapIterator == transitionMap.
end()) {
974 mapIterator->second +=
", " + symbol;
977 printTransitionMap(transitionMap, out);
980template<
class SymbolType,
class StateType>
989 auto mapIterator = transitionMap.find(key);
990 if (mapIterator == transitionMap.
end()) {
993 mapIterator->second +=
", " + symbol;
996 printTransitionMap(transitionMap, out);
999template<
class SymbolType,
class StateType>
1004template<
class SymbolType,
class StateType>
1009template<
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType>
1015 auto mapIterator = transitionMap.find(key);
1018 if (std::get<1>(transition.first).is_epsilon ( ) ) {
1019 symbol =
"$\\varepsilon;$";
1026 symbol += getStackSymbols(std::get<2>(transition.first));
1027 symbol +=
"\\rarrow";
1028 symbol += getStackSymbols(transition.second.second);
1030 if (mapIterator == transitionMap.
end()) {
1033 mapIterator->second +=
"; " + symbol;
1037 printTransitionMap(transitionMap, out);
1040template<
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType>
1046 auto mapIterator = transitionMap.find(key);
1049 if (std::get<1>(transition.first).is_epsilon ( )) {
1050 symbol =
"$\\varepsilon;$";
1058 symbol +=
"\\rarrow";
1059 symbol += getStackSymbols(transition.second.second);
1061 if (mapIterator == transitionMap.
end()) {
1064 mapIterator->second +=
"; " + symbol;
1068 printTransitionMap(transitionMap, out);
1071template<
class SymbolType,
class PushdownStoreSymbolType,
class StateType>
1077 const auto& pop = symbolToPDSOperation.find(std::get<1>(transition.first))->second.first;
1078 const auto& push = symbolToPDSOperation.find(std::get<1>(transition.first))->second.second;
1080 const auto& to = transition.second;
1082 auto mapIterator = transitionMap.find(key);
1088 symbol += getStackSymbols(pop);
1089 symbol +=
"\\rarrow";
1090 symbol += getStackSymbols(push);
1092 if (mapIterator == transitionMap.
end()) {
1095 mapIterator->second +=
"; " + symbol;
1099 printTransitionMap(transitionMap, out);
1102template<
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType>
1108 const auto& pop = symbolToPDSOperation.find(std::get<1>(transition.first))->second.first;
1109 const auto& push = symbolToPDSOperation.find(std::get<1>(transition.first))->second.second;
1112 auto mapIterator = transitionMap.find(key);
1118 symbol += getStackSymbols(pop);
1119 symbol +=
"\\rarrow";
1120 symbol += getStackSymbols(push);
1122 if (mapIterator == transitionMap.
end()) {
1125 mapIterator->second +=
"; " + symbol;
1129 printTransitionMap(transitionMap, out);
1132template<
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType>
1138 auto mapIterator = transitionMap.find(key);
1144 symbol +=
"$\\varepsilon;$";
1145 symbol +=
"\\rarrow";
1148 if (mapIterator == transitionMap.
end()) {
1151 mapIterator->second +=
"; " + symbol;
1157 auto mapIterator = transitionMap.find(key);
1164 symbol +=
"\\rarrow";
1165 symbol +=
"$\\varepsilon;$";
1167 if (mapIterator == transitionMap.
end()) {
1170 mapIterator->second +=
"; " + symbol;
1176 auto mapIterator = transitionMap.find(key);
1182 symbol +=
"$\\varepsilon;$";
1183 symbol +=
"\\rarrow";
1184 symbol +=
"$\\varepsilon;$";
1186 if (mapIterator == transitionMap.
end()) {
1189 mapIterator->second +=
"; " + symbol;
1193 printTransitionMap(transitionMap, out);
1196template<
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType>
1202 auto mapIterator = transitionMap.find(key);
1208 symbol +=
"$\\varepsilon;$";
1209 symbol +=
"\\rarrow";
1212 if (mapIterator == transitionMap.
end()) {
1215 mapIterator->second +=
"; " + symbol;
1221 auto mapIterator = transitionMap.find(key);
1228 symbol +=
"\\rarrow";
1229 symbol +=
"$\\varepsilon;$";
1231 if (mapIterator == transitionMap.
end()) {
1234 mapIterator->second +=
"; " + symbol;
1240 auto mapIterator = transitionMap.find(key);
1246 symbol +=
"$\\varepsilon;$";
1247 symbol +=
"\\rarrow";
1248 symbol +=
"$\\varepsilon;$";
1250 if (mapIterator == transitionMap.
end()) {
1253 mapIterator->second +=
"; " + symbol;
1257 printTransitionMap(transitionMap, out);
1260template<
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType>
1266 auto mapIterator = transitionMap.find(key);
1269 if(transition.first.second.is_epsilon ( ))
1270 symbol =
"$\\varepsilon;$";
1276 symbol +=
"$\\varepsilon;$";
1277 symbol +=
"\\rarrow";
1280 if (mapIterator == transitionMap.
end()) {
1283 mapIterator->second +=
"; " + symbol;
1289 auto mapIterator = transitionMap.find(key);
1292 if(std::get<1>(transition.first).is_epsilon ( ))
1293 symbol =
"$\\varepsilon;$";
1300 symbol +=
"\\rarrow";
1301 symbol +=
"$\\varepsilon;$";
1303 if (mapIterator == transitionMap.
end()) {
1306 mapIterator->second +=
"; " + symbol;
1312 auto mapIterator = transitionMap.find(key);
1315 if(transition.first.second.is_epsilon ( ))
1316 symbol =
"$\\varepsilon;$";
1322 symbol +=
"$\\varepsilon;$";
1323 symbol +=
"\\rarrow";
1324 symbol +=
"$\\varepsilon;$";
1326 if (mapIterator == transitionMap.
end()) {
1329 mapIterator->second +=
"; " + symbol;
1333 printTransitionMap(transitionMap, out);
1336template<
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType>
1342 auto mapIterator = transitionMap.find(key);
1345 if(transition.first.second.is_epsilon ( ))
1346 symbol =
"$\\varepsilon;$";
1352 symbol +=
"$\\varepsilon;$";
1353 symbol +=
"\\rarrow";
1356 if (mapIterator == transitionMap.
end()) {
1359 mapIterator->second +=
"; " + symbol;
1365 auto mapIterator = transitionMap.find(key);
1368 if(std::get<1>(transition.first).is_epsilon ( ))
1369 symbol =
"$\\varepsilon;$";
1376 symbol +=
"\\rarrow";
1377 symbol +=
"$\\varepsilon;$";
1379 if (mapIterator == transitionMap.
end()) {
1382 mapIterator->second +=
"; " + symbol;
1388 auto mapIterator = transitionMap.find(key);
1391 if(transition.first.second.is_epsilon ( ))
1392 symbol =
"$\\varepsilon;$";
1398 symbol +=
"$\\varepsilon;$";
1399 symbol +=
"\\rarrow";
1400 symbol +=
"$\\varepsilon;$";
1402 if (mapIterator == transitionMap.
end()) {
1405 mapIterator->second +=
"; " + symbol;
1409 printTransitionMap(transitionMap, out);
1412template<
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType>
1418 auto mapIterator = transitionMap.find(key);
1421 if (std::get<1>(transition.first).is_epsilon ( ) ) {
1422 symbol =
"$\\varepsilon;$";
1429 symbol += getStackSymbols(std::get<2>(transition.first));
1430 symbol +=
"\\rarrow";
1431 symbol += getStackSymbols(transition.second.second);
1433 if (mapIterator == transitionMap.
end()) {
1436 mapIterator->second +=
"; " + symbol;
1440 printTransitionMap(transitionMap, out);
1443template<
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType>
1449 auto mapIterator = transitionMap.find(key);
1452 if (std::get<1>(transition.first).is_epsilon ( )) {
1453 symbol =
"$\\varepsilon;$";
1461 symbol +=
"\\rarrow";
1462 symbol += getStackSymbols(transition.second.second);
1464 if (mapIterator == transitionMap.
end()) {
1467 mapIterator->second +=
"; " + symbol;
1471 printTransitionMap(transitionMap, out);
1474template<
class SymbolType,
class StateType>
1480 auto mapIterator = transitionMap.find(key);
1486 switch(std::get<2>(transition.second)) {
1488 symbol +=
"$\\leftarrow$";
1491 symbol +=
"$\\rightarrow$";
1494 symbol +=
"$\\times$";
1500 if (mapIterator == transitionMap.
end()) {
1503 mapIterator->second +=
"; " + symbol;
1507 printTransitionMap(transitionMap, out);
Compact nondeterministic finite automaton. Accepts regular languages. The automaton has a list of sym...
Definition: CompactNFA.h:78
const ext::set< StateType > & getFinalStates() const &
Definition: CompactNFA.h:232
const ext::multimap< ext::pair< StateType, ext::vector< SymbolType > >, StateType > & getTransitions() const &
Definition: CompactNFA.h:555
const ext::set< StateType > & getStates() const &
Definition: CompactNFA.h:183
const StateType & getInitialState() const &
Definition: CompactNFA.h:154
Deterministic finite automaton. Accepts regular languages.
Definition: DFA.h:71
const ext::set< StateType > & getFinalStates() const &
Definition: DFA.h:183
const ext::map< ext::pair< StateType, SymbolType >, StateType > & getTransitions() const &
Definition: DFA.h:473
const StateType & getInitialState() const &
Definition: DFA.h:105
const ext::set< StateType > & getStates() const &
Definition: DFA.h:134
Nondeterministic finite tree automaton without epsilon transitions. Accepts regular tree languages.
Definition: DFTA.h:74
Deterministic pushdown automaton. Accepts subset of context free languages.
Definition: DPDA.h:78
const ext::set< StateType > & getStates() const &
Definition: DPDA.h:145
const ext::map< ext::tuple< StateType, common::symbol_or_epsilon< InputSymbolType >, ext::vector< PushdownStoreSymbolType > >, ext::pair< StateType, ext::vector< PushdownStoreSymbolType > > > & getTransitions() const &
Definition: DPDA.h:682
const ext::set< StateType > & getFinalStates() const &
Definition: DPDA.h:194
const StateType & getInitialState() const &
Definition: DPDA.h:116
Epsilon nondeterministic finite automaton. Accepts regular languages.
Definition: EpsilonNFA.h:74
const ext::set< StateType > & getStates() const &
Definition: EpsilonNFA.h:158
const ext::set< StateType > & getFinalStates() const &
Definition: EpsilonNFA.h:207
const ext::multimap< ext::pair< StateType, common::symbol_or_epsilon< SymbolType > >, StateType > & getTransitions() const &
Definition: EpsilonNFA.h:666
const StateType & getInitialState() const &
Definition: EpsilonNFA.h:129
Extended nondeterministic finite automaton. Accepts regular languages. The automaton has a regular ex...
Definition: ExtendedNFA.h:80
const StateType & getInitialState() const &
Definition: ExtendedNFA.h:156
const ext::multimap< ext::pair< StateType, regexp::UnboundedRegExpStructure< SymbolType > >, StateType > & getTransitions() const &
Definition: ExtendedNFA.h:581
const ext::set< StateType > & getStates() const &
Definition: ExtendedNFA.h:185
const ext::set< StateType > & getFinalStates() const &
Definition: ExtendedNFA.h:234
Nondeterministic finite automaton with multiple initial states. Accepts regular languages.
Definition: MultiInitialStateNFA.h:69
const ext::set< StateType > & getInitialStates() const &
Definition: MultiInitialStateNFA.h:117
const ext::set< StateType > & getStates() const &
Definition: MultiInitialStateNFA.h:166
const ext::multimap< ext::pair< StateType, SymbolType >, StateType > & getTransitions() const &
Definition: MultiInitialStateNFA.h:520
const ext::set< StateType > & getFinalStates() const &
Definition: MultiInitialStateNFA.h:215
Nondeterministic finite automaton. Accepts regular languages.
Definition: NFA.h:66
const ext::set< StateType > & getStates() const &
Definition: NFA.h:136
const StateType & getInitialState() const &
Definition: NFA.h:107
const ext::multimap< ext::pair< StateType, SymbolType >, StateType > & getTransitions() const &
Definition: NFA.h:484
const ext::set< StateType > & getFinalStates() const &
Definition: NFA.h:185
Nondeterministic finite tree automaton without epsilon transitions. Accepts regular tree languages.
Definition: NFTA.h:72
const ext::set< StateType > & getFinalStates() const &
Definition: NPDA.h:197
const StateType & getInitialState() const &
Definition: NPDA.h:119
const ext::set< StateType > & getStates() const &
Definition: NPDA.h:148
const ext::multimap< ext::tuple< StateType, common::symbol_or_epsilon< InputSymbolType >, ext::vector< PushdownStoreSymbolType > >, ext::pair< StateType, ext::vector< PushdownStoreSymbolType > > > & getTransitions() const &
Definition: NPDA.h:644
Deterministic single tape turing machine. Accepts recursive languages.
Definition: OneTapeDTM.h:71
const StateType & getInitialState() const &
Definition: OneTapeDTM.h:108
const ext::set< StateType > & getFinalStates() const &
Definition: OneTapeDTM.h:186
const ext::map< ext::pair< StateType, SymbolType >, ext::tuple< StateType, SymbolType, Shift > > & getTransitions() const &
Definition: OneTapeDTM.h:526
const ext::set< StateType > & getStates() const &
Definition: OneTapeDTM.h:137
Deterministic real time height deterministic pushdown automaton. Accepts subset of context free langu...
Definition: RealTimeHeightDeterministicDPDA.h:89
const StateType & getInitialState() const &
Definition: RealTimeHeightDeterministicDPDA.h:149
const ext::map< ext::pair< StateType, common::symbol_or_epsilon< InputSymbolType > >, ext::pair< StateType, PushdownStoreSymbolType > > & getCallTransitions() const &
Definition: RealTimeHeightDeterministicDPDA.h:1062
const ext::map< ext::pair< StateType, common::symbol_or_epsilon< InputSymbolType > >, StateType > & getLocalTransitions() const &
Definition: RealTimeHeightDeterministicDPDA.h:1082
const ext::map< ext::tuple< StateType, common::symbol_or_epsilon< InputSymbolType >, PushdownStoreSymbolType >, StateType > & getReturnTransitions() const &
Definition: RealTimeHeightDeterministicDPDA.h:1072
const ext::set< StateType > & getStates() const &
Definition: RealTimeHeightDeterministicDPDA.h:178
const ext::set< StateType > & getFinalStates() const &
Definition: RealTimeHeightDeterministicDPDA.h:227
Nondeterministic real time height deterministic pushdown automaton. Accepts subset of context free la...
Definition: RealTimeHeightDeterministicNPDA.h:76
const ext::set< StateType > & getInitialStates() const &
Definition: RealTimeHeightDeterministicNPDA.h:175
const ext::set< StateType > & getStates() const &
Definition: RealTimeHeightDeterministicNPDA.h:126
const ext::multimap< ext::pair< StateType, common::symbol_or_epsilon< InputSymbolType > >, StateType > & getLocalTransitions() const &
Definition: RealTimeHeightDeterministicNPDA.h:1004
const ext::multimap< ext::pair< StateType, common::symbol_or_epsilon< InputSymbolType > >, ext::pair< StateType, PushdownStoreSymbolType > > & getCallTransitions() const &
Definition: RealTimeHeightDeterministicNPDA.h:984
const ext::set< StateType > & getFinalStates() const &
Definition: RealTimeHeightDeterministicNPDA.h:224
const ext::multimap< ext::tuple< StateType, common::symbol_or_epsilon< InputSymbolType >, PushdownStoreSymbolType >, StateType > & getReturnTransitions() const &
Definition: RealTimeHeightDeterministicNPDA.h:994
Deterministic pushdown automaton requiring a symbol pop from pushdown store on each transition use....
Definition: SinglePopDPDA.h:78
const StateType & getInitialState() const &
Definition: SinglePopDPDA.h:116
const ext::set< StateType > & getFinalStates() const &
Definition: SinglePopDPDA.h:194
const ext::set< StateType > & getStates() const &
Definition: SinglePopDPDA.h:145
const ext::map< ext::tuple< StateType, common::symbol_or_epsilon< InputSymbolType >, PushdownStoreSymbolType >, ext::pair< StateType, ext::vector< PushdownStoreSymbolType > > > & getTransitions() const &
Definition: SinglePopDPDA.h:639
Definition: SinglePopNPDA.h:72
const StateType & getInitialState() const &
Definition: SinglePopNPDA.h:110
const ext::multimap< ext::tuple< StateType, common::symbol_or_epsilon< InputSymbolType >, PushdownStoreSymbolType >, ext::pair< StateType, ext::vector< PushdownStoreSymbolType > > > & getTransitions() const &
Definition: SinglePopNPDA.h:617
const ext::set< StateType > & getStates() const &
Definition: SinglePopNPDA.h:139
const ext::set< StateType > & getFinalStates() const &
Definition: SinglePopNPDA.h:188
Deterministic visibly pushdown automaton. Accepts subset of context free languages.
Definition: VisiblyPushdownDPDA.h:86
const ext::map< ext::tuple< StateType, InputSymbolType, PushdownStoreSymbolType >, StateType > & getReturnTransitions() const &
Definition: VisiblyPushdownDPDA.h:899
const ext::map< ext::pair< StateType, InputSymbolType >, StateType > & getLocalTransitions() const &
Definition: VisiblyPushdownDPDA.h:909
const ext::set< StateType > & getFinalStates() const &
Definition: VisiblyPushdownDPDA.h:224
const ext::map< ext::pair< StateType, InputSymbolType >, ext::pair< StateType, PushdownStoreSymbolType > > & getCallTransitions() const &
Definition: VisiblyPushdownDPDA.h:889
const ext::set< StateType > & getStates() const &
Definition: VisiblyPushdownDPDA.h:175
const StateType & getInitialState() const &
Definition: VisiblyPushdownDPDA.h:146
Nondeterministic visibly pushdown automaton. Accepts subset of context free languages.
Definition: VisiblyPushdownNPDA.h:81
const ext::set< StateType > & getInitialStates() const &
Definition: VisiblyPushdownNPDA.h:131
const ext::set< StateType > & getStates() const &
Definition: VisiblyPushdownNPDA.h:180
const ext::multimap< ext::pair< StateType, InputSymbolType >, StateType > & getLocalTransitions() const &
Definition: VisiblyPushdownNPDA.h:884
const ext::set< StateType > & getFinalStates() const &
Definition: VisiblyPushdownNPDA.h:229
const ext::multimap< ext::tuple< StateType, InputSymbolType, PushdownStoreSymbolType >, StateType > & getReturnTransitions() const &
Definition: VisiblyPushdownNPDA.h:874
const ext::multimap< ext::pair< StateType, InputSymbolType >, ext::pair< StateType, PushdownStoreSymbolType > > & getCallTransitions() const &
Definition: VisiblyPushdownNPDA.h:864
Definition: GasTexConverter.h:49
static std::string convert(const T &automaton)
Definition: GasTexConverter.h:170
static void convert(ext::ostream &out, const automaton::DFA< SymbolType, StateType > &a)
Definition: GasTexConverter.h:298
Basic exception from which all other exceptions are derived.
Definition: CommonException.h:21
Class extending the map class from the standard library. Original reason is to allow printing of the ...
Definition: map.hpp:48
std::pair< iterator, bool > insert(const T &key, const R &value)
Insert variant with explicit key and value parameters.
Definition: map.hpp:118
auto end() &
Inherited behavior of end for non-const instance.
Definition: map.hpp:215
std::string str() const &
Definition: sstream.cpp:29
Class extending the vector class from the standard library. Original reason is to allow printing of t...
Definition: vector.hpp:45
static std::string toString(const T &data)
Definition: StringDataFactory.hpp:89
int i
Definition: AllEpsilonClosure.h:118
typename T::SymbolType SymbolType
Definition: ReachableStates.h:176
Definition: ToGrammar.h:31
Definition: converterCommon.hpp:8
auto replace
Definition: converterCommon.hpp:19
constexpr auto make_pair(T1 &&x, T2 &&y)
Definition: pair.hpp:79
string::LinearString< char > stringFrom(const std::string &string)
Definition: String.cpp:10