From e082e289fb6efcd31aad6b5602783b77448211a3 Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Mon, 23 Dec 2019 21:50:53 +0100
Subject: [PATCH] test unit build in grammar

---
 .../grammar/ContextFree/{CFG.cpp => CFG.cxx}  |  2 +-
 .../grammar/ContextFree/{CNF.cpp => CNF.cxx}  |  2 +-
 .../src/grammar/ContextFree/ContextFree.cpp   |  5 +++++
 ...{EpsilonFreeCFG.cpp => EpsilonFreeCFG.cxx} |  2 +-
 .../grammar/ContextFree/{GNF.cpp => GNF.cxx}  |  2 +-
 .../grammar/ContextFree/{LG.cpp => LG.cxx}    |  2 +-
 .../ContextSensitive/{CSG.cpp => CSG.cxx}     |  2 +-
 .../ContextSensitive/ContextSensitive.cpp     |  2 ++
 ...gGrammar.cpp => NonContractingGrammar.cxx} |  2 +-
 .../Regular/{LeftLG.cpp => LeftLG.cxx}        |  2 +-
 .../Regular/{LeftRG.cpp => LeftRG.cxx}        |  2 +-
 alib2data/src/grammar/Regular/Regular.cpp     |  4 ++++
 .../Regular/{RightLG.cpp => RightLG.cxx}      |  2 +-
 .../Regular/{RightRG.cpp => RightRG.cxx}      |  2 +-
 ... ContextPreservingUnrestrictedGrammar.cxx} |  2 +-
 .../src/grammar/Unrestricted/Unrestricted.cpp |  2 ++
 ...tedGrammar.cpp => UnrestrictedGrammar.cxx} |  2 +-
 alib2data/src/grammar/xml/ContextFree/CFG.cpp | 21 -------------------
 alib2data/src/grammar/xml/ContextFree/CFG.cxx | 21 +++++++++++++++++++
 alib2data/src/grammar/xml/ContextFree/CNF.cpp | 21 -------------------
 alib2data/src/grammar/xml/ContextFree/CNF.cxx | 21 +++++++++++++++++++
 .../grammar/xml/ContextFree/ContextFree.cpp   |  5 +++++
 .../xml/ContextFree/EpsilonFreeCFG.cpp        | 21 -------------------
 .../xml/ContextFree/EpsilonFreeCFG.cxx        | 21 +++++++++++++++++++
 alib2data/src/grammar/xml/ContextFree/GNF.cpp | 21 -------------------
 alib2data/src/grammar/xml/ContextFree/GNF.cxx | 21 +++++++++++++++++++
 alib2data/src/grammar/xml/ContextFree/LG.cpp  | 21 -------------------
 alib2data/src/grammar/xml/ContextFree/LG.cxx  | 21 +++++++++++++++++++
 .../src/grammar/xml/ContextSensitive/CSG.cpp  | 21 -------------------
 .../src/grammar/xml/ContextSensitive/CSG.cxx  | 21 +++++++++++++++++++
 .../xml/ContextSensitive/ContextSensitive.cpp |  2 ++
 .../NonContractingGrammar.cpp                 | 21 -------------------
 .../NonContractingGrammar.cxx                 | 21 +++++++++++++++++++
 alib2data/src/grammar/xml/Regular/LeftLG.cpp  | 21 -------------------
 alib2data/src/grammar/xml/Regular/LeftLG.cxx  | 21 +++++++++++++++++++
 alib2data/src/grammar/xml/Regular/LeftRG.cpp  | 21 -------------------
 alib2data/src/grammar/xml/Regular/LeftRG.cxx  | 21 +++++++++++++++++++
 alib2data/src/grammar/xml/Regular/Regular.cpp |  4 ++++
 alib2data/src/grammar/xml/Regular/RightLG.cpp | 21 -------------------
 alib2data/src/grammar/xml/Regular/RightLG.cxx | 21 +++++++++++++++++++
 alib2data/src/grammar/xml/Regular/RightRG.cpp | 21 -------------------
 alib2data/src/grammar/xml/Regular/RightRG.cxx | 21 +++++++++++++++++++
 .../ContextPreservingUnrestrictedGrammar.cpp  | 21 -------------------
 .../ContextPreservingUnrestrictedGrammar.cxx  | 21 +++++++++++++++++++
 .../grammar/xml/Unrestricted/Unrestricted.cpp |  2 ++
 .../xml/Unrestricted/UnrestrictedGrammar.cpp  | 21 -------------------
 .../xml/Unrestricted/UnrestrictedGrammar.cxx  | 21 +++++++++++++++++++
 47 files changed, 312 insertions(+), 286 deletions(-)
 rename alib2data/src/grammar/ContextFree/{CFG.cpp => CFG.cxx} (81%)
 rename alib2data/src/grammar/ContextFree/{CNF.cpp => CNF.cxx} (75%)
 create mode 100644 alib2data/src/grammar/ContextFree/ContextFree.cpp
 rename alib2data/src/grammar/ContextFree/{EpsilonFreeCFG.cpp => EpsilonFreeCFG.cxx} (73%)
 rename alib2data/src/grammar/ContextFree/{GNF.cpp => GNF.cxx} (75%)
 rename alib2data/src/grammar/ContextFree/{LG.cpp => LG.cxx} (76%)
 rename alib2data/src/grammar/ContextSensitive/{CSG.cpp => CSG.cxx} (75%)
 create mode 100644 alib2data/src/grammar/ContextSensitive/ContextSensitive.cpp
 rename alib2data/src/grammar/ContextSensitive/{NonContractingGrammar.cpp => NonContractingGrammar.cxx} (72%)
 rename alib2data/src/grammar/Regular/{LeftLG.cpp => LeftLG.cxx} (75%)
 rename alib2data/src/grammar/Regular/{LeftRG.cpp => LeftRG.cxx} (75%)
 create mode 100644 alib2data/src/grammar/Regular/Regular.cpp
 rename alib2data/src/grammar/Regular/{RightLG.cpp => RightLG.cxx} (75%)
 rename alib2data/src/grammar/Regular/{RightRG.cpp => RightRG.cxx} (75%)
 rename alib2data/src/grammar/Unrestricted/{ContextPreservingUnrestrictedGrammar.cpp => ContextPreservingUnrestrictedGrammar.cxx} (70%)
 create mode 100644 alib2data/src/grammar/Unrestricted/Unrestricted.cpp
 rename alib2data/src/grammar/Unrestricted/{UnrestrictedGrammar.cpp => UnrestrictedGrammar.cxx} (72%)
 delete mode 100644 alib2data/src/grammar/xml/ContextFree/CFG.cpp
 create mode 100644 alib2data/src/grammar/xml/ContextFree/CFG.cxx
 delete mode 100644 alib2data/src/grammar/xml/ContextFree/CNF.cpp
 create mode 100644 alib2data/src/grammar/xml/ContextFree/CNF.cxx
 create mode 100644 alib2data/src/grammar/xml/ContextFree/ContextFree.cpp
 delete mode 100644 alib2data/src/grammar/xml/ContextFree/EpsilonFreeCFG.cpp
 create mode 100644 alib2data/src/grammar/xml/ContextFree/EpsilonFreeCFG.cxx
 delete mode 100644 alib2data/src/grammar/xml/ContextFree/GNF.cpp
 create mode 100644 alib2data/src/grammar/xml/ContextFree/GNF.cxx
 delete mode 100644 alib2data/src/grammar/xml/ContextFree/LG.cpp
 create mode 100644 alib2data/src/grammar/xml/ContextFree/LG.cxx
 delete mode 100644 alib2data/src/grammar/xml/ContextSensitive/CSG.cpp
 create mode 100644 alib2data/src/grammar/xml/ContextSensitive/CSG.cxx
 create mode 100644 alib2data/src/grammar/xml/ContextSensitive/ContextSensitive.cpp
 delete mode 100644 alib2data/src/grammar/xml/ContextSensitive/NonContractingGrammar.cpp
 create mode 100644 alib2data/src/grammar/xml/ContextSensitive/NonContractingGrammar.cxx
 delete mode 100644 alib2data/src/grammar/xml/Regular/LeftLG.cpp
 create mode 100644 alib2data/src/grammar/xml/Regular/LeftLG.cxx
 delete mode 100644 alib2data/src/grammar/xml/Regular/LeftRG.cpp
 create mode 100644 alib2data/src/grammar/xml/Regular/LeftRG.cxx
 create mode 100644 alib2data/src/grammar/xml/Regular/Regular.cpp
 delete mode 100644 alib2data/src/grammar/xml/Regular/RightLG.cpp
 create mode 100644 alib2data/src/grammar/xml/Regular/RightLG.cxx
 delete mode 100644 alib2data/src/grammar/xml/Regular/RightRG.cpp
 create mode 100644 alib2data/src/grammar/xml/Regular/RightRG.cxx
 delete mode 100644 alib2data/src/grammar/xml/Unrestricted/ContextPreservingUnrestrictedGrammar.cpp
 create mode 100644 alib2data/src/grammar/xml/Unrestricted/ContextPreservingUnrestrictedGrammar.cxx
 create mode 100644 alib2data/src/grammar/xml/Unrestricted/Unrestricted.cpp
 delete mode 100644 alib2data/src/grammar/xml/Unrestricted/UnrestrictedGrammar.cpp
 create mode 100644 alib2data/src/grammar/xml/Unrestricted/UnrestrictedGrammar.cxx

