diff --git a/alib2data/src/automaton/FSM/CompactDFA.cpp b/alib2data/src/automaton/FSM/CompactDFA.cpp index fc7a7d7587c9a7a98072343f0b9c96640fdf18d5..45dae6256d3e6d2b05204e5779d994340f3a9296 100644 --- a/alib2data/src/automaton/FSM/CompactDFA.cpp +++ b/alib2data/src/automaton/FSM/CompactDFA.cpp @@ -11,6 +11,8 @@ #include <registration/CastRegistration.hpp> #include <registration/ComponentRegistration.hpp> +template class automaton::CompactDFA < >; + namespace { static auto components = registration::ComponentRegister < automaton::CompactDFA < > > ( ); diff --git a/alib2data/src/automaton/FSM/CompactDFA.h b/alib2data/src/automaton/FSM/CompactDFA.h index ebf6bd470bddaf5c382a6832b0a7e6be523be458..d76da10a7b0a36e8a6756c97cf5081b83818375f 100644 --- a/alib2data/src/automaton/FSM/CompactDFA.h +++ b/alib2data/src/automaton/FSM/CompactDFA.h @@ -736,4 +736,6 @@ struct normalize < automaton::CompactDFA < SymbolType, StateType > > { } /* namespace core */ +extern template class automaton::CompactDFA < >; + #endif /* COMPACT_DFA_H_ */ diff --git a/alib2data/src/automaton/FSM/CompactNFA.cpp b/alib2data/src/automaton/FSM/CompactNFA.cpp index 12b1c47d4a52d0d3b70fd466a72a8b28dca42490..3914c4bf15fbea00812ca7a6a12088d6a562e538 100644 --- a/alib2data/src/automaton/FSM/CompactNFA.cpp +++ b/alib2data/src/automaton/FSM/CompactNFA.cpp @@ -11,6 +11,8 @@ #include <registration/CastRegistration.hpp> #include <registration/ComponentRegistration.hpp> +template class automaton::CompactNFA < >; + namespace { static auto components = registration::ComponentRegister < automaton::CompactNFA < > > ( ); diff --git a/alib2data/src/automaton/FSM/CompactNFA.h b/alib2data/src/automaton/FSM/CompactNFA.h index 51dcad7fbd82d2fd30592d9417a0508385ee2b97..f32eceb932bf55480a4063754d345e3e4bd551cc 100644 --- a/alib2data/src/automaton/FSM/CompactNFA.h +++ b/alib2data/src/automaton/FSM/CompactNFA.h @@ -819,4 +819,6 @@ struct normalize < automaton::CompactNFA < SymbolType, StateType > > { } /* namespace core */ +extern template class automaton::CompactNFA < >; + #endif /* COMPACT_NFA_H_ */ diff --git a/alib2data/src/automaton/FSM/DFA.cpp b/alib2data/src/automaton/FSM/DFA.cpp index f23df78b19bbb92cdfa6a6b5f8a131a4c7c25c2c..fb104a84c1c1feeb8334268f4749b5a75ffaca92 100644 --- a/alib2data/src/automaton/FSM/DFA.cpp +++ b/alib2data/src/automaton/FSM/DFA.cpp @@ -9,6 +9,8 @@ #include <registration/ValuePrinterRegistration.hpp> +template class automaton::DFA < >; + namespace { static auto valuePrinter = registration::ValuePrinterRegister < automaton::DFA < > > ( ); diff --git a/alib2data/src/automaton/FSM/DFA.h b/alib2data/src/automaton/FSM/DFA.h index 0849a868de0eff87c5fc25cb4dbb860f1bd01206..8da96a8d069980fffe1d5bc63290f28293be705a 100644 --- a/alib2data/src/automaton/FSM/DFA.h +++ b/alib2data/src/automaton/FSM/DFA.h @@ -733,4 +733,6 @@ struct normalize < automaton::DFA < SymbolType, StateType > > { } /* namespace core */ +extern template class automaton::DFA < >; + #endif /* DFA_H_ */ diff --git a/alib2data/src/automaton/FSM/EpsilonNFA.cpp b/alib2data/src/automaton/FSM/EpsilonNFA.cpp index d02a3c8dbf18a70154a03668d5a616f59183982d..2be08061882064a85991d13d381c5f3f93a20434 100644 --- a/alib2data/src/automaton/FSM/EpsilonNFA.cpp +++ b/alib2data/src/automaton/FSM/EpsilonNFA.cpp @@ -10,6 +10,8 @@ #include <registration/ValuePrinterRegistration.hpp> #include <registration/CastRegistration.hpp> +template class automaton::EpsilonNFA < >; + namespace { static auto valuePrinter = registration::ValuePrinterRegister < automaton::EpsilonNFA < > > ( ); diff --git a/alib2data/src/automaton/FSM/EpsilonNFA.h b/alib2data/src/automaton/FSM/EpsilonNFA.h index 04b472d5f356b1e34a43be00ad1ef1db95539a6d..63f910d777343d0f44704b01764180f35a47e8a4 100644 --- a/alib2data/src/automaton/FSM/EpsilonNFA.h +++ b/alib2data/src/automaton/FSM/EpsilonNFA.h @@ -1030,4 +1030,6 @@ struct normalize < automaton::EpsilonNFA < SymbolType, EpsilonType, StateType > } /* namespace core */ +extern template class automaton::EpsilonNFA < >; + #endif /* EPSILON_NFA_H_ */ diff --git a/alib2data/src/automaton/FSM/ExtendedNFA.cpp b/alib2data/src/automaton/FSM/ExtendedNFA.cpp index 5da0b65751759100cde6ffc784cab6dafae6ce18..f00e5777b5a5217b5cfc0519ab20f47fa5f0878f 100644 --- a/alib2data/src/automaton/FSM/ExtendedNFA.cpp +++ b/alib2data/src/automaton/FSM/ExtendedNFA.cpp @@ -10,6 +10,8 @@ #include <registration/ValuePrinterRegistration.hpp> #include <registration/CastRegistration.hpp> +template class automaton::ExtendedNFA < >; + namespace { static auto valuePrinter = registration::ValuePrinterRegister < automaton::ExtendedNFA < > > ( ); diff --git a/alib2data/src/automaton/FSM/ExtendedNFA.h b/alib2data/src/automaton/FSM/ExtendedNFA.h index 28095bf5c177ff5a9b1b230301cbebde756a57ee..63275de96fe38e31cabc15cb20b785893782ab2f 100644 --- a/alib2data/src/automaton/FSM/ExtendedNFA.h +++ b/alib2data/src/automaton/FSM/ExtendedNFA.h @@ -845,4 +845,6 @@ struct normalize < automaton::ExtendedNFA < SymbolType, StateType > > { } /* namespace core */ +extern template class automaton::ExtendedNFA < >; + #endif /* EXTENDED_NFA_H_ */ diff --git a/alib2data/src/automaton/FSM/MultiInitialStateEpsilonNFA.cpp b/alib2data/src/automaton/FSM/MultiInitialStateEpsilonNFA.cpp index 8c5cda1552ab35e52b978664665bc8b87622700f..fd1a3472862f475f890d9938bb3f1eacc40e99fb 100644 --- a/alib2data/src/automaton/FSM/MultiInitialStateEpsilonNFA.cpp +++ b/alib2data/src/automaton/FSM/MultiInitialStateEpsilonNFA.cpp @@ -10,6 +10,8 @@ #include <registration/ValuePrinterRegistration.hpp> #include <registration/CastRegistration.hpp> +template class automaton::MultiInitialStateEpsilonNFA < >; + namespace { static auto valuePrinter = registration::ValuePrinterRegister < automaton::MultiInitialStateEpsilonNFA < > > ( ); diff --git a/alib2data/src/automaton/FSM/MultiInitialStateEpsilonNFA.h b/alib2data/src/automaton/FSM/MultiInitialStateEpsilonNFA.h index 2aa8b6e86ac18b2815ed53f13a0f1cd8c9de603b..9ac494ad1e44792e8db71ea54c3245a92d5258d0 100644 --- a/alib2data/src/automaton/FSM/MultiInitialStateEpsilonNFA.h +++ b/alib2data/src/automaton/FSM/MultiInitialStateEpsilonNFA.h @@ -1076,4 +1076,6 @@ struct normalize < automaton::MultiInitialStateEpsilonNFA < SymbolType, EpsilonT } /* namespace core */ +extern template class automaton::MultiInitialStateEpsilonNFA < >; + #endif /* MULTI_INITIAL_STATE_EPSILON_NFA_H_ */ diff --git a/alib2data/src/automaton/FSM/MultiInitialStateNFA.cpp b/alib2data/src/automaton/FSM/MultiInitialStateNFA.cpp index a1bd29f7647131382f5db297397a9fc156c95845..0b1fb291d8518e8804809da0b67cf23f3915d270 100644 --- a/alib2data/src/automaton/FSM/MultiInitialStateNFA.cpp +++ b/alib2data/src/automaton/FSM/MultiInitialStateNFA.cpp @@ -10,6 +10,8 @@ #include <registration/ValuePrinterRegistration.hpp> #include <registration/CastRegistration.hpp> +template class automaton::MultiInitialStateNFA < >; + namespace { static auto valuePrinter = registration::ValuePrinterRegister < automaton::MultiInitialStateNFA < > > ( ); diff --git a/alib2data/src/automaton/FSM/MultiInitialStateNFA.h b/alib2data/src/automaton/FSM/MultiInitialStateNFA.h index c105ccf8d21bb29ab1b97dbad3cc2c13488bdaab..847eab355219bcce26c64c4624b8b47c44a2c2cd 100644 --- a/alib2data/src/automaton/FSM/MultiInitialStateNFA.h +++ b/alib2data/src/automaton/FSM/MultiInitialStateNFA.h @@ -804,4 +804,6 @@ struct normalize < automaton::MultiInitialStateNFA < SymbolType, StateType > > { } /* namespace core */ +extern template class automaton::MultiInitialStateNFA < >; + #endif /* MULTI_INITIAL_STATE_NFA_H_ */ diff --git a/alib2data/src/automaton/FSM/NFA.cpp b/alib2data/src/automaton/FSM/NFA.cpp index b49a674bcef79169d4886e4eb5ca8c87e4d9619e..704884f796bdb7d208cea81faeeb2589b329980d 100644 --- a/alib2data/src/automaton/FSM/NFA.cpp +++ b/alib2data/src/automaton/FSM/NFA.cpp @@ -10,6 +10,8 @@ #include <registration/ValuePrinterRegistration.hpp> #include <registration/CastRegistration.hpp> +template class automaton::NFA < >; + namespace { static auto valuePrinter = registration::ValuePrinterRegister < automaton::NFA < > > ( ); diff --git a/alib2data/src/automaton/FSM/NFA.h b/alib2data/src/automaton/FSM/NFA.h index ce93f57ad7ffa85ab332386b731be5e69c8cb44f..2f874ef1488b9990e99a2a56a51efb4dcd066cf2 100644 --- a/alib2data/src/automaton/FSM/NFA.h +++ b/alib2data/src/automaton/FSM/NFA.h @@ -755,4 +755,6 @@ struct normalize < automaton::NFA < SymbolType, StateType > > { } /* namespace core */ +extern template class automaton::NFA < >; + #endif /* NFA_H_ */ diff --git a/alib2data/src/automaton/PDA/DPDA.cpp b/alib2data/src/automaton/PDA/DPDA.cpp index 4c889af6191c57e70c7d903d711594a0c28b9e19..d86b7cc3ee5757c43e799b7d2ec0948ad865541f 100644 --- a/alib2data/src/automaton/PDA/DPDA.cpp +++ b/alib2data/src/automaton/PDA/DPDA.cpp @@ -9,6 +9,8 @@ #include <registration/ValuePrinterRegistration.hpp> +template class automaton::DPDA < >; + namespace { static auto valuePrinter = registration::ValuePrinterRegister < automaton::DPDA < > > ( ); diff --git a/alib2data/src/automaton/PDA/DPDA.h b/alib2data/src/automaton/PDA/DPDA.h index ea1de656c294676c7459640624461e4b1a98708c..807962a2d4c0cf7c026a96d432be05fc960929a0 100644 --- a/alib2data/src/automaton/PDA/DPDA.h +++ b/alib2data/src/automaton/PDA/DPDA.h @@ -1041,4 +1041,6 @@ struct normalize < automaton::DPDA < InputSymbolType, EpsilonType, PushdownStore } /* namespace core */ +extern template class automaton::DPDA < >; + #endif /* DPDA_H_ */ diff --git a/alib2data/src/automaton/PDA/InputDrivenDPDA.cpp b/alib2data/src/automaton/PDA/InputDrivenDPDA.cpp index ad402cec476e87469119e30508bd51acaf0d33b5..f40b2ec75d4b0a58cc6c2e55aeb73f1e68db41af 100644 --- a/alib2data/src/automaton/PDA/InputDrivenDPDA.cpp +++ b/alib2data/src/automaton/PDA/InputDrivenDPDA.cpp @@ -9,6 +9,8 @@ #include <registration/ValuePrinterRegistration.hpp> +template class automaton::InputDrivenDPDA < >; + namespace { static auto valuePrinter = registration::ValuePrinterRegister < automaton::InputDrivenDPDA < > > ( ); diff --git a/alib2data/src/automaton/PDA/InputDrivenDPDA.h b/alib2data/src/automaton/PDA/InputDrivenDPDA.h index 37ec6096af95b1dfed20f2e9f5bece43c4fab333..0e64c5f19771b5d5d93d2bd07cb85bb422fd26fc 100644 --- a/alib2data/src/automaton/PDA/InputDrivenDPDA.h +++ b/alib2data/src/automaton/PDA/InputDrivenDPDA.h @@ -1010,4 +1010,6 @@ struct normalize < automaton::InputDrivenDPDA < InputSymbolType, PushdownStoreSy } /* namespace core */ +extern template class automaton::InputDrivenDPDA < >; + #endif /* INPUT_DRIVEN_DPDA_H_ */ diff --git a/alib2data/src/automaton/PDA/InputDrivenNPDA.cpp b/alib2data/src/automaton/PDA/InputDrivenNPDA.cpp index de4e7ee0493d0eff73a710e2b2798829c71de604..a3b19f379e45bc9b6b246f86aa126055179cb4f8 100644 --- a/alib2data/src/automaton/PDA/InputDrivenNPDA.cpp +++ b/alib2data/src/automaton/PDA/InputDrivenNPDA.cpp @@ -9,6 +9,8 @@ #include <registration/ValuePrinterRegistration.hpp> +template class automaton::InputDrivenNPDA < >; + namespace { static auto valuePrinter = registration::ValuePrinterRegister < automaton::InputDrivenNPDA < > > ( ); diff --git a/alib2data/src/automaton/PDA/InputDrivenNPDA.h b/alib2data/src/automaton/PDA/InputDrivenNPDA.h index 72bf30c7971f4019600fccaf63db74d14f66c7c2..4602a3c5b82bcd6766aa15f8a0c7db6f5b789b73 100644 --- a/alib2data/src/automaton/PDA/InputDrivenNPDA.h +++ b/alib2data/src/automaton/PDA/InputDrivenNPDA.h @@ -1049,4 +1049,6 @@ struct normalize < automaton::InputDrivenNPDA < InputSymbolType, PushdownStoreSy } /* namespace core */ +extern template class automaton::InputDrivenNPDA < >; + #endif /* INPUT_DRIVEN_NPDA_H_ */ diff --git a/alib2data/src/automaton/PDA/NPDA.cpp b/alib2data/src/automaton/PDA/NPDA.cpp index 9ecf921bc3e544c98d3161e90fdeae80bd83f18a..3a5ed7ae4cd9a6dd8dd9ef2387f1f06bd70d1597 100644 --- a/alib2data/src/automaton/PDA/NPDA.cpp +++ b/alib2data/src/automaton/PDA/NPDA.cpp @@ -9,6 +9,8 @@ #include <registration/ValuePrinterRegistration.hpp> +template class automaton::NPDA < >; + namespace { static auto valuePrinter = registration::ValuePrinterRegister < automaton::NPDA < > > ( ); diff --git a/alib2data/src/automaton/PDA/NPDA.h b/alib2data/src/automaton/PDA/NPDA.h index 7d896485a7221d9089f533b8ae5b1790eb89b5a4..8e604ccce0750e4779baab52c88b27b7ba3fdfd4 100644 --- a/alib2data/src/automaton/PDA/NPDA.h +++ b/alib2data/src/automaton/PDA/NPDA.h @@ -1017,4 +1017,6 @@ struct normalize < automaton::NPDA < InputSymbolType, EpsilonType, PushdownStore } /* namespace core */ +extern template class automaton::NPDA < >; + #endif /* NPDA_H_ */ diff --git a/alib2data/src/automaton/PDA/NPDTA.cpp b/alib2data/src/automaton/PDA/NPDTA.cpp index 48316e7b5efba2085afb41edd44f47f1730e662b..a4650844cce389dd5e2471faf4a6f9392940f193 100644 --- a/alib2data/src/automaton/PDA/NPDTA.cpp +++ b/alib2data/src/automaton/PDA/NPDTA.cpp @@ -1,16 +1,18 @@ -/* - * NPDTA.cpp - * - * Created on: 10. 5. 2016 - * Author: Jakub Doupal - */ - -#include "NPDTA.h" - -#include <registration/ValuePrinterRegistration.hpp> - -namespace { - -static auto valuePrinter = registration::ValuePrinterRegister < automaton::NPDTA < > > ( ); - -} /* namespace */ +/* + * NPDTA.cpp + * + * Created on: 10. 5. 2016 + * Author: Jakub Doupal + */ + +#include "NPDTA.h" + +#include <registration/ValuePrinterRegistration.hpp> + +template class automaton::NPDTA < >; + +namespace { + +static auto valuePrinter = registration::ValuePrinterRegister < automaton::NPDTA < > > ( ); + +} /* namespace */ diff --git a/alib2data/src/automaton/PDA/NPDTA.h b/alib2data/src/automaton/PDA/NPDTA.h index 8222e48294614f4a148ad3f15a81c4fe9603e3b8..5988bad9c97f19d950bb47b616b3bb9bcd80052f 100644 --- a/alib2data/src/automaton/PDA/NPDTA.h +++ b/alib2data/src/automaton/PDA/NPDTA.h @@ -1186,7 +1186,8 @@ struct normalize < automaton::NPDTA < InputSymbolType, OutputSymbolType, Epsilon } }; - } /* namespace core */ +extern template class automaton::NPDTA < >; + #endif /* NPDTA_H_ */ diff --git a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.cpp b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.cpp index 39cb3c0c86965e903fae8eb8311e7636bd5d2174..da2f87f96b619833c035adec6e1d439a4499e3ba 100644 --- a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.cpp +++ b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.cpp @@ -9,6 +9,8 @@ #include <registration/ValuePrinterRegistration.hpp> +template class automaton::RealTimeHeightDeterministicDPDA < >; + namespace { static auto valuePrinter = registration::ValuePrinterRegister < automaton::RealTimeHeightDeterministicDPDA < > > ( ); diff --git a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.h b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.h index a6698e931ed83a2d805303cf4abba6d094cbe095..0524b02a6e444f277d0e5fd8a8726be699cc0f58 100644 --- a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.h +++ b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.h @@ -1445,4 +1445,6 @@ struct normalize < automaton::RealTimeHeightDeterministicDPDA < InputSymbolType, } /* namespace core */ +extern template class automaton::RealTimeHeightDeterministicDPDA < >; + #endif /* REAL_TIME_HEIGHT_DETERMINISTIC_DPDA_H_ */ diff --git a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.cpp b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.cpp index 75ce4762df9540fa1f08b73ab2728eeffd4e0a48..c906b8b978a092617166b8c0253d2b32543631e1 100644 --- a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.cpp +++ b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.cpp @@ -9,6 +9,8 @@ #include <registration/ValuePrinterRegistration.hpp> +template class automaton::RealTimeHeightDeterministicNPDA < >; + namespace { static auto valuePrinter = registration::ValuePrinterRegister < automaton::RealTimeHeightDeterministicNPDA < > > ( ); diff --git a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.h b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.h index d114138ece16a11fd1f12e2002d1e0bd9cc83f48..a7ce5bdf222b52ee1a181423174bd988d0ba802c 100644 --- a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.h +++ b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.h @@ -1570,4 +1570,6 @@ struct normalize < automaton::RealTimeHeightDeterministicNPDA < InputSymbolType, } /* namespace core */ +extern template class automaton::RealTimeHeightDeterministicNPDA < >; + #endif /* REAL_TIME_HEIGHT_DETERMINISTIC_NPDA_H_ */ diff --git a/alib2data/src/automaton/PDA/SinglePopDPDA.cpp b/alib2data/src/automaton/PDA/SinglePopDPDA.cpp index 6c17b30ce770c61c0b820183c5caddec60c683ef..4d60f298c7bf6642eb2d9694d1c862ebc0ff183c 100644 --- a/alib2data/src/automaton/PDA/SinglePopDPDA.cpp +++ b/alib2data/src/automaton/PDA/SinglePopDPDA.cpp @@ -9,6 +9,8 @@ #include <registration/ValuePrinterRegistration.hpp> +template class automaton::SinglePopDPDA < >; + namespace { static auto valuePrinter = registration::ValuePrinterRegister < automaton::SinglePopDPDA < > > ( ); diff --git a/alib2data/src/automaton/PDA/SinglePopDPDA.h b/alib2data/src/automaton/PDA/SinglePopDPDA.h index 91933494cab818b9c280f371d191a93100f00084..3436fe5f4bc2a31600491983f96c9301e57098e3 100644 --- a/alib2data/src/automaton/PDA/SinglePopDPDA.h +++ b/alib2data/src/automaton/PDA/SinglePopDPDA.h @@ -965,4 +965,6 @@ struct normalize < automaton::SinglePopDPDA < InputSymbolType, EpsilonType, Push } /* namespace core */ +extern template class automaton::SinglePopDPDA < >; + #endif /* SINGLE_POP_DPDA_H_ */ diff --git a/alib2data/src/automaton/PDA/SinglePopNPDA.cpp b/alib2data/src/automaton/PDA/SinglePopNPDA.cpp index ab4db62db6e684fdfe0eb198ea59ea92fc807956..4f458099c6f0ec200239b5135863dedcb276b67e 100644 --- a/alib2data/src/automaton/PDA/SinglePopNPDA.cpp +++ b/alib2data/src/automaton/PDA/SinglePopNPDA.cpp @@ -9,6 +9,8 @@ #include <registration/ValuePrinterRegistration.hpp> +template class automaton::SinglePopNPDA < >; + namespace { static auto valuePrinter = registration::ValuePrinterRegister < automaton::SinglePopNPDA < > > ( ); diff --git a/alib2data/src/automaton/PDA/SinglePopNPDA.h b/alib2data/src/automaton/PDA/SinglePopNPDA.h index d4de8200d4448128b844d377f22ba25c46e9062c..50fc9ee9b93de47affb77e48d5975a65074dd1b9 100644 --- a/alib2data/src/automaton/PDA/SinglePopNPDA.h +++ b/alib2data/src/automaton/PDA/SinglePopNPDA.h @@ -1020,4 +1020,6 @@ struct normalize < automaton::SinglePopNPDA < InputSymbolType, EpsilonType, Push } /* namespace core */ +extern template class automaton::SinglePopNPDA < >; + #endif /* SINGLE_POP_NPDA_H_ */ diff --git a/alib2data/src/automaton/PDA/VisiblyPushdownDPDA.cpp b/alib2data/src/automaton/PDA/VisiblyPushdownDPDA.cpp index 0c59c0395838ed76d7dfee7872fbd94a069fe3b1..6b9c111c9e1f115f147fd84cb6760213ead4f1e4 100644 --- a/alib2data/src/automaton/PDA/VisiblyPushdownDPDA.cpp +++ b/alib2data/src/automaton/PDA/VisiblyPushdownDPDA.cpp @@ -9,6 +9,8 @@ #include <registration/ValuePrinterRegistration.hpp> +template class automaton::VisiblyPushdownDPDA < >; + namespace { static auto valuePrinter = registration::ValuePrinterRegister < automaton::VisiblyPushdownDPDA < > > ( ); diff --git a/alib2data/src/automaton/PDA/VisiblyPushdownDPDA.h b/alib2data/src/automaton/PDA/VisiblyPushdownDPDA.h index b65266de80c6dca12597fed178f511979dfe9b24..df2d037de521206529fb7415c8dfc969e99b53ae 100644 --- a/alib2data/src/automaton/PDA/VisiblyPushdownDPDA.h +++ b/alib2data/src/automaton/PDA/VisiblyPushdownDPDA.h @@ -1367,4 +1367,6 @@ struct normalize < automaton::VisiblyPushdownDPDA < InputSymbolType, PushdownSto } /* namespace core */ +extern template class automaton::VisiblyPushdownDPDA < >; + #endif /* VISIBLY_PUSHDOWN_DPDA_H_ */ diff --git a/alib2data/src/automaton/PDA/VisiblyPushdownNPDA.cpp b/alib2data/src/automaton/PDA/VisiblyPushdownNPDA.cpp index 0c1353aa1601f985dfef0da3f3dfa20f7686b8e1..266ed7bf36e2a4dcf591ce520f5546d12a733de7 100644 --- a/alib2data/src/automaton/PDA/VisiblyPushdownNPDA.cpp +++ b/alib2data/src/automaton/PDA/VisiblyPushdownNPDA.cpp @@ -9,6 +9,8 @@ #include <registration/ValuePrinterRegistration.hpp> +template class automaton::VisiblyPushdownNPDA < >; + namespace { static auto valuePrinter = registration::ValuePrinterRegister < automaton::VisiblyPushdownNPDA < > > ( ); diff --git a/alib2data/src/automaton/PDA/VisiblyPushdownNPDA.h b/alib2data/src/automaton/PDA/VisiblyPushdownNPDA.h index 442401f6be842bbf1e7feca5e6ec5af10abe94e8..37a1085406952f67c2e993c5c461e27f25f8135e 100644 --- a/alib2data/src/automaton/PDA/VisiblyPushdownNPDA.h +++ b/alib2data/src/automaton/PDA/VisiblyPushdownNPDA.h @@ -1430,7 +1430,8 @@ struct normalize < automaton::VisiblyPushdownNPDA < InputSymbolType, PushdownSto } }; - } /* namespace core */ +extern template class automaton::VisiblyPushdownNPDA < >; + #endif /* VISIBLY_PUSHDOWN_NPDA_H_ */ diff --git a/alib2data/src/automaton/TA/DFTA.cpp b/alib2data/src/automaton/TA/DFTA.cpp index f7713484b440004514c69db10d3a4f2e80585cc0..6910ca01d9bc25e74a56c34c018cdc7a178eac49 100644 --- a/alib2data/src/automaton/TA/DFTA.cpp +++ b/alib2data/src/automaton/TA/DFTA.cpp @@ -9,6 +9,8 @@ #include <registration/ValuePrinterRegistration.hpp> +template class automaton::DFTA < >; + namespace { static auto valuePrinter = registration::ValuePrinterRegister < automaton::DFTA < > > ( ); diff --git a/alib2data/src/automaton/TA/DFTA.h b/alib2data/src/automaton/TA/DFTA.h index 875fdbd3057cf57744d3d46779ebd0c9c2dca9f0..5b3cb3aa58bbdf8b7ffc44ebac3543d040a8ef5f 100644 --- a/alib2data/src/automaton/TA/DFTA.h +++ b/alib2data/src/automaton/TA/DFTA.h @@ -634,4 +634,6 @@ struct normalize < automaton::DFTA < SymbolType, RankType, StateType > > { } /* namespace core */ +extern template class automaton::DFTA < >; + #endif /* DFTA_H_ */ diff --git a/alib2data/src/automaton/TA/ExtendedNFTA.cpp b/alib2data/src/automaton/TA/ExtendedNFTA.cpp index 0e5f3e80788a097b329fc118f04eeb0114a67a5d..328245766a3cc84a9b57b0b67945f33e2595bddc 100644 --- a/alib2data/src/automaton/TA/ExtendedNFTA.cpp +++ b/alib2data/src/automaton/TA/ExtendedNFTA.cpp @@ -9,6 +9,8 @@ #include <registration/ValuePrinterRegistration.hpp> +template class automaton::ExtendedNFTA < >; + namespace { static auto valuePrinter = registration::ValuePrinterRegister < automaton::ExtendedNFTA < > > ( ); diff --git a/alib2data/src/automaton/TA/ExtendedNFTA.h b/alib2data/src/automaton/TA/ExtendedNFTA.h index 8de6a7b23569908e069ba41f44fca16cd3143502..817f488f658e5505b9a1d591ea0512cb006e2f91 100644 --- a/alib2data/src/automaton/TA/ExtendedNFTA.h +++ b/alib2data/src/automaton/TA/ExtendedNFTA.h @@ -717,4 +717,6 @@ struct normalize < automaton::ExtendedNFTA < SymbolType, RankType, StateType > > } /* namespace core */ +extern template class automaton::ExtendedNFTA < >; + #endif /* EXTENDED_NFTA_H_ */ diff --git a/alib2data/src/automaton/TA/NFTA.cpp b/alib2data/src/automaton/TA/NFTA.cpp index 9fab9bf3ba06e8d681f8986f927cd1f5dfe31846..936bb0243fbcb51e03da1f62070354b0a0d7add5 100644 --- a/alib2data/src/automaton/TA/NFTA.cpp +++ b/alib2data/src/automaton/TA/NFTA.cpp @@ -10,6 +10,8 @@ #include <registration/ValuePrinterRegistration.hpp> #include <registration/CastRegistration.hpp> +template class automaton::NFTA < >; + namespace { static auto valuePrinter = registration::ValuePrinterRegister < automaton::NFTA < > > ( ); diff --git a/alib2data/src/automaton/TA/NFTA.h b/alib2data/src/automaton/TA/NFTA.h index 04f362c22cb7d94b08cb2c1220caa068a7c5d793..45e87864fb4c078d7732bf2ac05e3e7c0707a6bc 100644 --- a/alib2data/src/automaton/TA/NFTA.h +++ b/alib2data/src/automaton/TA/NFTA.h @@ -662,4 +662,6 @@ struct normalize < automaton::NFTA < SymbolType, RankType, StateType > > { } /* namespace core */ +extern template class automaton::NFTA < >; + #endif /* NFTA_H_ */ diff --git a/alib2data/src/automaton/TM/OneTapeDTM.cpp b/alib2data/src/automaton/TM/OneTapeDTM.cpp index 5d10fd850de7d416ac96fbfc095bc7b325322079..b397bf34f7ebc451b208bce3a9302bf035ba82e0 100644 --- a/alib2data/src/automaton/TM/OneTapeDTM.cpp +++ b/alib2data/src/automaton/TM/OneTapeDTM.cpp @@ -9,6 +9,8 @@ #include <registration/ValuePrinterRegistration.hpp> +template class automaton::OneTapeDTM < >; + namespace { static auto valuePrinter = registration::ValuePrinterRegister < automaton::OneTapeDTM < > > ( ); diff --git a/alib2data/src/automaton/TM/OneTapeDTM.h b/alib2data/src/automaton/TM/OneTapeDTM.h index a5d46f9e0e6470ffbd3d4758e93a8057caa5ce1a..ce60e801d8deb0420e99e320f28e2bf36baabc65 100644 --- a/alib2data/src/automaton/TM/OneTapeDTM.h +++ b/alib2data/src/automaton/TM/OneTapeDTM.h @@ -845,4 +845,6 @@ struct normalize < automaton::OneTapeDTM < SymbolType, StateType > > { } /* namespace core */ +extern template class automaton::OneTapeDTM < >; + #endif /* ONE_TAPE_DTM_H_ */ diff --git a/alib2data/src/grammar/ContextFree/CFG.cpp b/alib2data/src/grammar/ContextFree/CFG.cpp index a47466534c9f467d848f4cf092885429a72aa6c8..def3e95fe913b02198746d97a18932f3626dfbb3 100644 --- a/alib2data/src/grammar/ContextFree/CFG.cpp +++ b/alib2data/src/grammar/ContextFree/CFG.cpp @@ -10,6 +10,8 @@ #include <registration/ValuePrinterRegistration.hpp> #include <registration/CastRegistration.hpp> +template class grammar::CFG < >; + namespace { static auto CFGEpsilonFreeCFG = registration::CastRegister < grammar::CFG < >, grammar::EpsilonFreeCFG < > > ( ); diff --git a/alib2data/src/grammar/ContextFree/CFG.h b/alib2data/src/grammar/ContextFree/CFG.h index c911b168c1a88b87e93144159fae2a2c434d5adf..4c7a5596b65edbad05a014c81744fb1c9e9af826 100644 --- a/alib2data/src/grammar/ContextFree/CFG.h +++ b/alib2data/src/grammar/ContextFree/CFG.h @@ -534,4 +534,6 @@ struct normalize < grammar::CFG < TerminalSymbolType, NonterminalSymbolType > > } /* namespace core */ +extern template class grammar::CFG < >; + #endif /* CFG_H_ */ diff --git a/alib2data/src/grammar/ContextFree/CNF.cpp b/alib2data/src/grammar/ContextFree/CNF.cpp index 290b678b5749595d9fdb9828d9e724a002704704..e64e7540ad8fd864f700cc65ca06839f93f0c7eb 100644 --- a/alib2data/src/grammar/ContextFree/CNF.cpp +++ b/alib2data/src/grammar/ContextFree/CNF.cpp @@ -10,6 +10,8 @@ #include <registration/ValuePrinterRegistration.hpp> #include <registration/CastRegistration.hpp> +template class grammar::CNF < >; + namespace { static auto valuePrinter = registration::ValuePrinterRegister < grammar::CNF < > > ( ); diff --git a/alib2data/src/grammar/ContextFree/CNF.h b/alib2data/src/grammar/ContextFree/CNF.h index 52f2730e3abb03ec9af378c6c0006b29bad31261..e82b8791874b8bb95911907d895820353c260b00 100644 --- a/alib2data/src/grammar/ContextFree/CNF.h +++ b/alib2data/src/grammar/ContextFree/CNF.h @@ -643,4 +643,6 @@ struct normalize < grammar::CNF < TerminalSymbolType, NonterminalSymbolType > > } /* namespace core */ +extern template class grammar::CNF < >; + #endif /* CNF_H_ */ diff --git a/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.cpp b/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.cpp index 6465027c45fd1432f90bd29bc1eb88341a6f1500..8d7c6df33530ede31cb1b10016df4d9b7007e7d3 100644 --- a/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.cpp +++ b/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.cpp @@ -10,6 +10,8 @@ #include <registration/ValuePrinterRegistration.hpp> #include <registration/CastRegistration.hpp> +template class grammar::EpsilonFreeCFG < >; + namespace { static auto valuePrinter = registration::ValuePrinterRegister < grammar::EpsilonFreeCFG < > > ( ); diff --git a/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.h b/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.h index 24cf6c4eed73f1e8cf0f9f41548154250f1f9fb7..5cc6fea1894883a80a2edfb0ac133823113108c6 100644 --- a/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.h +++ b/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.h @@ -554,4 +554,6 @@ struct normalize < grammar::EpsilonFreeCFG < TerminalSymbolType, NonterminalSymb } /* namespace core */ +extern template class grammar::EpsilonFreeCFG < >; + #endif /* EPSILON_FREE_CFG_H_ */ diff --git a/alib2data/src/grammar/ContextFree/GNF.cpp b/alib2data/src/grammar/ContextFree/GNF.cpp index 299c59857abc7232affc8414134cc775773470d2..b488e21c3d154022d94799efa30350178ab9013c 100644 --- a/alib2data/src/grammar/ContextFree/GNF.cpp +++ b/alib2data/src/grammar/ContextFree/GNF.cpp @@ -10,6 +10,8 @@ #include <registration/ValuePrinterRegistration.hpp> #include <registration/CastRegistration.hpp> +template class grammar::GNF < >; + namespace { static auto valuePrinter = registration::ValuePrinterRegister < grammar::GNF < > > ( ); diff --git a/alib2data/src/grammar/ContextFree/GNF.h b/alib2data/src/grammar/ContextFree/GNF.h index dcfec94ca2b7d7ee5acbf18680f53727004aa75e..767fe3e8404891b26d8f6cc15879b6db415a9306 100644 --- a/alib2data/src/grammar/ContextFree/GNF.h +++ b/alib2data/src/grammar/ContextFree/GNF.h @@ -552,4 +552,6 @@ struct normalize < grammar::GNF < TerminalSymbolType, NonterminalSymbolType > > } /* namespace core */ +extern template class grammar::GNF < >; + #endif /* GNF_H_ */ diff --git a/alib2data/src/grammar/ContextFree/LG.cpp b/alib2data/src/grammar/ContextFree/LG.cpp index 3fd4da7dec677fe8ac8434f96ff18c2ff17160d2..f989e6a669663f39faa3247403f08c2070d938f4 100644 --- a/alib2data/src/grammar/ContextFree/LG.cpp +++ b/alib2data/src/grammar/ContextFree/LG.cpp @@ -10,6 +10,8 @@ #include <registration/ValuePrinterRegistration.hpp> #include <registration/CastRegistration.hpp> +template class grammar::LG < >; + namespace { static auto valuePrinter = registration::ValuePrinterRegister < grammar::LG < > > ( ); diff --git a/alib2data/src/grammar/ContextFree/LG.h b/alib2data/src/grammar/ContextFree/LG.h index 3a7c68c3570833d6be80a3e2110e4df6ff29c5dd..668eadb71b4d338f87046d491f99858a989f04e0 100644 --- a/alib2data/src/grammar/ContextFree/LG.h +++ b/alib2data/src/grammar/ContextFree/LG.h @@ -645,4 +645,6 @@ struct normalize < grammar::LG < TerminalSymbolType, NonterminalSymbolType > > { } /* namespace core */ +extern template class grammar::LG < >; + #endif /* LG_H_ */ diff --git a/alib2data/src/grammar/ContextSensitive/CSG.cpp b/alib2data/src/grammar/ContextSensitive/CSG.cpp index eb13a050c0e2e7e21ad54384e2c44d303529652b..a2fa46094d24c1d7c34bf081d52ed859adfd9cc9 100644 --- a/alib2data/src/grammar/ContextSensitive/CSG.cpp +++ b/alib2data/src/grammar/ContextSensitive/CSG.cpp @@ -10,6 +10,8 @@ #include <registration/ValuePrinterRegistration.hpp> #include <registration/CastRegistration.hpp> +template class grammar::CSG < >; + namespace { static auto valuePrinter = registration::ValuePrinterRegister < grammar::CSG < > > ( ); diff --git a/alib2data/src/grammar/ContextSensitive/CSG.h b/alib2data/src/grammar/ContextSensitive/CSG.h index 695431ace06168e83ac8a6d9648376b1aed26b3c..520ffabc5be6abbe1dd21f287eab4222e84e4e37 100644 --- a/alib2data/src/grammar/ContextSensitive/CSG.h +++ b/alib2data/src/grammar/ContextSensitive/CSG.h @@ -593,4 +593,6 @@ struct normalize < grammar::CSG < SymbolType > > { } /* namespace core */ +extern template class grammar::CSG < >; + #endif /* CSG_H_ */ diff --git a/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.cpp b/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.cpp index 6e41b1d8b6076ee5f90b65aaa09b282e725e20e5..de357009f2d7076fab3e13d288a4a1f07dc20442 100644 --- a/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.cpp +++ b/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.cpp @@ -10,6 +10,8 @@ #include <registration/ValuePrinterRegistration.hpp> #include <registration/CastRegistration.hpp> +template class grammar::NonContractingGrammar < >; + namespace { static auto valuePrinter = registration::ValuePrinterRegister < grammar::NonContractingGrammar < > > ( ); diff --git a/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.h b/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.h index aace2460896d3cbcc27ee735a41f53e45fbf2b07..408c624450065b86518594c61e742c1685c51722 100644 --- a/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.h +++ b/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.h @@ -576,4 +576,6 @@ struct normalize < grammar::NonContractingGrammar < SymbolType > > { } /* namespace core */ +extern template class grammar::NonContractingGrammar < >; + #endif /* NON_CONTRACTING_GRAMMAR_H_ */ diff --git a/alib2data/src/grammar/Regular/LeftLG.cpp b/alib2data/src/grammar/Regular/LeftLG.cpp index 89e1dcc91b6ce5fd7c071329c870d0e922748587..7c7abb64859bc6b9f302b4d805e7515494809744 100644 --- a/alib2data/src/grammar/Regular/LeftLG.cpp +++ b/alib2data/src/grammar/Regular/LeftLG.cpp @@ -10,6 +10,8 @@ #include <registration/ValuePrinterRegistration.hpp> #include <registration/CastRegistration.hpp> +template class grammar::LeftLG < >; + namespace { static auto valuePrinter = registration::ValuePrinterRegister < grammar::LeftLG < > > ( ); diff --git a/alib2data/src/grammar/Regular/LeftLG.h b/alib2data/src/grammar/Regular/LeftLG.h index 079d41f1a52e2c9cc84d9e6309b821d861a67f55..ee567c954b18dca5ef681b52ccd2fa4056bc2967 100644 --- a/alib2data/src/grammar/Regular/LeftLG.h +++ b/alib2data/src/grammar/Regular/LeftLG.h @@ -628,4 +628,6 @@ struct normalize < grammar::LeftLG < TerminalSymbolType, NonterminalSymbolType > } /* namespace core */ +extern template class grammar::LeftLG < >; + #endif /* LEFT_LG_H_ */ diff --git a/alib2data/src/grammar/Regular/LeftRG.cpp b/alib2data/src/grammar/Regular/LeftRG.cpp index 72385f7a342853ae4a65d5802a5e44394050fa2e..9d81cdd1b0dde6a78234900265a96260633adde4 100644 --- a/alib2data/src/grammar/Regular/LeftRG.cpp +++ b/alib2data/src/grammar/Regular/LeftRG.cpp @@ -10,6 +10,8 @@ #include <registration/ValuePrinterRegistration.hpp> #include <registration/CastRegistration.hpp> +template class grammar::LeftRG < >; + namespace { static auto valuePrinter = registration::ValuePrinterRegister < grammar::LeftRG < > > ( ); diff --git a/alib2data/src/grammar/Regular/LeftRG.h b/alib2data/src/grammar/Regular/LeftRG.h index 1332da8b3a6896cf5e785e4728a649992e35e6b4..67cfd9840b2f32f2bc1d16bdbc5d6916a0f70413 100644 --- a/alib2data/src/grammar/Regular/LeftRG.h +++ b/alib2data/src/grammar/Regular/LeftRG.h @@ -553,7 +553,7 @@ public: } /** -- * Returns true as all terminal symbols are possibly available to be nonterminal symbols. + * Returns true as all terminal symbols are possibly available to be nonterminal symbols. * * \param grammar the tested grammar * \param symbol the tested symbol @@ -642,4 +642,6 @@ struct normalize < grammar::LeftRG < TerminalSymbolType, NonterminalSymbolType > } /* namespace core */ +extern template class grammar::LeftRG < >; + #endif /* LEFT_RG_H_ */ diff --git a/alib2data/src/grammar/Regular/RightLG.cpp b/alib2data/src/grammar/Regular/RightLG.cpp index ffe6b7dbefc1db377b0e4ab5e884a83fb0bd1b7b..ca8f464a918835df56df3b786bf5e928af0b4c0e 100644 --- a/alib2data/src/grammar/Regular/RightLG.cpp +++ b/alib2data/src/grammar/Regular/RightLG.cpp @@ -10,6 +10,8 @@ #include <registration/ValuePrinterRegistration.hpp> #include <registration/CastRegistration.hpp> +template class grammar::RightLG < >; + namespace { static auto valuePrinter = registration::ValuePrinterRegister < grammar::RightLG < > > ( ); diff --git a/alib2data/src/grammar/Regular/RightLG.h b/alib2data/src/grammar/Regular/RightLG.h index 74f18f6ee8c8afbd70d88190219f31467728397f..128316009d94e897437be895c796edd43b66775c 100644 --- a/alib2data/src/grammar/Regular/RightLG.h +++ b/alib2data/src/grammar/Regular/RightLG.h @@ -625,4 +625,6 @@ struct normalize < grammar::RightLG < TerminalSymbolType, NonterminalSymbolType } /* namespace core */ +extern template class grammar::RightLG < >; + #endif /* RIGHT_LG_H_ */ diff --git a/alib2data/src/grammar/Regular/RightRG.cpp b/alib2data/src/grammar/Regular/RightRG.cpp index b0f55ccba0b32780a1a0f383216d89bdc7064fca..e455f7a4b5b7fa545005761294f24d2a45278bca 100644 --- a/alib2data/src/grammar/Regular/RightRG.cpp +++ b/alib2data/src/grammar/Regular/RightRG.cpp @@ -10,6 +10,8 @@ #include <registration/ValuePrinterRegistration.hpp> #include <registration/CastRegistration.hpp> +template class grammar::RightRG < >; + namespace { static auto valuePrinter = registration::ValuePrinterRegister < grammar::RightRG < > > ( ); diff --git a/alib2data/src/grammar/Regular/RightRG.h b/alib2data/src/grammar/Regular/RightRG.h index c9417458b9339a8116057e617fcb9b79ead82d8e..06925c4cd82206efaac8ead526895e9015bddfc5 100644 --- a/alib2data/src/grammar/Regular/RightRG.h +++ b/alib2data/src/grammar/Regular/RightRG.h @@ -641,4 +641,6 @@ struct normalize < grammar::RightRG < TerminalSymbolType, NonterminalSymbolType } /* namespace core */ +extern template class grammar::RightRG < >; + #endif /* RIGHT_RG_H_ */ diff --git a/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.cpp b/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.cpp index 07fa7b88aa9a03cd5a616832ea11d1c1b1392956..03ac8927d3e510340038fc184108b0aee78feb95 100644 --- a/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.cpp +++ b/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.cpp @@ -10,6 +10,8 @@ #include <registration/ValuePrinterRegistration.hpp> #include <registration/CastRegistration.hpp> +template class grammar::ContextPreservingUnrestrictedGrammar < >; + namespace { static auto valuePrinter = registration::ValuePrinterRegister < grammar::ContextPreservingUnrestrictedGrammar < > > ( ); diff --git a/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.h b/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.h index be67f9cebb488663d24fea2045d3113059398fc5..52401004898bad201dc194a7fdbc12a873eb520f 100644 --- a/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.h +++ b/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.h @@ -553,4 +553,6 @@ struct normalize < grammar::ContextPreservingUnrestrictedGrammar < SymbolType > } /* namespace core */ +extern template class grammar::ContextPreservingUnrestrictedGrammar < >; + #endif /* CONTEXT_PRESERVING_UNRESTRICTED_GRAMMAR_H_ */ diff --git a/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.cpp b/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.cpp index 92c80b9e65f9911680f07563f97c486524f6889a..fadd7e0be8a1518b1fc30776570183e2d8db6eb3 100644 --- a/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.cpp +++ b/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.cpp @@ -10,6 +10,8 @@ #include <registration/ValuePrinterRegistration.hpp> #include <registration/CastRegistration.hpp> +template class grammar::UnrestrictedGrammar < >; + namespace { static auto valuePrinter = registration::ValuePrinterRegister < grammar::UnrestrictedGrammar < > > ( ); diff --git a/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.h b/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.h index 6238f03aeb4a2d9ea2b38d46a3431899b801b223..0686053162b8a3d043ca1a4299a853aaa18cb989 100644 --- a/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.h +++ b/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.h @@ -534,4 +534,6 @@ struct normalize < grammar::UnrestrictedGrammar < SymbolType > > { } /* namespace core */ +extern template class grammar::UnrestrictedGrammar < >; + #endif /* UNRESTRICTED_GRAMMAR_H_ */