diff --git a/alib2data/src/grammar/ContextFree/CFG.cpp b/alib2data/src/grammar/ContextFree/CFG.cxx
similarity index 81%
rename from alib2data/src/grammar/ContextFree/CFG.cpp
rename to alib2data/src/grammar/ContextFree/CFG.cxx
index f65d4005a2..faf2408156 100644
--- a/alib2data/src/grammar/ContextFree/CFG.cpp
+++ b/alib2data/src/grammar/ContextFree/CFG.cxx
@@ -16,6 +16,6 @@ namespace {
 
 auto CFGEpsilonFreeCFG = registration::CastRegister < grammar::CFG < >, grammar::EpsilonFreeCFG < > > ( );
 
-auto valuePrinter = registration::ValuePrinterRegister < grammar::CFG < > > ( );
+auto valuePrinterCFG = registration::ValuePrinterRegister < grammar::CFG < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/grammar/ContextFree/CNF.cpp b/alib2data/src/grammar/ContextFree/CNF.cxx
similarity index 75%
rename from alib2data/src/grammar/ContextFree/CNF.cpp
rename to alib2data/src/grammar/ContextFree/CNF.cxx
index 9be72f325a..91999556fc 100644
--- a/alib2data/src/grammar/ContextFree/CNF.cpp
+++ b/alib2data/src/grammar/ContextFree/CNF.cxx
@@ -14,6 +14,6 @@ template class grammar::CNF < >;
 
 namespace {
 
-auto valuePrinter = registration::ValuePrinterRegister < grammar::CNF < > > ( );
+auto valuePrinterCNF = registration::ValuePrinterRegister < grammar::CNF < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/grammar/ContextFree/ContextFree.cpp b/alib2data/src/grammar/ContextFree/ContextFree.cpp
new file mode 100644
index 0000000000..adb4f75bf4
--- /dev/null
+++ b/alib2data/src/grammar/ContextFree/ContextFree.cpp
@@ -0,0 +1,5 @@
+#include "CFG.cxx"
+#include "CNF.cxx"
+#include "EpsilonFreeCFG.cxx"
+#include "GNF.cxx"
+#include "LG.cxx"
diff --git a/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.cpp b/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.cxx
similarity index 73%
rename from alib2data/src/grammar/ContextFree/EpsilonFreeCFG.cpp
rename to alib2data/src/grammar/ContextFree/EpsilonFreeCFG.cxx
index 8044932c91..8434a3608c 100644
--- a/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.cpp
+++ b/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.cxx
@@ -14,6 +14,6 @@ template class grammar::EpsilonFreeCFG < >;
 
 namespace {
 
-auto valuePrinter = registration::ValuePrinterRegister < grammar::EpsilonFreeCFG < > > ( );
+auto valuePrinterEpsilonFreeCFG = registration::ValuePrinterRegister < grammar::EpsilonFreeCFG < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/grammar/ContextFree/GNF.cpp b/alib2data/src/grammar/ContextFree/GNF.cxx
similarity index 75%
rename from alib2data/src/grammar/ContextFree/GNF.cpp
rename to alib2data/src/grammar/ContextFree/GNF.cxx
index 8519bae6b4..eb7f1fa69b 100644
--- a/alib2data/src/grammar/ContextFree/GNF.cpp
+++ b/alib2data/src/grammar/ContextFree/GNF.cxx
@@ -14,6 +14,6 @@ template class grammar::GNF < >;
 
 namespace {
 
-auto valuePrinter = registration::ValuePrinterRegister < grammar::GNF < > > ( );
+auto valuePrinterGNF = registration::ValuePrinterRegister < grammar::GNF < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/grammar/ContextFree/LG.cpp b/alib2data/src/grammar/ContextFree/LG.cxx
similarity index 76%
rename from alib2data/src/grammar/ContextFree/LG.cpp
rename to alib2data/src/grammar/ContextFree/LG.cxx
index c3552278f1..3008c04c18 100644
--- a/alib2data/src/grammar/ContextFree/LG.cpp
+++ b/alib2data/src/grammar/ContextFree/LG.cxx
@@ -14,6 +14,6 @@ template class grammar::LG < >;
 
 namespace {
 
-auto valuePrinter = registration::ValuePrinterRegister < grammar::LG < > > ( );
+auto valuePrinterLG = registration::ValuePrinterRegister < grammar::LG < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/grammar/ContextSensitive/CSG.cpp b/alib2data/src/grammar/ContextSensitive/CSG.cxx
similarity index 75%
rename from alib2data/src/grammar/ContextSensitive/CSG.cpp
rename to alib2data/src/grammar/ContextSensitive/CSG.cxx
index 114f3eba99..76107c6bb5 100644
--- a/alib2data/src/grammar/ContextSensitive/CSG.cpp
+++ b/alib2data/src/grammar/ContextSensitive/CSG.cxx
@@ -14,6 +14,6 @@ template class grammar::CSG < >;
 
 namespace {
 
-auto valuePrinter = registration::ValuePrinterRegister < grammar::CSG < > > ( );
+auto valuePrinterCSG = registration::ValuePrinterRegister < grammar::CSG < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/grammar/ContextSensitive/ContextSensitive.cpp b/alib2data/src/grammar/ContextSensitive/ContextSensitive.cpp
new file mode 100644
index 0000000000..3f707e7d6e
--- /dev/null
+++ b/alib2data/src/grammar/ContextSensitive/ContextSensitive.cpp
@@ -0,0 +1,2 @@
+#include "CSG.cxx"
+#include "NonContractingGrammar.cxx"
diff --git a/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.cpp b/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.cxx
similarity index 72%
rename from alib2data/src/grammar/ContextSensitive/NonContractingGrammar.cpp
rename to alib2data/src/grammar/ContextSensitive/NonContractingGrammar.cxx
index 444d764d39..90df34575c 100644
--- a/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.cpp
+++ b/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.cxx
@@ -14,6 +14,6 @@ template class grammar::NonContractingGrammar < >;
 
 namespace {
 
-auto valuePrinter = registration::ValuePrinterRegister < grammar::NonContractingGrammar < > > ( );
+auto valuePrinterNonConctractingGrammar = registration::ValuePrinterRegister < grammar::NonContractingGrammar < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/grammar/Regular/LeftLG.cpp b/alib2data/src/grammar/Regular/LeftLG.cxx
similarity index 75%
rename from alib2data/src/grammar/Regular/LeftLG.cpp
rename to alib2data/src/grammar/Regular/LeftLG.cxx
index 95721b142c..48fe04abb6 100644
--- a/alib2data/src/grammar/Regular/LeftLG.cpp
+++ b/alib2data/src/grammar/Regular/LeftLG.cxx
@@ -14,6 +14,6 @@ template class grammar::LeftLG < >;
 
 namespace {
 
-auto valuePrinter = registration::ValuePrinterRegister < grammar::LeftLG < > > ( );
+auto valuePrinterLeftLG = registration::ValuePrinterRegister < grammar::LeftLG < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/grammar/Regular/LeftRG.cpp b/alib2data/src/grammar/Regular/LeftRG.cxx
similarity index 75%
rename from alib2data/src/grammar/Regular/LeftRG.cpp
rename to alib2data/src/grammar/Regular/LeftRG.cxx
index 51369c5447..baa74fd0c9 100644
--- a/alib2data/src/grammar/Regular/LeftRG.cpp
+++ b/alib2data/src/grammar/Regular/LeftRG.cxx
@@ -14,6 +14,6 @@ template class grammar::LeftRG < >;
 
 namespace {
 
-auto valuePrinter = registration::ValuePrinterRegister < grammar::LeftRG < > > ( );
+auto valuePrinterLeftRG = registration::ValuePrinterRegister < grammar::LeftRG < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/grammar/Regular/Regular.cpp b/alib2data/src/grammar/Regular/Regular.cpp
new file mode 100644
index 0000000000..279dfda9aa
--- /dev/null
+++ b/alib2data/src/grammar/Regular/Regular.cpp
@@ -0,0 +1,4 @@
+#include "LeftLG.cxx"
+#include "LeftRG.cxx"
+#include "RightLG.cxx"
+#include "RightRG.cxx"
diff --git a/alib2data/src/grammar/Regular/RightLG.cpp b/alib2data/src/grammar/Regular/RightLG.cxx
similarity index 75%
rename from alib2data/src/grammar/Regular/RightLG.cpp
rename to alib2data/src/grammar/Regular/RightLG.cxx
index 0f8054e9ff..a72286697d 100644
--- a/alib2data/src/grammar/Regular/RightLG.cpp
+++ b/alib2data/src/grammar/Regular/RightLG.cxx
@@ -14,6 +14,6 @@ template class grammar::RightLG < >;
 
 namespace {
 
-auto valuePrinter = registration::ValuePrinterRegister < grammar::RightLG < > > ( );
+auto valuePrinterRightLG = registration::ValuePrinterRegister < grammar::RightLG < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/grammar/Regular/RightRG.cpp b/alib2data/src/grammar/Regular/RightRG.cxx
similarity index 75%
rename from alib2data/src/grammar/Regular/RightRG.cpp
rename to alib2data/src/grammar/Regular/RightRG.cxx
index 0d2d448fa3..9ddfdc5f5c 100644
--- a/alib2data/src/grammar/Regular/RightRG.cpp
+++ b/alib2data/src/grammar/Regular/RightRG.cxx
@@ -14,6 +14,6 @@ template class grammar::RightRG < >;
 
 namespace {
 
-auto valuePrinter = registration::ValuePrinterRegister < grammar::RightRG < > > ( );
+auto valuePrinterRightRG = registration::ValuePrinterRegister < grammar::RightRG < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.cpp b/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.cxx
similarity index 70%
rename from alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.cpp
rename to alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.cxx
index 58d49a1bf2..617bcc34b6 100644
--- a/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.cpp
+++ b/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.cxx
@@ -14,6 +14,6 @@ template class grammar::ContextPreservingUnrestrictedGrammar < >;
 
 namespace {
 
-auto valuePrinter = registration::ValuePrinterRegister < grammar::ContextPreservingUnrestrictedGrammar < > > ( );
+auto valuePrinterContextPreservingUnrestrictedGrammar = registration::ValuePrinterRegister < grammar::ContextPreservingUnrestrictedGrammar < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/grammar/Unrestricted/Unrestricted.cpp b/alib2data/src/grammar/Unrestricted/Unrestricted.cpp
new file mode 100644
index 0000000000..db5342f04e
--- /dev/null
+++ b/alib2data/src/grammar/Unrestricted/Unrestricted.cpp
@@ -0,0 +1,2 @@
+#include "ContextPreservingUnrestrictedGrammar.cxx"
+#include "UnrestrictedGrammar.cxx"
diff --git a/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.cpp b/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.cxx
similarity index 72%
rename from alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.cpp
rename to alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.cxx
index 7f7ac5a89c..a928123a79 100644
--- a/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.cpp
+++ b/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.cxx
@@ -14,6 +14,6 @@ template class grammar::UnrestrictedGrammar < >;
 
 namespace {
 
-auto valuePrinter = registration::ValuePrinterRegister < grammar::UnrestrictedGrammar < > > ( );
+auto valuePrinterUnrestrictedGrammar = registration::ValuePrinterRegister < grammar::UnrestrictedGrammar < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/grammar/xml/ContextFree/CFG.cpp b/alib2data/src/grammar/xml/ContextFree/CFG.cpp
deleted file mode 100644
index 401f63b70f..0000000000
--- a/alib2data/src/grammar/xml/ContextFree/CFG.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * CFG.cpp
- *
- *  Created on: Nov 17, 2013
- *      Author: Jan Travnicek
- */
-
-#include "CFG.h"
-#include <grammar/Grammar.h>
-#include <object/Object.h>
-
-#include <registration/XmlRegistration.hpp>
-
-namespace {
-
-auto xmlWrite = registration::XmlWriterRegister < grammar::CFG < > > ( );
-auto xmlRead = registration::XmlReaderRegister < grammar::CFG < > > ( );
-
-auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, grammar::CFG < > > ( );
-
-} /* namespace */
diff --git a/alib2data/src/grammar/xml/ContextFree/CFG.cxx b/alib2data/src/grammar/xml/ContextFree/CFG.cxx
new file mode 100644
index 0000000000..7a57bf3a4b
--- /dev/null
+++ b/alib2data/src/grammar/xml/ContextFree/CFG.cxx
@@ -0,0 +1,21 @@
+/*
+ * CFG.cpp
+ *
+ *  Created on: Nov 17, 2013
+ *      Author: Jan Travnicek
+ */
+
+#include "CFG.h"
+#include <grammar/Grammar.h>
+#include <object/Object.h>
+
+#include <registration/XmlRegistration.hpp>
+
+namespace {
+
+auto xmlWriteCFG = registration::XmlWriterRegister < grammar::CFG < > > ( );
+auto xmlReadCFG = registration::XmlReaderRegister < grammar::CFG < > > ( );
+
+auto xmlGroupCFG = registration::XmlRegisterTypeInGroup < object::Object, grammar::CFG < > > ( );
+
+} /* namespace */
diff --git a/alib2data/src/grammar/xml/ContextFree/CNF.cpp b/alib2data/src/grammar/xml/ContextFree/CNF.cpp
deleted file mode 100644
index 1eea46d2a2..0000000000
--- a/alib2data/src/grammar/xml/ContextFree/CNF.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * CNF.cpp
- *
- *  Created on: Nov 17, 2013
- *      Author: Jan Travnicek
- */
-
-#include "CNF.h"
-#include <grammar/Grammar.h>
-#include <object/Object.h>
-
-#include <registration/XmlRegistration.hpp>
-
-namespace {
-
-auto xmlWrite = registration::XmlWriterRegister < grammar::CNF < > > ( );
-auto xmlRead = registration::XmlReaderRegister < grammar::CNF < > > ( );
-
-auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, grammar::CNF < > > ( );
-
-} /* namespace */
diff --git a/alib2data/src/grammar/xml/ContextFree/CNF.cxx b/alib2data/src/grammar/xml/ContextFree/CNF.cxx
new file mode 100644
index 0000000000..bacc936417
--- /dev/null
+++ b/alib2data/src/grammar/xml/ContextFree/CNF.cxx
@@ -0,0 +1,21 @@
+/*
+ * CNF.cpp
+ *
+ *  Created on: Nov 17, 2013
+ *      Author: Jan Travnicek
+ */
+
+#include "CNF.h"
+#include <grammar/Grammar.h>
+#include <object/Object.h>
+
+#include <registration/XmlRegistration.hpp>
+
+namespace {
+
+auto xmlWriteCNF = registration::XmlWriterRegister < grammar::CNF < > > ( );
+auto xmlReadCNF = registration::XmlReaderRegister < grammar::CNF < > > ( );
+
+auto xmlGroupCNF = registration::XmlRegisterTypeInGroup < object::Object, grammar::CNF < > > ( );
+
+} /* namespace */
diff --git a/alib2data/src/grammar/xml/ContextFree/ContextFree.cpp b/alib2data/src/grammar/xml/ContextFree/ContextFree.cpp
new file mode 100644
index 0000000000..adb4f75bf4
--- /dev/null
+++ b/alib2data/src/grammar/xml/ContextFree/ContextFree.cpp
@@ -0,0 +1,5 @@
+#include "CFG.cxx"
+#include "CNF.cxx"
+#include "EpsilonFreeCFG.cxx"
+#include "GNF.cxx"
+#include "LG.cxx"
diff --git a/alib2data/src/grammar/xml/ContextFree/EpsilonFreeCFG.cpp b/alib2data/src/grammar/xml/ContextFree/EpsilonFreeCFG.cpp
deleted file mode 100644
index c334e52a79..0000000000
--- a/alib2data/src/grammar/xml/ContextFree/EpsilonFreeCFG.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * EpsilonFreeCFG.cpp
- *
- *  Created on: Nov 17, 2013
- *      Author: Jan Travnicek
- */
-
-#include "EpsilonFreeCFG.h"
-#include <grammar/Grammar.h>
-#include <object/Object.h>
-
-#include <registration/XmlRegistration.hpp>
-
-namespace {
-
-auto xmlWrite = registration::XmlWriterRegister < grammar::EpsilonFreeCFG < > > ( );
-auto xmlRead = registration::XmlReaderRegister < grammar::EpsilonFreeCFG < > > ( );
-
-auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, grammar::EpsilonFreeCFG < > > ( );
-
-} /* namespace */
diff --git a/alib2data/src/grammar/xml/ContextFree/EpsilonFreeCFG.cxx b/alib2data/src/grammar/xml/ContextFree/EpsilonFreeCFG.cxx
new file mode 100644
index 0000000000..78155ba415
--- /dev/null
+++ b/alib2data/src/grammar/xml/ContextFree/EpsilonFreeCFG.cxx
@@ -0,0 +1,21 @@
+/*
+ * EpsilonFreeCFG.cpp
+ *
+ *  Created on: Nov 17, 2013
+ *      Author: Jan Travnicek
+ */
+
+#include "EpsilonFreeCFG.h"
+#include <grammar/Grammar.h>
+#include <object/Object.h>
+
+#include <registration/XmlRegistration.hpp>
+
+namespace {
+
+auto xmlWriteEpsilonFreeCFG = registration::XmlWriterRegister < grammar::EpsilonFreeCFG < > > ( );
+auto xmlReadEpsilonFreeCFG = registration::XmlReaderRegister < grammar::EpsilonFreeCFG < > > ( );
+
+auto xmlGroupEpsilonFreeCFG = registration::XmlRegisterTypeInGroup < object::Object, grammar::EpsilonFreeCFG < > > ( );
+
+} /* namespace */
diff --git a/alib2data/src/grammar/xml/ContextFree/GNF.cpp b/alib2data/src/grammar/xml/ContextFree/GNF.cpp
deleted file mode 100644
index 52d6c8ab76..0000000000
--- a/alib2data/src/grammar/xml/ContextFree/GNF.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * GNF.cpp
- *
- *  Created on: Nov 17, 2013
- *      Author: Jan Travnicek
- */
-
-#include "GNF.h"
-#include <grammar/Grammar.h>
-#include <object/Object.h>
-
-#include <registration/XmlRegistration.hpp>
-
-namespace {
-
-auto xmlWrite = registration::XmlWriterRegister < grammar::GNF < > > ( );
-auto xmlRead = registration::XmlReaderRegister < grammar::GNF < > > ( );
-
-auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, grammar::GNF < > > ( );
-
-} /* namespace */
diff --git a/alib2data/src/grammar/xml/ContextFree/GNF.cxx b/alib2data/src/grammar/xml/ContextFree/GNF.cxx
new file mode 100644
index 0000000000..4067d0fac8
--- /dev/null
+++ b/alib2data/src/grammar/xml/ContextFree/GNF.cxx
@@ -0,0 +1,21 @@
+/*
+ * GNF.cpp
+ *
+ *  Created on: Nov 17, 2013
+ *      Author: Jan Travnicek
+ */
+
+#include "GNF.h"
+#include <grammar/Grammar.h>
+#include <object/Object.h>
+
+#include <registration/XmlRegistration.hpp>
+
+namespace {
+
+auto xmlWriteGNF = registration::XmlWriterRegister < grammar::GNF < > > ( );
+auto xmlReadGNF = registration::XmlReaderRegister < grammar::GNF < > > ( );
+
+auto xmlGroupGNF = registration::XmlRegisterTypeInGroup < object::Object, grammar::GNF < > > ( );
+
+} /* namespace */
diff --git a/alib2data/src/grammar/xml/ContextFree/LG.cpp b/alib2data/src/grammar/xml/ContextFree/LG.cpp
deleted file mode 100644
index 716619b6f5..0000000000
--- a/alib2data/src/grammar/xml/ContextFree/LG.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * LG.cpp
- *
- *  Created on: Nov 17, 2013
- *      Author: Jan Travnicek
- */
-
-#include "LG.h"
-#include <grammar/Grammar.h>
-#include <object/Object.h>
-
-#include <registration/XmlRegistration.hpp>
-
-namespace {
-
-auto xmlWrite = registration::XmlWriterRegister < grammar::LG < > > ( );
-auto xmlRead = registration::XmlReaderRegister < grammar::LG < > > ( );
-
-auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, grammar::LG < > > ( );
-
-} /* namespace */
diff --git a/alib2data/src/grammar/xml/ContextFree/LG.cxx b/alib2data/src/grammar/xml/ContextFree/LG.cxx
new file mode 100644
index 0000000000..9c5bb79975
--- /dev/null
+++ b/alib2data/src/grammar/xml/ContextFree/LG.cxx
@@ -0,0 +1,21 @@
+/*
+ * LG.cpp
+ *
+ *  Created on: Nov 17, 2013
+ *      Author: Jan Travnicek
+ */
+
+#include "LG.h"
+#include <grammar/Grammar.h>
+#include <object/Object.h>
+
+#include <registration/XmlRegistration.hpp>
+
+namespace {
+
+auto xmlWriteLG = registration::XmlWriterRegister < grammar::LG < > > ( );
+auto xmlReadLG = registration::XmlReaderRegister < grammar::LG < > > ( );
+
+auto xmlGroupLG = registration::XmlRegisterTypeInGroup < object::Object, grammar::LG < > > ( );
+
+} /* namespace */
diff --git a/alib2data/src/grammar/xml/ContextSensitive/CSG.cpp b/alib2data/src/grammar/xml/ContextSensitive/CSG.cpp
deleted file mode 100644
index 73027aef3d..0000000000
--- a/alib2data/src/grammar/xml/ContextSensitive/CSG.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * CSG.cpp
- *
- *  Created on: Nov 17, 2013
- *      Author: Jan Travnicek
- */
-
-#include "CSG.h"
-#include <grammar/Grammar.h>
-#include <object/Object.h>
-
-#include <registration/XmlRegistration.hpp>
-
-namespace {
-
-auto xmlWrite = registration::XmlWriterRegister < grammar::CSG < > > ( );
-auto xmlRead = registration::XmlReaderRegister < grammar::CSG < > > ( );
-
-auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, grammar::CSG < > > ( );
-
-} /* namespace */
diff --git a/alib2data/src/grammar/xml/ContextSensitive/CSG.cxx b/alib2data/src/grammar/xml/ContextSensitive/CSG.cxx
new file mode 100644
index 0000000000..b8339fa242
--- /dev/null
+++ b/alib2data/src/grammar/xml/ContextSensitive/CSG.cxx
@@ -0,0 +1,21 @@
+/*
+ * CSG.cpp
+ *
+ *  Created on: Nov 17, 2013
+ *      Author: Jan Travnicek
+ */
+
+#include "CSG.h"
+#include <grammar/Grammar.h>
+#include <object/Object.h>
+
+#include <registration/XmlRegistration.hpp>
+
+namespace {
+
+auto xmlWriteCSG = registration::XmlWriterRegister < grammar::CSG < > > ( );
+auto xmlReadCSG = registration::XmlReaderRegister < grammar::CSG < > > ( );
+
+auto xmlGroupCSG = registration::XmlRegisterTypeInGroup < object::Object, grammar::CSG < > > ( );
+
+} /* namespace */
diff --git a/alib2data/src/grammar/xml/ContextSensitive/ContextSensitive.cpp b/alib2data/src/grammar/xml/ContextSensitive/ContextSensitive.cpp
new file mode 100644
index 0000000000..3f707e7d6e
--- /dev/null
+++ b/alib2data/src/grammar/xml/ContextSensitive/ContextSensitive.cpp
@@ -0,0 +1,2 @@
+#include "CSG.cxx"
+#include "NonContractingGrammar.cxx"
diff --git a/alib2data/src/grammar/xml/ContextSensitive/NonContractingGrammar.cpp b/alib2data/src/grammar/xml/ContextSensitive/NonContractingGrammar.cpp
deleted file mode 100644
index 713d9477f6..0000000000
--- a/alib2data/src/grammar/xml/ContextSensitive/NonContractingGrammar.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * NonContractingGrammar.cpp
- *
- *  Created on: Nov 17, 2013
- *      Author: Jan Travnicek
- */
-
-#include "NonContractingGrammar.h"
-#include <grammar/Grammar.h>
-#include <object/Object.h>
-
-#include <registration/XmlRegistration.hpp>
-
-namespace {
-
-auto xmlWrite = registration::XmlWriterRegister < grammar::NonContractingGrammar < > > ( );
-auto xmlRead = registration::XmlReaderRegister < grammar::NonContractingGrammar < > > ( );
-
-auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, grammar::NonContractingGrammar < > > ( );
-
-} /* namespace */
diff --git a/alib2data/src/grammar/xml/ContextSensitive/NonContractingGrammar.cxx b/alib2data/src/grammar/xml/ContextSensitive/NonContractingGrammar.cxx
new file mode 100644
index 0000000000..aeb04393b4
--- /dev/null
+++ b/alib2data/src/grammar/xml/ContextSensitive/NonContractingGrammar.cxx
@@ -0,0 +1,21 @@
+/*
+ * NonContractingGrammar.cpp
+ *
+ *  Created on: Nov 17, 2013
+ *      Author: Jan Travnicek
+ */
+
+#include "NonContractingGrammar.h"
+#include <grammar/Grammar.h>
+#include <object/Object.h>
+
+#include <registration/XmlRegistration.hpp>
+
+namespace {
+
+auto xmlWriteNonContractingGrammar = registration::XmlWriterRegister < grammar::NonContractingGrammar < > > ( );
+auto xmlReadNonContractingGrammar = registration::XmlReaderRegister < grammar::NonContractingGrammar < > > ( );
+
+auto xmlGroupNonContractingGrammar = registration::XmlRegisterTypeInGroup < object::Object, grammar::NonContractingGrammar < > > ( );
+
+} /* namespace */
diff --git a/alib2data/src/grammar/xml/Regular/LeftLG.cpp b/alib2data/src/grammar/xml/Regular/LeftLG.cpp
deleted file mode 100644
index 8954742eb6..0000000000
--- a/alib2data/src/grammar/xml/Regular/LeftLG.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * LeftLG.cpp
- *
- *  Created on: Nov 17, 2013
- *      Author: Jan Travnicek
- */
-
-#include "LeftLG.h"
-#include <grammar/Grammar.h>
-#include <object/Object.h>
-
-#include <registration/XmlRegistration.hpp>
-
-namespace {
-
-auto xmlWrite = registration::XmlWriterRegister < grammar::LeftLG < > > ( );
-auto xmlRead = registration::XmlReaderRegister < grammar::LeftLG < > > ( );
-
-auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, grammar::LeftLG < > > ( );
-
-} /* namespace */
diff --git a/alib2data/src/grammar/xml/Regular/LeftLG.cxx b/alib2data/src/grammar/xml/Regular/LeftLG.cxx
new file mode 100644
index 0000000000..46a05fc2cb
--- /dev/null
+++ b/alib2data/src/grammar/xml/Regular/LeftLG.cxx
@@ -0,0 +1,21 @@
+/*
+ * LeftLG.cpp
+ *
+ *  Created on: Nov 17, 2013
+ *      Author: Jan Travnicek
+ */
+
+#include "LeftLG.h"
+#include <grammar/Grammar.h>
+#include <object/Object.h>
+
+#include <registration/XmlRegistration.hpp>
+
+namespace {
+
+auto xmlWriteLeftLG = registration::XmlWriterRegister < grammar::LeftLG < > > ( );
+auto xmlReadLeftLG = registration::XmlReaderRegister < grammar::LeftLG < > > ( );
+
+auto xmlGroupLeftLG = registration::XmlRegisterTypeInGroup < object::Object, grammar::LeftLG < > > ( );
+
+} /* namespace */
diff --git a/alib2data/src/grammar/xml/Regular/LeftRG.cpp b/alib2data/src/grammar/xml/Regular/LeftRG.cpp
deleted file mode 100644
index 659fdffea4..0000000000
--- a/alib2data/src/grammar/xml/Regular/LeftRG.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * LeftRG.cpp
- *
- *  Created on: Nov 17, 2013
- *      Author: Jan Travnicek
- */
-
-#include "LeftRG.h"
-#include <grammar/Grammar.h>
-#include <object/Object.h>
-
-#include <registration/XmlRegistration.hpp>
-
-namespace {
-
-auto xmlWrite = registration::XmlWriterRegister < grammar::LeftRG < > > ( );
-auto xmlRead = registration::XmlReaderRegister < grammar::LeftRG < > > ( );
-
-auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, grammar::LeftRG < > > ( );
-
-} /* namespace */
diff --git a/alib2data/src/grammar/xml/Regular/LeftRG.cxx b/alib2data/src/grammar/xml/Regular/LeftRG.cxx
new file mode 100644
index 0000000000..06252e9c66
--- /dev/null
+++ b/alib2data/src/grammar/xml/Regular/LeftRG.cxx
@@ -0,0 +1,21 @@
+/*
+ * LeftRG.cpp
+ *
+ *  Created on: Nov 17, 2013
+ *      Author: Jan Travnicek
+ */
+
+#include "LeftRG.h"
+#include <grammar/Grammar.h>
+#include <object/Object.h>
+
+#include <registration/XmlRegistration.hpp>
+
+namespace {
+
+auto xmlWriteLeftRG = registration::XmlWriterRegister < grammar::LeftRG < > > ( );
+auto xmlReadLeftRG = registration::XmlReaderRegister < grammar::LeftRG < > > ( );
+
+auto xmlGroupLeftRG = registration::XmlRegisterTypeInGroup < object::Object, grammar::LeftRG < > > ( );
+
+} /* namespace */
diff --git a/alib2data/src/grammar/xml/Regular/Regular.cpp b/alib2data/src/grammar/xml/Regular/Regular.cpp
new file mode 100644
index 0000000000..279dfda9aa
--- /dev/null
+++ b/alib2data/src/grammar/xml/Regular/Regular.cpp
@@ -0,0 +1,4 @@
+#include "LeftLG.cxx"
+#include "LeftRG.cxx"
+#include "RightLG.cxx"
+#include "RightRG.cxx"
diff --git a/alib2data/src/grammar/xml/Regular/RightLG.cpp b/alib2data/src/grammar/xml/Regular/RightLG.cpp
deleted file mode 100644
index c94e2e239c..0000000000
--- a/alib2data/src/grammar/xml/Regular/RightLG.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * RightLG.cpp
- *
- *  Created on: Nov 17, 2013
- *      Author: Jan Travnicek
- */
-
-#include "RightLG.h"
-#include <grammar/Grammar.h>
-#include <object/Object.h>
-
-#include <registration/XmlRegistration.hpp>
-
-namespace {
-
-auto xmlWrite = registration::XmlWriterRegister < grammar::RightLG < > > ( );
-auto xmlRead = registration::XmlReaderRegister < grammar::RightLG < > > ( );
-
-auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, grammar::RightLG < > > ( );
-
-} /* namespace */
diff --git a/alib2data/src/grammar/xml/Regular/RightLG.cxx b/alib2data/src/grammar/xml/Regular/RightLG.cxx
new file mode 100644
index 0000000000..133bb20dfc
--- /dev/null
+++ b/alib2data/src/grammar/xml/Regular/RightLG.cxx
@@ -0,0 +1,21 @@
+/*
+ * RightLG.cpp
+ *
+ *  Created on: Nov 17, 2013
+ *      Author: Jan Travnicek
+ */
+
+#include "RightLG.h"
+#include <grammar/Grammar.h>
+#include <object/Object.h>
+
+#include <registration/XmlRegistration.hpp>
+
+namespace {
+
+auto xmlWriteRightLG = registration::XmlWriterRegister < grammar::RightLG < > > ( );
+auto xmlReadRightLG = registration::XmlReaderRegister < grammar::RightLG < > > ( );
+
+auto xmlGroupRightLG = registration::XmlRegisterTypeInGroup < object::Object, grammar::RightLG < > > ( );
+
+} /* namespace */
diff --git a/alib2data/src/grammar/xml/Regular/RightRG.cpp b/alib2data/src/grammar/xml/Regular/RightRG.cpp
deleted file mode 100644
index c9adaff31f..0000000000
--- a/alib2data/src/grammar/xml/Regular/RightRG.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * RightRG.cpp
- *
- *  Created on: Nov 17, 2013
- *      Author: Jan Travnicek
- */
-
-#include "RightRG.h"
-#include <grammar/Grammar.h>
-#include <object/Object.h>
-
-#include <registration/XmlRegistration.hpp>
-
-namespace {
-
-auto xmlWrite = registration::XmlWriterRegister < grammar::RightRG < > > ( );
-auto xmlRead = registration::XmlReaderRegister < grammar::RightRG < > > ( );
-
-auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, grammar::RightRG < > > ( );
-
-} /* namespace */
diff --git a/alib2data/src/grammar/xml/Regular/RightRG.cxx b/alib2data/src/grammar/xml/Regular/RightRG.cxx
new file mode 100644
index 0000000000..81f870cf61
--- /dev/null
+++ b/alib2data/src/grammar/xml/Regular/RightRG.cxx
@@ -0,0 +1,21 @@
+/*
+ * RightRG.cpp
+ *
+ *  Created on: Nov 17, 2013
+ *      Author: Jan Travnicek
+ */
+
+#include "RightRG.h"
+#include <grammar/Grammar.h>
+#include <object/Object.h>
+
+#include <registration/XmlRegistration.hpp>
+
+namespace {
+
+auto xmlWriteRightRG = registration::XmlWriterRegister < grammar::RightRG < > > ( );
+auto xmlReadRightRG = registration::XmlReaderRegister < grammar::RightRG < > > ( );
+
+auto xmlGroupRightRG = registration::XmlRegisterTypeInGroup < object::Object, grammar::RightRG < > > ( );
+
+} /* namespace */
diff --git a/alib2data/src/grammar/xml/Unrestricted/ContextPreservingUnrestrictedGrammar.cpp b/alib2data/src/grammar/xml/Unrestricted/ContextPreservingUnrestrictedGrammar.cpp
deleted file mode 100644
index e7590c43a1..0000000000
--- a/alib2data/src/grammar/xml/Unrestricted/ContextPreservingUnrestrictedGrammar.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * ContextPreservingUnrestrictedGrammar.cpp
- *
- *  Created on: Nov 17, 2013
- *      Author: Jan Travnicek
- */
-
-#include "ContextPreservingUnrestrictedGrammar.h"
-#include <grammar/Grammar.h>
-#include <object/Object.h>
-
-#include <registration/XmlRegistration.hpp>
-
-namespace {
-
-auto xmlWrite = registration::XmlWriterRegister < grammar::ContextPreservingUnrestrictedGrammar < > > ( );
-auto xmlRead = registration::XmlReaderRegister < grammar::ContextPreservingUnrestrictedGrammar < > > ( );
-
-auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, grammar::ContextPreservingUnrestrictedGrammar < > > ( );
-
-} /* namespace */
diff --git a/alib2data/src/grammar/xml/Unrestricted/ContextPreservingUnrestrictedGrammar.cxx b/alib2data/src/grammar/xml/Unrestricted/ContextPreservingUnrestrictedGrammar.cxx
new file mode 100644
index 0000000000..05492a48e1
--- /dev/null
+++ b/alib2data/src/grammar/xml/Unrestricted/ContextPreservingUnrestrictedGrammar.cxx
@@ -0,0 +1,21 @@
+/*
+ * ContextPreservingUnrestrictedGrammar.cpp
+ *
+ *  Created on: Nov 17, 2013
+ *      Author: Jan Travnicek
+ */
+
+#include "ContextPreservingUnrestrictedGrammar.h"
+#include <grammar/Grammar.h>
+#include <object/Object.h>
+
+#include <registration/XmlRegistration.hpp>
+
+namespace {
+
+auto xmlWriteContextPreservingUnrestrictedGrammar = registration::XmlWriterRegister < grammar::ContextPreservingUnrestrictedGrammar < > > ( );
+auto xmlReadContextPreservingUnrestrictedGrammar = registration::XmlReaderRegister < grammar::ContextPreservingUnrestrictedGrammar < > > ( );
+
+auto xmlGroupContextPreservingUnrestrictedGrammar = registration::XmlRegisterTypeInGroup < object::Object, grammar::ContextPreservingUnrestrictedGrammar < > > ( );
+
+} /* namespace */
diff --git a/alib2data/src/grammar/xml/Unrestricted/Unrestricted.cpp b/alib2data/src/grammar/xml/Unrestricted/Unrestricted.cpp
new file mode 100644
index 0000000000..db5342f04e
--- /dev/null
+++ b/alib2data/src/grammar/xml/Unrestricted/Unrestricted.cpp
@@ -0,0 +1,2 @@
+#include "ContextPreservingUnrestrictedGrammar.cxx"
+#include "UnrestrictedGrammar.cxx"
diff --git a/alib2data/src/grammar/xml/Unrestricted/UnrestrictedGrammar.cpp b/alib2data/src/grammar/xml/Unrestricted/UnrestrictedGrammar.cpp
deleted file mode 100644
index e336823ebd..0000000000
--- a/alib2data/src/grammar/xml/Unrestricted/UnrestrictedGrammar.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * UnrestrictedGrammar.cpp
- *
- *  Created on: Nov 17, 2013
- *      Author: Jan Travnicek
- */
-
-#include "UnrestrictedGrammar.h"
-#include <grammar/Grammar.h>
-#include <object/Object.h>
-
-#include <registration/XmlRegistration.hpp>
-
-namespace {
-
-auto xmlWrite = registration::XmlWriterRegister < grammar::UnrestrictedGrammar < > > ( );
-auto xmlRead = registration::XmlReaderRegister < grammar::UnrestrictedGrammar < > > ( );
-
-auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, grammar::UnrestrictedGrammar < > > ( );
-
-} /* namespace */
diff --git a/alib2data/src/grammar/xml/Unrestricted/UnrestrictedGrammar.cxx b/alib2data/src/grammar/xml/Unrestricted/UnrestrictedGrammar.cxx
new file mode 100644
index 0000000000..c4809830df
--- /dev/null
+++ b/alib2data/src/grammar/xml/Unrestricted/UnrestrictedGrammar.cxx
@@ -0,0 +1,21 @@
+/*
+ * UnrestrictedGrammar.cpp
+ *
+ *  Created on: Nov 17, 2013
+ *      Author: Jan Travnicek
+ */
+
+#include "UnrestrictedGrammar.h"
+#include <grammar/Grammar.h>
+#include <object/Object.h>
+
+#include <registration/XmlRegistration.hpp>
+
+namespace {
+
+auto xmlWriteUnrestrictedGrammar = registration::XmlWriterRegister < grammar::UnrestrictedGrammar < > > ( );
+auto xmlReadUnrestrictedGrammar = registration::XmlReaderRegister < grammar::UnrestrictedGrammar < > > ( );
+
+auto xmlGroupUnrestrictedGrammar = registration::XmlRegisterTypeInGroup < object::Object, grammar::UnrestrictedGrammar < > > ( );
+
+} /* namespace */
-- 
GitLab